1138 silbe Silbentrennung
Kategorie:String
Klasse:schwer
Eingabe:String
Ausgabe:siehe Spez
Abzugebende Files: silbe.txt, silbe.java

Kurzbeschreibung:

Ein oder mehrere Wörter sollen eingelesen und in Silben getrennt werden.

Allgemeine Hinweise:

Aufgabenstellung:

Ihr Programm soll mehrere Wörter in einem String einlesen, diese sind durch Strichpunkte getrennt.

Trennen Sie die Silben nach folgenden Regeln (diese entsprechen nicht der deutschen Silbentrennung):

Betrachten Sie zwei aufeinanderfolgende Buchstaben als Silbe.

Wenn eine Silbe aus zwei Konsonanten (Mitlauten) bestehen würde, geben Sie den ersten Buchstaben zur davorliegenden Silbe und betrachten Sie den zweiten Buchstaben als ersten der nachfolgenden Silbe (wenn diese wieder aus zwei Konsonanten bestehen würde, wiederholt sich das Spielchen).

Wenn jedoch schon die erste Silbe des Wortes nur aus Konsonanten bestehen würde, so sollen Sie solange weitere Buchstaben an die Silbe anhängen, bis ein Vokal dazukommt (z.B. Stra-te-gie). Wörter ohne Vokale sind unzulässig.

Die Buchstabenkombinationen "ei" und "ie" sind niemals zu trennen, sondern der vorangehenden Silbe dazuzugeben.

Wenn am Wortende nach der Silbentrennung ein einzelner Buchstabe überbleibt, dann geben Sie ihn zur letzten Silbe dazu.

Die Trennung erfolgt durch Einfügen eines Bindestrichs ("-") an der entsprechenden Stelle im Wort (aber niemals ganz am Anfang oder Ende des Wortes).

Als Ausgabe soll Ihr Programm die getrennten Wörter liefern.

Eingabedaten:

Lesen Sie einen String ein, der durch Strichpunkte getrennte Wörter enthält.
Es ist auch zulässig, nur ein Wort einzugeben. Außer den Strichpunkten dürfen nur Buchstaben (keine Umlaute) auftreten.

Ein Buchstabe darf nicht mehr als dreimal hintereinander in einem Wort auftreten.

Es sind maximal 5 Wörter zulässig; jedes Wort darf nicht kürzer als 1 Zeichen und nicht länger als 20 Zeichen sein. Hinter dem letzten Wort kann ein Strichpunkt folgen, muß aber nicht.

Ausgabedaten:

Bei korrekten Eingabedatensätzen soll Ihr Programm die eingelesenen Wörter, mit Bindestrichen nach Silben getrennt, ausgeben.

Die Wörter bleiben weiterhin durch Strichpunkte getrennnt; wenn in der Eingabe nach dem letzten Wort ein Strichpunkt stand, so soll dies auch in der Ausgabe so sein.

Fehlerbehandlung:

Auf fehlerhafte Eingabedatensätze ist mit der Meldung "FALSCHE EINGABE", gefolgt von einem Zeilenvorschub, zu reagieren.

Beispiele:

Eingabedaten
Hasenfuss;Biegsamkeit;

Heiterkeiten;lieblose

Uebungsaufgabe;hilfe

Ausgabedaten
Ha-sen-fuss;Bieg-sam-keit;

Hei-ter-kei-ten;lieb-lo-se

Ue-bung-sa-uf-ga-be;hil-fe

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 silbe < silbe.i1 > silbe.out1

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