Donnerstag, 7. Januar 2010
begin - end - Klammerung prüfen mit Stack
Allgemeines
Realisieren Sie eine Klammerprüfung von beliebigen Ausdrücken in 2 Stufen. In den Ausdrücken sind folgende Klammern erlaubt:
(),
[],
Begin End,
{}
Beispiel:
Begin
(a+[b*c])
{
[5-(3/2)+1]
Begin (Num – Beg] End
}
End
Aufgabe 1 - Aufbereitung:
Schreiben Sie ein Programm Filter.java, welches beliebige Klammerausdrücke so aufbereitet, dass nur mehr die Klammern übrig bleiben. Die Klammerung für und Begin
soll durch End
'<' und '>' ersetzt werden.
Bsp.: Begin (a*(b+c)) End –> <(())>
Der Aufruf des Programmes soll folgende Möglichkeiten bieten:
java Filter [-h | -o ausgabedatei] [eingabedatei]
Die eingabedatei enthält die Klammerausdrücke. Wird kein Dateiname angegeben so wird von System.in gelesen.
Die aufbereiteten Ausdrücke werden auf die ausgabedatei geschrieben oder auf System.out, wenn das Argument fehlt.
Verwenden Sie die Klassen BufferedReader und PrintWriter zum Lesen und Schreiben der Textdateien.
Aufgabe 2 - Klammerprüfung:
Erstellen Sie ein Programm KlammerPruef.java, welches aufbereitete Klammerausdrücke einliest und mit Hilfe eines Stacks eine Klammerprüfung durchführt. Als Ergebnis geben Sie oder richtige Klammerung
aus.falsche Klammerung
Aufruf:
java KlammerPruef [-h | -o ausgabedatei] [eingabedatei]
Die eingabedatei enthält die aufbereiteten Klammerausdrücke. Wird kein Dateiname angegeben so wird von System.in gelesen. Das Prüfergebnis wird auf die ausgabedatei geschrieben oder auf System.out wenn das Argument fehlt.
Hinweis:
verwenden Sie einen char-Stack
Abonnieren Kommentare [Atom]
Kommentar veröffentlichen