Geschachtelte Programmschleifen

Werbung
Agenda für heute, 5. April, 2007
• Wiederholte Programmausführung
• Algorithmische Grundlagen
• Bedingungen zum Abbruch von Programmschleifen
• Geschachtelte Programmschleifen
• Syntaxdiagramme
Steuerung des Programmablaufs: Wiederholung
• Gründe für die Wiederholungen von Anweisungsfolgen:
- Operationen werden solange ausgeführt, bis alle Daten
verarbeitet sind
- eine Berechnung wird mit veränderten Eingabewerten
solange wiederholt, bis das Resultat eine gewünschte
Genauigkeit erreicht
- ein Programm soll solange wie gewünscht wiederholt
werden
• Ein Programm muss also
a) wissen was wiederholt ausgeführt werden muss und
b) entscheiden können wann die Wiederholung anzuhalten ist
Programmieren und Problemlösen
2/14
© Institut für Computational Science, ETH Zürich
• Wiederholte Programmausführung
• Algorithmische Grundlagen
• Bedingungen zum Abbruch von Programmschleifen
• Geschachtelte Programmschleifen
• Syntaxdiagramme
Algorithmische Grundlagen: Zwei Arten der Wiederholung
Anweisungsfolge
wahr
Abbruch?
falsch
Anweisungsfolge wird mindestens
1 mal ausgeführt
Programmieren und Problemlösen
wahr
Abbruch?
falsch
Anweisungsfolge
Anweisungsfolge wird nicht,
1 mal oder mehrmals ausgeführt
3/14
© Institut für Computational Science, ETH Zürich
• Wiederholte Programmausführung
• Algorithmische Grundlagen
• Bedingungen zum Abbruch von
Programmschleifen
• Geschachtelte Programmschleifen
• Syntaxdiagramme
Wie oft wird eine Schleife ausgeführt?
In Pascal gibt es die folgenden Schleifen-Anweisungen:
for Anfangswert to Endwert do Anweisungsfolge
for Anfangswert downto Endwert do Anweisungsfolge
while Bedingung do Anweisungsfolge
repeat Anweisungsfolge until Bedingung
Die for-Schleife führt eine vorgegebene Anzahl Wiederholungen aus.
Die Anzahl Wiederholungen der while- und repeat-Schleife wird durch
Aktionen innerhalb der Schleife gesteuert.
Programmieren und Problemlösen
4/14
© Institut für Computational Science, ETH Zürich
Struktur der for-Anweisung
Kontrollvariable (muss deklariert sein)
for Variable:= Ausdruck1 to Ausdruck2 do Anweisung
Beispiel:
for i:= 0 to 9 do write(i)
Output: 0 1 2 3 4 5 6 7 8 9
for Variable:= Ausdruck1 downto Ausdruck2 do Anweisung
Beispiel:
for i:= 9 downto 0 do write(i)
Output: 9 8 7 6 5 4 3 2 1 0
Programmieren und Problemlösen
5/14
© Institut für Computational Science, ETH Zürich
Struktur der while-Anweisung
while boolescher Ausdruck do Anweisung
Die Anweisung wird wiederholt solange ausgeführt wie eine
Auswertung des booleschen Ausdrucks den Wahrheitswert "true"
ergibt.
Beispiel:
i:= 0;
while i < 10 do
begin
write(i);
i:= i + 1
end;
Output: 0 1 2 3 4 5 6 7 8 9
Programmieren und Problemlösen
6/14
© Institut für Computational Science, ETH Zürich
Struktur der repeat-Anweisung
repeat Anweisung until boolescher Ausdruck
Führe Anweisung einmal aus und wiederhole solange bis eine
Auswertung des booleschen Ausdrucks den Wahrheitswert "true"
ergibt.
Beispiel:
i:= 0;
repeat write(i); i:= i + 1
until i = 10
Output: 0 1 2 3 4 5 6 7 8 9
Programmieren und Problemlösen
7/14
© Institut für Computational Science, ETH Zürich
• Wiederholte Programmausführung
• Algorithmische Grundlagen
• Bedingungen zum Abbruch von Programmschleifen
• Geschachtelte Programmschleifen
• Syntaxdiagramme
Algorithmische Grundlagen: Mehrere Abbruchbedingungen
Anweisungsfolge
wahr
Abbruch?
Programmieren und Problemlösen
falsch
8/14
© Institut für Computational Science, ETH Zürich
Schachtelung am Beispiel der for-Anweisung
for Variable1:= Ausdruck1 to Ausdruck2 do
for Variable2:= Ausdruck3 downto Ausdruck4 do Anweisung
Beispiele:
for i:= 1 to 3 do
for j:= 1 to 10 do write(i*j)
for i:= 1 to 3 do
begin
for j:= 1 to 10 do write(i*j);
writeln;
end;
Programmieren und Problemlösen
9/14
© Institut für Computational Science, ETH Zürich
Schachtelung am Beispiel der while-Anweisung
while boolescher Ausdruck1 do
while boolescher Ausdruck2 do Anweisung
Beispiel:
i:= 1; j:= 1;
while i < 3 do
begin
while j < 10 do
begin
write(i*j); j:= j + 1;
writeln
end
end
Programmieren und Problemlösen
10/14
© Institut für Computational Science, ETH Zürich
• Wiederholte Programmausführung
• Algorithmische Grundlagen
• Bedingungen zum Abbruch von Programmschleifen
• Geschachtelte Programmschleifen
• Syntaxdiagramme
Grundlagen der Syntaxdiagramme
Elemente der Syntaxdiagramme
Nicht-Terminalsymbole:
Bezeichner
Terminalsymbole:
;
Nicht-Terminalsymbole können durch andere Nicht-Terminalsymbole
oder durch Terminalsymbole nach vorgegebenen Syntaxregeln
ersetzt werden.
Programmieren und Problemlösen
11/14
© Institut für Computational Science, ETH Zürich
Grundlagen der Syntaxdiagramme
Produktionsregeln (gelten für beide Arten von Symbolen)
Auswahl:
Folge:
Wiederholung:
a
b
...
Buchstabe
Y
Z
Buchstabe
Bezeichner
,
Option:
Bezeichner
Programmieren und Problemlösen
12/14
© Institut für Computational Science, ETH Zürich
Syntaxregeln am Beispiel "Programm"
Programmieren und Problemlösen
13/14
© Institut für Computational Science, ETH Zürich
Syntaxregeln am Beispiel "Bezeichner"
Programmieren und Problemlösen
14/14
© Institut für Computational Science, ETH Zürich
Herunterladen