22.08.2013 Aufrufe

Grundlagen der Informatik I “Programmierung”

Grundlagen der Informatik I “Programmierung”

Grundlagen der Informatik I “Programmierung”

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

Gegenlesen nicht findet(, aber auch bei Denkfehlern, die entstehen, wenn das Programm nicht verifiziert wurde.<br />

In den meisten Sprachen muß man hierzu Ergänzungen im Programmtext vornehmen, die man später wie<strong>der</strong><br />

rückgängig macht. Da dies auch wie<strong>der</strong> zu Fehlern führen kann, bietet Eiffel die Möglichkeit an, bestimmte<br />

Anweisungen in eine debug-Anweisung zu verlagern. Die Syntax<br />

debug Anweisung1; ...; Anweisungn end<br />

beschreibt eine Anweisung, die nur übersetzt wird, wenn die Compiler-Option DEBUG im System Description<br />

File entsprechend gesetzt ist. In diesem Falle verhält sich die debug-Anweisung wie eine gewöhnliche Anweisung,<br />

d.h. die Folge Anweisung1; ...; Anweisungn wird ausgeführt, wann immer sie an <strong>der</strong> Reihe ist. Ist<br />

die Option ausgeschaltet, so wird die debug-Anweisung einfach ignoriert, als ob sie gar nicht da wäre.<br />

4.3.9 Einfache Ein- und Ausgabe<br />

Im Gegensatz zu den üblichen Programmiersprachen hat Eiffel als Sprache keine Ein- und Ausgabe. Jedoch<br />

stellt das Eiffel System die Bibliotheksklassen FILE und STANDARD FILES zur Verfügung, <strong>der</strong>en features alle<br />

nötigen Prozeduren und Funktionen anbieten.<br />

• Die Klasse FILE bietet als Objekte sequentielle Dateien an. Eine sequentielle Datei kann man sich als ein<br />

Band vorstellen, von dem man entwe<strong>der</strong> nur von vorne nach hinten stückweise lesen kann (Eingabeband),<br />

o<strong>der</strong> an dem man nur am Ende neue Werte anfügen kann (Ausgabeband).<br />

• Die Klasse STANDARD FILES bietet als Attribute drei sequentielle Dateien vom Typ FILE an:<br />

– input für die Eingabe,<br />

– output für die Ausgabe und<br />

– error für Fehlermeldungen<br />

Darüber hinaus liefert sie Routinen, um die Ein- und Ausgabe am Bildschirm realisieren zu können.<br />

Abbildungen 4.12 und 4.13 stellen die wichtigsten davon zusammen.<br />

Routine Vorbedingung Nachbedingung<br />

readchar Das erste Zeichen des Eingabebands wurde<br />

entfernt und in den Puffer eingelesen<br />

lastchar readchar wurde durchgeführt Result = das im Puffer gespeicherte Zeichen<br />

readint Am Eingabeband steht als<br />

nächstes eine Ziffernfolge<br />

Die Zifferfolge wurde gelesen, vom Band entfernt,<br />

als INTEGER-Wert interpretiert und im<br />

Puffer gespeichert<br />

lastint readint wurde durchgeführt Result = <strong>der</strong> Integerwert im Puffer<br />

readreal Am Eingabeband steht eine Zeichenfolge,<br />

darstellt<br />

die eine REAL-Zahl<br />

Die Zifferfolge wurde gelesen, vom Band entfernt,<br />

als REAL-Wert interpretiert und im Puffer<br />

gespeichert<br />

lastreal readreal wurde durchgeführt Result = <strong>der</strong> Realwert im Puffer<br />

readline Alle Zeichen bis zum Return-Zeichen wurden<br />

eingelesen und im STRING-Puffer gespeichert<br />

laststring readline wurde durchgeführt Result = Verweis auf den Stringpuffer 35<br />

next line Ignoriert den Rest <strong>der</strong> Zeile. Der nächste Wert<br />

wird in <strong>der</strong> nächsten Zeile erwartet<br />

Abbildung 4.12: Die wichtigsten Routinen für die Eingabe<br />

35 Mit laststring.duplicate erhält man eine Kopie des gelesenen Strings statt des Verweises auf den Puffer

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!