Mittwoch, 2. März 2011
Klammerprüfung mittels Stack (POS1: 2A, 2C)
Schreiben Sie ein Java-Programm, welches zeichenweise von der Standardeingabe liest und prüft, ob die eingegebenen Klammern eine gültige Klammerung mit
Beispiele für korrekte Klammerung:
Beispiele für falsche Klammerung:
Das Programm soll nur ausgeben, ob die Klammerung korrekt ist. Das Programm soll alle Klammern bis
Verwenden Sie für die Implementierung einen (selbstprogrammierten) Stack (eigene Klasse):
Erweitern Sie das Programm so, dass eine Hilfe ausgegeben werden kann, mehrere Eingabedateien und optional eine Ausgabedatei angegeben werden kann. Eine Eingabedatei entspricht einem Klammerausdruck (der natürlich aus mehreren Zeilen bestehen kann). Wird keine Eingabedatei angegeben, so ist von
Aufruf:
Erweitern Sie das Programm um die Ausgabe einer detaillierten Fehlermeldung. Welcher Fehler wurde gefunden? Wo wurde der Fehler gefunden (Zeile/Spalte)?
mögliche Fehler
([{}])
ergeben.Beispiele für korrekte Klammerung:
()([])[[([])]]{} x{abc(sdf(c))asd}asx () [] ((())) {{{(())}}}
Beispiele für falsche Klammerung:
(() []) (([)])
Das Programm soll nur ausgeben, ob die Klammerung korrekt ist. Das Programm soll alle Klammern bis
EOF
prüfen (bei den Beispielen oben ist jeweils eine Zeile eine Eingabe!).Verwenden Sie für die Implementierung einen (selbstprogrammierten) Stack (eigene Klasse):
void push(char elem); // Element oben auf Stack char pop(); // oberstes Element boolean isEmpty(); // false wenn nicht leer
Erweiterung um Programmargumente und Dateien
Erweitern Sie das Programm so, dass eine Hilfe ausgegeben werden kann, mehrere Eingabedateien und optional eine Ausgabedatei angegeben werden kann. Eine Eingabedatei entspricht einem Klammerausdruck (der natürlich aus mehreren Zeilen bestehen kann). Wird keine Eingabedatei angegeben, so ist von
stdin
zu lesen.Aufruf:
java Klammer [-h|-o out] [eingabedateien...] -h ... Hilfe -o out ... Ausgabe in die Datei out eingabedateien ... optional mehrere Eingabedateien
Detaillierte Fehlermeldungen
Erweitern Sie das Programm um die Ausgabe einer detaillierten Fehlermeldung. Welcher Fehler wurde gefunden? Wo wurde der Fehler gefunden (Zeile/Spalte)?
mögliche Fehler
falsche Klammer-Zuzu viele Klammern-Zuzu wenig Klammern-Zu
Abonnieren Posts [Atom]
Kommentar veröffentlichen