Debugger-prog schreiben?Hilfe!!!
-
hallo zusammen,
ich habe die aufgabe folgendes programm zu schreiben,komme damit aber überhaupt nicht klar. mein lösungsansatz ist folgende:eine Eingabe in ein array, eine methode namens fehlerprüfung die die eingabe ins das array kontrolliert(if anzahleckigeklammer==geradezahl)..aber irgendwie funktionier das nicht wie ich möchte. bitte schreibt mir doch mal,was ihr für sinnvolle lösungsansätze habt.das ist die aufgabenstellung:
Schreiben Sie ein Programm, das ein C Programm auf bestimmte Syntaxfehler überprüft. Sie sollen folgende Fehler finden:
* falsch verschachtelte runde Klammern, geschweifte Klammern und eckige Klammern.
* Vergessene Anführungszeichen und HochkommaSie sollen also erkennen, wenn zum Beispiel eine runde Klammer vergessen worden ist. Dann ist die Anzahl der öffnenden Klammern nicht gleich der Anzahl der schließenden Klammern:
((3+2)/3(
Vergessen Sie dabei nicht, Anführungsstrich, doppelten Anführungsstrich und Kommentare korrekt zu behandeln. Klammern innerhalb eines Strings zählen zum Beispiel nicht.
//Vielen Dank im Voraus für eurer feedback
-
1. Du bist im C# Forum, nicht im C Forum. Da gehört deine Aufgabe aber offensichtlich hin.
2. Nicht die Community bringt die Vorschläge für die Lösung deiner Aufgabe, sondern Du. Zeige wo Du konkret Probleme hast, dann kann Dir auch konkret geholfen werden.
Simon
-
simon.gysi schrieb:
1. Du bist im C# Forum, nicht im C Forum. Da gehört deine Aufgabe aber offensichtlich hin.
Wenn ich das richtig verstanden habe, soll er ein C-Programm testen. In welche Sprache er das baut, steht da nicht geschrieben.
Außerdem ist die Aufgabenstellung recht schwammig. Reicht ein einfaches Zählen und Vergleichen der Anzahl der öffnenden und schließenden Zeichen oder sollst Du auch die erkannte fehlerhafte Position mit ausgeben?
-
Ich stehe auf der Seite von simon.gysi,
ein bisschen Eigeninitiative kann man wohl erwarten.
Es wäre das gleiche, wenn ich hier sagen würde, meine Aufgabe ist ein E-Mail Programm zu schreiben. Ich soll E-Mails schreiben, versenden und Empfangen können.
Könnt ihr mir das bis morgen mal eben fertig machen, aber bitte in hübsch, ich möchte es nämlich mal verkaufen, ach ja und vergesst die Hilfedatei zum Programm nicht, und die bitte in Deutsch, Englisch und Hebräisch.
Poste Code an der Stellte wo es klemmt und du wirst Hilfe bekommen, so aber net.Gruß, Fauler Sack mit Zigarre.
-
witte_ schrieb:
simon.gysi schrieb:
1. Du bist im C# Forum, nicht im C Forum. Da gehört deine Aufgabe aber offensichtlich hin.
Wenn ich das richtig verstanden habe, soll er ein C-Programm testen. In welche Sprache er das baut, steht da nicht geschrieben.
Außerdem ist die Aufgabenstellung recht schwammig. Reicht ein einfaches Zählen und Vergleichen der Anzahl der öffnenden und schließenden Zeichen oder sollst Du auch die erkannte fehlerhafte Position mit ausgeben?Ja, beim zweiten mal lesen, denke ich dass ich die Aufgabenstellung missverstanden habe. Sorry. Ändert aber nichts an Punkt 2.
Gruss Simon
-
hey ihr habt ja vollkommen recht. also ich hab mich jetzt mal hingesetzt und versucht das programm zu schreiben, ich hänge aber an folgender stelle fest.wie mache ich jetzt die if(anzahlrundeklammern=0) also ich will immer wenn klammer geschrieben wird +1 und wenn wieder eine geschrieben wird -1 machen, sodass am ende eine 0 rauskommen muss somit wäre die klammersyntax geklärt.
static void Main(string[] args)
{// Menueingabe
int eingabe;// Begrüßung
Console.WriteLine("\n\n*** CheckC ***\n\n");// Auswahl der Bearbeitungsmöglichkeiten
while (eingabe == Menu())
{
switch (eingabe)
{
case 1:
Console.WriteLine("Code:");
string code=Console.ReadLine();
string[] arr = new string[code.Length];
for (int i = 0; i < code.Length; i++)
{
arr[i] = str[i];
}
break;
case 2:break;
}
}// Verabschiedung
Console.WriteLine("\n\n*** ENDE ***\n\n");}
}
}
-
Ergänzung:ich habe das string array jetzt in ein char array umgewandelt,da er mir bei string array fehlermeldung ausgegeben hat. des weitern hab ich jetzt ne lösung für das klammernzählen, er gibt mir jedoch beim == operator die fehlermeldung: kann nicht auf char und string angewendet werden, is mir schon klar, aber wie beheb ich das?
switch (eingabe) { case 1: int i; Console.WriteLine("Code:"); string code=Console.ReadLine(); char[] arr = new char[code.Length]; for (i = 0; i < code.Length; i++) { arr[i] = code[i]; } break;[list] case 2: int anzahlKlammern = 0; if (arr[i] == "(") { anzahlKlammern++; } Console.WriteLine(anzahlKlammern); break; }