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 Posts [Atom]
Kommentar veröffentlichen