Hauslekture. Ситникова О.А - 58 стр.

UptoLike

58
26. Eingabeanweisungen
Wenn man etwas ausgeben kann, möchte man natürlich auch ewas eingeben. Und
wenn die Ausgabe WriteLn heißt, kann man durch geschicktes Raten darauf kommen,
daß die Eingabe ReadLn heißt. Auch hier gibt es die Form ohne Ln, dazu später mehr.
Was bei der Ausgabe geht, geht auch bei der Eingabe, nämlich mehrere
Argumente als Parameter. Die Anweisung ReadLn (y,i,z,eingäbe) liest von der
Tastatur die Inhalte für die vier Variablen y, x, z und eingabt ein. Die Eingabe erfolgt
in einer Zeile, die verschiedenen Werte werden durch mindestens ein Leerzeichen
getrennt.
Das Ende der Eingabe wird auf dem PC durch die Enter-Taste angezeigt. Die
davor stehenden Werte werden dann in einen internen Puffer kopiert, aus dem dann
der Pascal-Compiler wirklich liest. Werden mehr Werte eingegeben, als mit ReadLn
gelesen werden, wird der Rest der Eingabe ignoriert.
Anders, wenn man mit Read arbeitet. Read behält die Eingabe im Puffer und liest
beim nächsten Mal weiter aus dem Puffer. Leider arbeitet diese Funktion in Turbo-
Pascal nicht ganz fehlerfrei, so daß es in einigen Fällen passieren kann, das eine
Eingabe nicht erfolgt, weil nach Meinung von Turbo-Pascal 4.0 noch etwas im Puffer
ist, obwohl genau dieser Wert schon einmal gelesen wurde. Read sollte daher nur in
besonderen Fällen verwendet werden.
27. Eingabeaufforderungen
Eine Eingabe allein macht noch keinen Sinn. Erst die Kombination von einer
(sinnvollen) Eingabeaufforderung und anschließender Eingabe bringts so richtig.
Denn was hilft es dem späteren Programmanwender, wenn auf dem Bildschirm ein
kleiner Strich (genannt Cursor) blinkt und niemand weiß, warum nichts passiert und
es nicht weiter geht.
Im Gegensatz zu anderen Programmiersprachen kennt nämlich Pascal keinen
kombinierten Ein-/Ausgabebefehl. Man muß sich also einen solchen Befehl selbst
basteln. Er besteht in der Regel aus einer Textausgabe der Form Wrt'fef'Bitte Wert für
xxx eingeben:'); und einem anschließendem ReadLn(xxx);. Die Verwendung von
Write anstelle von WriteLn stellt sicher, daß die nachfolgende Eingabe unmittelbar
hinter dem ausgegebenem Text steht. Umgekehrt sorgt ReadLn dafür, daß die nächste
Textausgabe wieder in einer neuen Zeile beginnt. Ein angenehmer Nebeneffekt ist,
daß auch der TZeorf-Fehler von Turbo-Pascal umschifft wird.
Zu beachten ist dabei, daß das xxx in der Write Anweisung als Text in
Hochkomma steht, d.h. es muß nicht unbedingt der Variablenname sein.
28. Standardfunktionen und –bezeichner