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 Begin und End soll durch '<' 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 richtige Klammerung oder falsche Klammerung aus.

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

Labels: , ,


Kommentare:

Kommentar veröffentlichen

Abonnieren Kommentare zum Post [Atom]





<< Startseite

This page is powered by Blogger. Isn't yours?

Abonnieren Posts [Atom]