PDA

View Full Version : [FRAGE] - Trennzeichen bei der Eingabe


Vench
26-12-2004, 20:15
Ich bin grad am Herumüberlegen bei Runde 3 (und komm eh nicht weiter :( )

Naja, es ist mir jedenfalls klar geworden, dass ich nicht mal versteh, wie die Eingaben auszusehen haben - also was als Trennzeichen verwendet werden soll.

Geht es um LEERZEICHEN oder ENTER??? :confused:

Die io-Files sind so geschrieben, als würden einzelne Eingabeteile durch Leerzeichen getrennt, während ganz am Ende der Eingabe ein Zeilenvorschub kommt.
... da frag ich mich dann aber, wie man erkennen kann, wo 2 Strings getrennt werden, da die ja auch " " enthalten können.

In Runde 1 bin ich einfach davon ausgegangen, dass nach jedem Wert ein Enter folgt und ich hab auch alle Punkte bekommen; Aber das kann auch daran liegen, dass das Programm im Normalfall genauso funktioniert, wenn man die Werte bei der Eingabe durch " " trennt und mit "Enter" abschließt (wie bei den io-Files).

Ein Unterschied entsteht jedoch, wenn man mehr als die für mein Bsp erforderlichen Werte (6 Stk) eingeben mag:
-) Bei "Eingabe" als Trennzeichen ist das gar nicht möglich (soll ja auch so sein) ;)

-) Verwendet man jedoch Leerzeichen zum Trennen, lassen sich beliebig viele Werte eingeben, bis man mit "Enter" abschließt. Das Programm verwendet in diesem Fall einfach die ersten 6 Werte und ignoriert den Rest.

Soll das so sein?

Daraus entsteht dann noch eine Frage:

Hier ein Ausschnitt aus meiner Spezifikation:
Eingabedaten:

Lesen Sie die Koordinatenpaare des Vielecks als Strings ein, die folgenden Aufbau haben müssen: "(x,y)" wobei x und y Zahlen sind (z.B. "(-5.5,2.75)" ). Die eingelesenen x- und y-Koordinaten müssen im Bereich [-100,100] liegen.
Der Datensatz wird durch das Zeichen "=", das anstatt eines neuen Koordinatenpaares eingegeben wird, abgeschlossen. Es müssen mindestens 3 und maximal 15 Koordinatenpaare eingegeben werden. Die oben genannte Bedingung, daß keiner der Eckpunkte auf der Gerade seiner Vorgänger liegen darf, muß erfüllt sein. Werden die Koordinatenpaare einzeln eingelesen (z.B. mit Hilfe einer Schleife) oder ist die Eingabe ein einziger String, den man zerlegen muss um die Werte herauszufiltern?

Hoffe, jemand versteht die Frage und kann mir weiterhelfen.

DieSterne
26-12-2004, 20:47
Ich war mit so einer ähnlichen Frage mal in der Spezifikationsfragestunde, in der Tat ist es so dass die IO-Files auf Whitespaces durchsucht werden, daher Spaces, Tabulatoren, Enter usw. wobei die übliche Abgabeform für IO-Files durch Spaces getrennt sind (daher jeder Space wird auch als Enter interpretiert). Hoffe das hilft.

Wenn der Inflab-Server funktionieren würde könnt ich dir jetzt meinen Code hertun, ich sag dir nur mal: mit einmal readWord() kriegst du einen String im Format (x,y), aus dem du die Koordinaten rausparsen musst. Wenn der String einmal = ist dann ist die Eingabe zu Ende.

DePadA
26-12-2004, 21:15
Die Methode readWord aus der EprogIO Klasse liest einen String bis zum ersten auftretenden Whitespace (Leerzeichen, Tabulator) ein, durch das drücken von [ENTER] wird der String nur vorzeitig an das Programm geschickt.

Ein Bsp mit Pseudocode

String eingabe;
for (int i = 0; i < 3; i++)
{
eingabe = EprogIO.readWord();
EprogIO.println("Ausgabe:" + eingabe);
}

"eins zwei drei vier[ENTER]"
Ausgabe: eins
Ausgabe: zwei
Ausgabe: drei

"eins[ENTER]
Ausgabe: eins
zwei[ENTER]
Ausgabe: zwei
drei[ENTER]
Ausgabe: drei

Bei deiner Spezifikation mußt du so lange in einer Schleife lesen bis die Abbruchbedingung ("=") eingeben wird.

Hoffe es hat ein wenig geholfen,
grüße

Vench
26-12-2004, 21:25
Danke für eure Antworten!

Das hat mir schon sehr geholfen,
lg