Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Wiederholte Programmausführung

Ähnliche Präsentationen


Präsentation zum Thema: "Wiederholte Programmausführung"—  Präsentation transkript:

1 Wiederholte Programmausführung
Agenda für heute, 5. März, 2009 Wiederholte Programmausführung Die Wiederholungsanweisungen von Pascal Geschachtelte Programmschleifen Syntaxdiagramme Lesen Sie den Begleittext Kapitel 4

2 Die Notwendigkeit für wiederholte Programmausführungen
Aufgabe: Die Quadratwurzel einer positiven Zahl berechnen Einschränkung: Es stehen nur arithmetische Operationen zur Verfügung: *, /, +, - 2/16 Programmieren und Problemlösen © Departement Informatik, ETH Zürich

3 Aufgaben für die Implementierung dieses Verfahrens: Darstellung der xn
Beispiel: c = 2 x0 = 1 x1 = 1/2 + 2/2 = 1.5 x2 = 1.5/2 + 2/3 = x3 = /2 + 2/ = und so weiter . . . Aufgaben für die Implementierung dieses Verfahrens: Darstellung der xn Wiederholung der Bildungsvorschrift Abbrechen der Wiederholung 3/16 Programmieren und Problemlösen © Departement Informatik, ETH Zürich

4 Variablen, Anweisungen, Schleifen
Die mathematischen Variablen xn stellen wir durch die Variable var x: real; dar und realisieren die Bildungsvorschrift für xn+1 mit x:= x/2.0+c/(2.0*x); Diese Anweisung muss für n = 1, 2, 3, ausgeführt werden. Wir müssen sie also für jedes n wiederholen. Pascal bietet verschiedene Möglichkeiten dies zu tun: for-Anweisung, while-Anweisung, repeat-Anweisung 4/16 Programmieren und Problemlösen © Departement Informatik, ETH Zürich

5 Die Wiederholungsanweisungen von Pascal
Wiederholte Programmausführung Die Wiederholungsanweisungen von Pascal Bedingungen zum Abbruch von Programmschleifen Geschachtelte Programmschleifen Syntaxdiagramme

6 Die verschiedenen Wiederholungsanweisungen von Pascal
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. 5/16 Programmieren und Problemlösen © Departement Informatik, ETH Zürich

7 Struktur der for-Anweisung
Kontrollvariable (muss deklariert sein) for Variable:= Ausdruck1 to Ausdruck2 do Anweisung Die Anweisung wird wiederholt solange ausgeführt wie der Wert der Kontrollvariablen kleiner als oder gleich dem Wert von Ausdruck2 ist. Beispiel: x:= 5; for i:= 0 to x do write(i*2) Output: Einschränkungen: 1) Die Anweisung wird nicht ausgeführt wenn: oberer index < unterer index 2) Die Kontrollvariable und die beiden Ausdrücke müssen vom gleichen Typ sein, und für diesen Typ muss es die succ-Funktion geben. Dies schliesst eine Kontrollvariable vom Typ Real aus. 3) Wenn die for-Schleife terminiert, ist die Kontrollvariable undefiniert, d.h. ein gültiger Wert kann nicht erwartet werden. 6/16 Programmieren und Problemlösen © Departement Informatik, ETH Zürich

8 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; Bem.: Jede for-Schleife könnte prinzipiell durch eine while-Anweisung ersetzt werden. For-Schleifen sind jedoch aussagekräftiger. Output: 7/16 Programmieren und Problemlösen © Departement Informatik, ETH Zürich

9 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 Bem.: Eine zusammengesetzte Anweisung zwischen repeat und until benötigt kein begin und kein end. Output: 8/16 Programmieren und Problemlösen © Departement Informatik, ETH Zürich

10 Newton-Verfahren mit einer while-Schleife
program qwurzel; var c, x: real; begin x:= 1.0; write('Wurzel aus: '); readln(c); while abs(x*x - c) > 1.0E-6 do x:= x/2.0 + c/(2.0*x); writeln('Ergebnis = ',x:8:6); readln end. Wiederholung der Bildungsvorschrift Bem.: Eine zusammengesetzte Anweisung zwischen repeat und until benötigt kein begin und kein end. Die Schleife wird abgebrochen, wenn 9/16 Programmieren und Problemlösen © Departement Informatik, ETH Zürich

11 Geschachtelte Programmschleifen
Wiederholte Programmausführung Die Wiederholungsanweisungen von Pascal Geschachtelte Programmschleifen Syntaxdiagramme

12 Mehrere Abbruchbedingungen
Anweisungs- folge wahr falsch Abbruch? 10/16 Programmieren und Problemlösen © Departement Informatik, ETH Zürich

13 Schachtelung am Beispiel der for-Anweisung
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; Einschränkungen: 1) Die Anweisung wird nicht ausgeführt wenn: oberer index < unterer index 2) Die Kontrollvariable und die beiden Ausdrücke müssen vom gleichen Typ sein, und für diesen Typ muss es die succ-Funktion geben. Dies schliesst eine Kontrollvariable vom Typ Real aus. 3) Wenn die for-Schleife terminiert, ist die Kontrollvariable undefiniert, d.h. ein gültiger Wert kann nicht erwartet werden. 11/16 Programmieren und Problemlösen © Departement Informatik, ETH Zürich

14 Schachtelung am Beispiel der while-Anweisung
Quersumme solange berechnen bis ein "q" eingegeben wird read(zahl); while zahl <> 'q' do begin summe:= 0; i:= length(zahl); for j:= 1 to i do summe:= summe + ord(zahl[j]) - 48; writeln('Quersumme von ',zahl,': ',summe) end; Einschränkungen: 1) Die Anweisung wird nicht ausgeführt wenn: oberer index < unterer index 2) Die Kontrollvariable und die beiden Ausdrücke müssen vom gleichen Typ sein, und für diesen Typ muss es die succ-Funktion geben. Dies schliesst eine Kontrollvariable vom Typ Real aus. 3) Wenn die for-Schleife terminiert, ist die Kontrollvariable undefiniert, d.h. ein gültiger Wert kann nicht erwartet werden. 12/16 Programmieren und Problemlösen © Departement Informatik, ETH Zürich

15 Syntaxdiagramme Wiederholte Programmausführung
Die Wiederholungsanweisungen von Pascal Geschachtelte Programmschleifen Syntaxdiagramme

16 Grundlagen der Syntaxdiagramme
Elemente der Syntaxdiagramme Nicht-Terminalsymbole: Terminalsymbole: ; Nicht-Terminalsymbole können durch andere Nicht-Terminalsymbole oder durch Terminalsymbole nach vorgegebenen Syntaxregeln ersetzt werden. Bezeichner 13/16 Programmieren und Problemlösen © Departement Informatik, ETH Zürich

17 Grundlagen der Syntaxdiagramme
Produktionsregeln (gelten für Terminal- und Nicht-Terminalsymbole) Auswahl: a b Y Z Folge: Buchstabe Buchstabe Wiederholung: Bezeichner , Option: Bezeichner 14/16 Programmieren und Problemlösen © Departement Informatik, ETH Zürich

18 Syntaxregeln am Beispiel "Programm"
15/16 Programmieren und Problemlösen © Departement Informatik, ETH Zürich

19 Syntaxregeln am Beispiel "Bezeichner"
16/16 Programmieren und Problemlösen © Departement Informatik, ETH Zürich


Herunterladen ppt "Wiederholte Programmausführung"

Ähnliche Präsentationen


Google-Anzeigen