1136 satz Saetze testen
Kategorie:String
Klasse:schwer
Eingabe:siehe Spez
Ausgabe:siehe Spez
Abzugebende Files: satz.txt, satz.java

Kurzbeschreibung:

Ein Satz (bestehend aus mehreren Strings) soll auf die Einhaltung von Syntaxregeln untersucht werden.

Allgemeine Hinweise:

Aufgabenstellung:

Ihr Programm soll einen Satz einlesen. Der Satz besteht aus einem oder mehreren Wörtern und wird durch einen Punkt, der nach dem letzten Wort (aber noch im selben String) steht, abgeschlossen.

Ihr Programm soll prüfen, ob der Satz folgende Regeln einhält:

Außer Buchstaben sind nur folgende Sonderzeichen erlaubt:

( ) . , ; "
Klammer auf, Klammer zu, Punkt, Komma, Strichpunkt, Anführungszeichen

Diese dürfen nicht als eigene Strings stehen, sondern müssen vor bzw. nach einem Wort stehen.

Hinweis: Im Folgenden wird ein einfaches Hochkomma ' verwendet, um die Sonderzeichen zu klammern; dieses einfache Hochkomma darf NICHT Bestandteil des eingelesenen Strings sein. (Es ist sozusagen ein metasprachliches Symbol.)

Nur die Sonderzeichen '(' und '"' dürfen am Anfang eines Strings stehen, alle anderen müssen am Ende stehen. Nach einem schließenden '"' oder ')' darf noch eines der Zeichen '.,;' folgen; ansonst darf maximal ein Sonderzeichen am Ende des Strings stehen.

Öffnende '(' und '"' müssen auch wieder durch ')' bzw. '"' geschlossen werden, aber nicht unbedingt im selben Wort.

Das Zeichen ';' (Strichpunkt) darf im Satz nur einmal vorkommen.

Die Wörter dürfen nur aus Buchstaben (keine Umlaute) bestehen, wobei Großbuchstaben nur am Anfang des Wortes stehen dürfen (davor evtl. '(' oder '"' ).

Der erste Buchstabe des Satzes muß ein Großbuchstabe sein.

Es ist verboten, in einem Wort mehr als dreimal denselben Buchstaben hintereinander zu schreiben, wobei Groß- und Kleinschreibung unterschieden wird.

Eingabedaten:

Lesen Sie den Satz ein, wobei dieser aus mindestens einem und maximal fünf Wörtern zu maximal 12 Buchstaben(!) bestehen darf.

Durch einen Punkt am Ende eines Strings wird der Satz abgeschlossen.

Ausgabedaten:

Bei korrekten Eingabedaten ist "J" auszugeben, danach ein Zeilenvorschub.

Fehlerbehandlung:

Sämtliche Eingabedatensätze sind immer vollständig einzulesen. Generell wird bei fehlerhaften Eingabedatensätzen nur eine einzige Fehlermeldung erzeugt, weitere Berechnungen werden nicht mehr durchgeführt.

Sind die eingegebenen Daten inhaltlich nicht korrekt oder erfüllen nicht die Bedingungen, so soll Ihr Programm "FALSCHE EINGABE", gefolgt von einem Zeilenvorschub, ausgeben.
Lesen Sie aber auf jeden Fall den Satz bis zum Ende ein, auch wenn schon ein falsches Wort eingelesen wurde.

Beispiele:

Eingabedaten
"Guten Morgen", rief er.

Das ist ein "Beispiel".

Hallo,, du.

Ausgabedaten
J

J

FALSCHE EINGABE

Bemerkung: Diese Beispiele dienen nur zur Verdeutlichung der Spezifikation und müssen nicht korrekt formatiert sein. Die korrekte Formatierung entnehmen Sie bitte dem mitgelieferten Outputfile. Zum Testen Ihrer Lösung können Sie aus den mitgelieferten Eingabedaten wie folgt eine Ausgabedatei erzeugen:

java satz < satz.i1 > satz.out1

Das erzeugte File satz.out1 können Sie dann mit dem mitgelieferten Outputfile satz.o1 vergleichen.