Filename: Satz.txt Eprog Bsp.: 1136, schwer Autor: Philipp Hammer mail: e0226305@student.tuwien.ac.at Allgemein: ========== Ein Satz (bestehend aus mehreren Strings) soll auf die Einhaltung von Syntaxregeln untersucht werden. Die meisten Attribute der einzelnen Syntax-Regeln können im Sourcecode bequem geändert werden. Beschreibung des Programmablaufs: ================================= Das Programm kann in 3 'Haupt'-Teile aufgesplittet werden: (Diese sind jeweils durch eigene Methoden im Programm repräsentiert) * Das Einlesen des Satzes. * Das Überprüfen der Syntax * Das Ausgeben des Ergebnisses. Einlesen des Satzes: -------------------- Jedes Wort wird einzeln eingelesen und in einem Array gespeichert bis ein Wort einen Punkt am Ende aufweist. Überprüfung der Syntax: ----------------------- Als erstes wird überprüft, ob die Anzahl der Wörter nicht die maximal erlaubte überschreitet. Dann wird jedes Wort nach der Reihe darauf überprüft, daß keine ungültigen Zeichen vorkommen. Gültige Zeichen sind: Buchstaben (ohne Umlaute) und ()",;. Die nächste Überprüfung gilt der Anzahl der Strichpunkte und ob dies nicht die Anzahl der erlaubten überschreitet. Dann wird geschaut ob nicht öfters als 3 mal der gleiche Buchstabe hintereinander verwendet wird. Anschließend wird sicher gestelt, daß falls eines der Zeichen ,;. verwendet wird dieses nur am Ende des Wortes stehen darf (d.h. nur als letztes Zeichen, was ein Aufteten mehrer dieser Zeichen im selben Wort verbietet.) Als nächstes kommen die Klammern. Bei öffnenden Klammern wird geschaut, ob diese am Anfang des Wortes stehen, falls dies der Fall ist und die Anzahl der offenen Klammern und Anführungszeichen nicht die der zulässigen überschreitet wird das Zeichen in ein Array geschrieben, das alle offenen SonderZeichen hält, und die Anzahl der offenen Sonderzeichen um 1 erhöht. Die Anzahl der zulässignen Klammern ist gleich der Wortanzahl, da nach jedem Wort nur ein Schließendes Sonderzeichen kommen darf. Bei schließenden Klammern wird überprüft ob sie am Ende stehen und das letzte geöffnete Sonderzeichen '(' war ist dies der Fall wird die Anzahl der offenen Sonderzeichen wieder um 1 veringert. Bei den Anführungszeichen ist es im großen und ganzen das gleiche wie bei den Klammern mit dem Unterschied, daß zuerst ermittelt werden muß, ob ein Anführungszeichen ein öffnendes oder schließendes ist. Bei schließenden wird dann genauso verfahren wie bei schließenden Klammern. Da öffnende Anführungszeichen nicht wie Klammern verschachtelt werden können muß zunächst überprüft werden ob schon eines dieses Zeichens im Array für Sonderzeichen enthalten ist. Ist dies nicht der Fall wird genauso vorgegangen wie bei den Klammern. Als nächstes kommen die Buchstaben. Es wird überprüft, daß kein Buchstabe mehr nach einem schließenden Anführungszeichen bzw. Klammern kommt, daß der erste Buchstabe eines Satzes ein Großbuchstabe ist und daß keiner außer der erste Buchstabe eines Wortes ein Großbuchstabe ist. Außerdem wird noch die Länge des Wortes ermittelt und mit den erlaubten maximal bzw. minimal Werten verglichen. Zuletzt wird noch überprüft ob keine geöffneten Sonderzeichen mehr vorhanden sind. Ausgeben des Ergebnisses: ------------------------- Erfüllt ein Satz alle Kriterien wird "J" ausgegeben. Bei einem Fehler wird "FALSCHE EINGABE" ausgegeben.