![]() |
Informatikmaterialien |
Startseite | Informatik | Physik | Mathematik | Sonstiges | | Inhalt | Vorherige Seite | Nächste Seite | |
![]() |
Richard-Wossidlo-Gymnasium Ribnitz-Damgarten |
---|
Eine gute Quelltextformatierung vereinfacht das Finden von logischen Fehlern. Um nicht etwa das Abschließen einer Verbundanweisung zu vergessen, empfiehlt sich auch bei der Quelltexteingabe darauf zu achten, dass das Programm jeder zeitlauffähig ist.
Man schreibe die zu verwendende algorithmische Grundstruktur stets komplett auf und kommentiere die Lücken. Diese werden im Anschluss nach dem gleichen Prinzip gefüllt.
Beispiel (Object-Pascal)
sinnvolle Weise ungünstige Weise Schritt 1 repeat //kommt später until dieMaus.doppelKlick; repeat meinStift.hoch;Schritt 2 repeat meinStift.hoch; if dieMaus.istGedrueckt then begin //kommt später end; until dieMaus.doppelKlick; repeat meinStift.hoch; if dieMaus.istGedrueckt then begin meinStift.bewegeBis(x,y); meinStift.zeichneKreis(1); while dieMaus.istGedruecktSchritt 3 repeat meinStift.hoch; if dieMaus.istGedrueckt then begin meinStift.bewegeBis(x,y); meinStift.zeichneKreis(1); while dieMaus.istGedrueckt do ; //warte meinStift.runter; meinStift.bewegeBis(x,y); end; until dieMaus.doppelKlick; repeat meinStift.hoch; if dieMaus.istGedrueckt then begin meinStift.bewegeBis(x,y); meinStift.zeichneKreis(1); while dieMaus.istGedrueckt do ; //warte meinStift.runter; meinStift.bewegeBis(x,y); end; until dieMaus.doppelKlick;Konsequenz Programm ist stets lauffähig Programm läuft erst, wenn der gesamte Quelltext eingegeben wurde
Quelltext, der eine Teilstruktur darstellt, ist einzurücken. Es empfehlen sich Kommentare.
Damit ergeben sich Konsequenzen für die algorithmischen Grundstrukturen.
Grundstruktur
Musterbeispiel Hinweise Verbundanweisung
begin meinStift.bewegeBis(x,y); meinStift.zeichneKreis(1); end;Nach dem Beginn einer Verbundanweisung wird um zwei Zeichen eingerückt, das Ende der Verbundanweisung hebt die Einrückung wieder auf. Selektion
einsteige Selektion
if dieTastatur.wurdegedrueckt then begin //begin of then meinStift.bewegeBis(x,y); meinStift.zeichneKreis(1); end; //end of thenVereinfachung, falls nur eine Anweisung abzuarbeiten ist: if dieTastatur.wurdegedrueckt then meinStift.setzeFarbe(ROT);zweiseitige Selektion
if dieTastatur.wurdegedrueckt then begin //begin of then meinStift.setzeFarbe(ROT); meinStift.zeichneKreis(1); end //end of then else begin //begin of else meinStift.setzeFarbe(GELB); meinStift.zeichneRechteck(100,80); end; //end of elseVereinfachung, falls in einem Zweig nur eine Anweisung abzuarbeiten ist: if dieTastatur.wurdegedrueckt then meinStift.setzeFarbe(ROT) else begin //begin of else meinStift.setzeFarbe(GELB); meinStift.zeichneRechteck(100,80); end; //end of elsemehrseitige Selektion
CASE zeichen OF 'r':meinStift.zeichneRecheck(100,100); 'k':meinStift.ZeichneKreis(70); 'g': begin //begin of selektor 'g' meinStift.runter; meinStift.bewegebis(x,y); meinStift.hoch; end; //end of selektor 'g' else derBildschirm.loecheAlles; end; //end of caseWird in einem Alternativzweig eine Verbundanweisung notwendig, so beginnt diese unter dem entsprechendem Selektor. Gleiches gilt für den Alternativzweig für nicht genannte Selektoren. Man beachte, dass die mehrseitige Selektion abgeschlossen werden muss (end of CASE). Iteration
abweisende Schleife
while dieMaus.istgedrueckt do begin //begin of while meinStift.bewegeBis(x,y); meinStft.zeichenKreis(5); end; //end of whileVereinfachung, falls nur eine Anweisung abzuarbeiten ist: while dieMaus.istgedrueckt do meinStift.bewegeBis(x,y);
nichtabweisende Schleife
repeat meinStift.bewegeBis(x,y); meinStift.zeichneKreis(1); until dieMaus.doppelKlick;Es ist keine Verbundanweisung erforderlich. Zählschleife
for i:=1 to 10 do begin //begin of for meinStift.zeichneKreis(4*i+5); meinStift.setzeFarbe(i); end; //end of forVereinfachung, falls nur eine Anweisung abzuarbeiten ist: for i:=1 to 10 do meinStift.zeichneKreis(4*i+5);
kommt noch ;-).
![]() zur Startseite |
© Tino Hempel 1997 - 2004 | Im Web
vertreten seit 1994. Eine Internet-Seite aus dem Angebot von Tino Hempel. Für alle Seiten gilt der ![]() |