
Ein lineares Programm arbeitet einfach alle Befehle nacheinander ab. Mit Schleifen ist es möglich, einen Programmteil (Befehlssatz) solange zu wiederholen, bis eine bestimmte Bedingung erfüllt oder nicht erfüllt wird.
Man unterscheidet zwischen kopf- und fußgesteuerten Schleifen:
Lineares Programm
begin
eingabe;
verarbeitung;
ausgabe;
end.
Diese drei Befehle werden einmal nacheinander abgearbeitet und das Programm danach beendet.
Kopfgesteuerte Schleife
begin
antwort := 'j';
while antwort <> 'n' do
begin
eingabe;
verarbeitung;
ausgabe;
abfrage;
end;
end.
Solange die Antwort etwas Anderes als 'n' ist, werden die Befehle zwischen begin und end; wiederholt.
Fußgesteuerte Schleife
begin
repeat
eingabe;
verarbeitung;
ausgabe;
abfrage;
until antwort = 'n';
end.
Die Befehle zwischen repeat und until werden wiederholt, bis die Antwort 'n' ist.
Zählschleife
Hier wird eine Variable bei jedem neuen Durchlauf um eine Einheit inkrementiert (erhöht) oder dekrementiert.
begin
for i := 0 to 10 do
begin
verarbeitung;
ausgabe;
end;
end.
Mit to wird die Steuervariable immer um 1 inkrementiert, mit downto um 1 dekrementiert.
Mögliche Operatoren für Schleifen sind = (gleich), <> (ungleich), < (kleiner), > (größer), IN (bestimmte Eingabe), keypressed (Tastendruck).
Nach oben
© 2000-2010 Clemens Weiß | Webplain.de
Link zu dieser Seite | Letzte Änderung: 26. Okt. 2008
Kommentare
Es gibt 20 Kommentare zu »Schleifen«.
Neuen Kommentar posten...
1 Am 09. Okt. 2002 schrieb Anna-Marie Beissner:
Wodurch Unterscheidet sich die FOR-DO_ Schleife von den andren Schleifen?
2 Am 09. Okt. 2002 schrieb Anna-Marie:
Wodurch unterscheiden sich die REPEAT-Until-
Schleife un die WHile-Do-Schleife????????
3 Am 24. Nov. 2002 schrieb Chillmaster:
Die Repeat wird mindestens einmal durchlaufen, auch wenn die Abbruchbedingung von Anfang an erfüllt wird.
Die While Schleife wird nicht durchlaufen, wenn von Anfang an die Abbruchbedingung erfüllt ist.
Die For - Schleife umfasst in sich schon mehrere Befehle, die bei den anderen Schleifen erst eingegeben werden müssten. Sie sagt inkrementiere (dekrementiere) den Wert von x ab, bis der Wert y erreicht hat, dann brich die Schleife ab.
4 Am 04. Nov. 2003 schrieb ChillyBoy:
Hier noch etwas interresantes:
Pseudocode
WHILE bedingung DO
anweisungsfolge
END WHILE
Die Abweisschleife ist ein Spezialfall des verallgemeinerten Zyklus:
LOOP
WHEN NOT bedingung THEN EXIT
anweisungsfolge
END LOOP
5 Am 28. Nov. 2003 schrieb insomniac:
nabend!
wieso kann man bei der FOR -DO schleife keine variabeln einsetzten z.b.:
FOR i:=0 to X DO write(i);
bei mir meldet der dann einen "unknown identifier"
wie kann ich das denn mit variabeln machen, ist das überhaupt möglich?
mfg peter
6 Am 21. Jan. 2004 schrieb Ai:
Da hast du dann warscheinlich dein "O" und "X" nicht deklariert!!!
Und bei der FOR-DO Schleife KEINE reellen Zahlen!!!!!
7 Am 23. Apr. 2004 schrieb Jan:
Super Site, hat mir beimLernen für unsere NAturwissenschafts-Arbeit geholfen!
Bis denne Jan
8 Am 13. Jan. 2005 schrieb Turboblaster:
Ich hab eine kurze Frage: und zwar, was ist eigentlich, wenn man bei einer While-Do Schleife folgendes schreibt:
"While false do ..."
Es gibt zwei möglichkeiten, wie man das deuten kann: etweder is der ausdruck falsch und es fehlt ein bezeichner (z.B. "While bezeichner:=false do ...") oder wenn das vohergehende falsch ist, dann wir die schleife aktiv.
könnt ihr mir sagen, was nun richtig ist?! wäre cool ;)
bis dann, turboblaster
9 Am 25. Mär. 2005 schrieb engel:
wie sieht ein programmablaufplan einer for-to-do schleife eigentlich aus?
10 Am 13. Sep. 2005 schrieb franz:
wie kann ich die for to do schleife runterzählen lassen von i=10 auf 0
11 Am 23. Sep. 2005 schrieb Lugi:
Zitat:
...denk ich mal.
12 Am 01. Feb. 2006 schrieb Domini Gründler:
Was ist die While-do Schleife konkret?
13 Am 08. Feb. 2006 schrieb IceThunder:
"Was ist die While-do Schleife konkret?"
- Die while do-Schleife führt einen Anweisungsblock solange aus, wie die Bedingung, die in der Schleife angegeben wurde, gültig ist. Ist die Bedingung nicht mehr true, also false, wird die Schleife abgebrochen.
14 Am 31. Mär. 2006 schrieb Black Ghost:
Supi, endlich weiss ich wie die Kopfgesteuerte Schleife geht, dadurch kann ich gleich am anfang mein Programm beenden lassen, wen es erwünschr ist, Danke
15 Am 17. Sep. 2006 schrieb Maddin:
" Fußgesteuerte Schleife
begin
repeat
eingabe;
verarbeitung;
ausgabe;
abfrage;
until antwort = 'n';
end.
Die Befehle zwischen repeat und until werden wiederholt, bis die Antwort 'n' ist. "
ich hab die Schleife in meinem Prgramm eingebaut aber es funktioniert einfach nicht :(
bei der "Abfrage" was soll ich da reinschreiben?
Danke im voraus :D
16 Am 18. Sep. 2006 schrieb kosmus:
Kann ich eine repeat-schleife auch erst enden lassen wenn 2 bedinugen erfüllt sind?
z.B.
begin
repeat
bla;
bla:
until antwort = 'a';
until antwort2 = 'b':
end.
so gehts nich, aba wie geht es dann?
17 Am 25. Sep. 2006 schrieb mabako:
Mit
until (antwort = 'a') AND (antwort2 = 'b');
18 Am 10. Apr. 2007 schrieb Catullus:
wie oft wird eine repeat until- und eine while-schleife in der sekunde wiederholt?
19 Am 02. Nov. 2007 schrieb Luke:
Wie mache ich es wenn die Repeat Schleife abgebrochen werden sollen, wenn entweder eine oder die andere Bedingung erfüllt ist?
Ich hab das so probiert:
begin
repeat
x := readkey;
until (x = 'a') OR (x = 'b');
end.
Geht nicht.
20 Am 16. Nov. 2007 schrieb Unkreativ:
begin
repeat
x := readkey;
until (x = 'a') OR (x = 'b');
end.
müsste eigentlich funktionieren. ansonsten probiers mal mit
begin
repeat
readkey(x);
until (x = 'a') OR (x = 'b');
end.