Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Schleifen-beobachtung

Ähnliche Präsentationen


Präsentation zum Thema: "Schleifen-beobachtung"—  Präsentation transkript:

1 Schleifen-beobachtung

2 Aufgabe: Schreiben Sie ein Programm (auf Papier), das die folgende Summe berechnet:

3 Programmier-Idee:

4 + 4 1 + 2 + 3 + ... sum sum sum sum

5 umgesetzt in Java ergibt dies:

6 sum = 1; sum = sum+2; sum = sum+3; sum = sum+4; ... Wert von sum: 1
1 + 2 sum = sum+3; Wert von sum: sum = sum+4; Wert von sum: ... Diese sich immer wiederholenden Anweisungen kann man kürzer darstellen durch eine... Schleife !

7 Bei jedem Schleifendurchgang muß i um 1 erhöht werden !
sum = sum+i;

8 sum = 0; i = 1; while(i<= ){ 100 sum = sum+i; i = i+1; }
Vorschlag für die Anfangswerte. 0; 1; Vorschlag für die Bedingung while(i<= ){ sum = sum+i; i = i+1; } 100 Man muß die Werte von i und sum beobachten ! Woher weiß man, daß diese Werte ein korrektes Programm liefern ??

9 Beobachtung von Programmen (Debuggen)

10 Jedesmal, wenn das Programm an die mit dem Pfeil --> bezeichnete Stelle kommt, wird der Prozessor gedanklich angehalten (analog: der Filmprojektor) und die aktuellen Werte der Variablen in die Tabelle eingetragen (analog: Das Bild , das gerade vom Filmprojektor gezeigt wird, also die aktuelle Momentaufnahme). Dann wird der Film wieder bis an die mit dem Pfeil --> bezeichnete Stelle weitergespult und es werden wieder die aktuellen Werte der Variablen in die Tabelle eingetragen.

11 In der Tabelle wird also die dynamische Entwicklung der Inhalte der Variablen festgehalten.

12 sum = 0; i = 1; while(i<= ){ 100 sum = sum+i; i = i+1; } sum 1 1+2
Hier wird beobachtet Welchen Wert hat i, wenn das Programm das letzte Mal an diese Stelle kommt ? 0; 1; Welchen Wert hat dann sum? while(i<= ){ sum = sum+i; i = i+1; } 100 Die letzte Zahl in sum ist jeweils um 1 kleiner als der Wert von i ! Welchen Zusammenhang gibt es zwischen i und sum ? sum 1 1+2 1 +2+3 ... i 2 3 4 5 ... 101

13 Alternative Möglichkeit, die Korrektheit eines Programms zu "beweisen":

14 Man testet die Schleife für wenigere Schleifendurchgänge

15 sum = 0; i = 1; while(i<=100){ sum = sum+i; i = i+1; }
Man wählt also nicht 100, sondern kleinere Werte wie z.B. 3 oder 4.

16 sum = 0; i = 1; while(i<= ){ sum = sum+i; i = i+1; }
Man wählt also nicht 100, sondern kleinere Werte wie z.B. 3 oder 4.

17 sum = 0; i = 1; while(i<=3 ){ sum = sum+i; i = i+1; }
Man wählt also nicht 100, sondern kleinere Werte wie z.B. 3 oder 4. Jetzt betrachtet man für jede Anweisung, wie sich die Variablen verändern. Welche Anweisungen werden jetzt also konkret gemacht und welche Variablen werden auf welche Werte gesetzt? Wir beginnen mit der 1. Anweisung...

18 sum = 0; i = 1; while(i<=3 ){ sum = sum+i; i = i+1; } sum i

19 sum = 0; i = 1; while(i<=3 ){ sum = sum+i; i = i+1; } sum i 1 1

20 sum = 0; i = 1; while(i<=3 ){ sum = sum+i; i = i+1; } wahr sum i 1
i 1 1 1 wahr

21 sum = 0; i = 1; while(i<=3 ){ sum = sum+i; i = i+1; } sum 1 i 1 1 1
1 i 1 1 1 1 1

22 sum = 0; i = 1; while(i<=3 ){ sum = sum+i; i = i+1; } sum 1 i 1 2 1
1 i 1 2 1 1 1 1 2 1

23 sum = 0; i = 1; while(i<=3 ){ sum = sum+i; i = i+1; } wahr sum 1 i
1 i 1 2 2 wahr

24 sum = 0; i = 1; while(i<=3 ){ sum = sum+i; i = i+1; } sum 1 1+2 i 1
1 1+2 i 1 2 2 1+2 1 2

25 sum = 0; i = 1; while(i<=3 ){ sum = sum+i; i = i+1; } sum 1 1+2 i 1
1 1+2 i 1 2 3 2 1+2 1 2 3 2

26 sum = 0; i = 1; while(i<=3 ){ sum = sum+i; i = i+1; } wahr sum 1
1 1+2 i 1 2 3 3 wahr

27 sum = 0; i = 1; while(i<=3 ){ sum = sum+i; i = i+1; } sum 1 1+2
1 1+2 1+2+3 i 1 2 3 3 1+2+3 1+2 3

28 sum = 0; i = 1; while(i<=3 ){ sum = sum+i; i = i+1; } sum 1 1+2
1 1+2 1+2+3 i 1 2 3 4 3 1+2+3 1+2 3 4 3

29 sum = 0; i = 1; while(i<=3 ){ sum = sum+i; i = i+1; } falsch sum 1
1 1+2 1+2+3 i 1 2 3 4 4 falsch

30 sum = 0; i = 1; while(i<=3 ){ sum = sum+i; i = i+1; } sum 1 1+2
1 1+2 1+2+3 i 1 2 3 4 4

31 sum = 0; i = 1; while(i<=3 ){ sum = sum+i; i = i+1; } sum 1 1+2
1 1+2 1+2+3 i 1 2 3 4 Damit berechnet das Programm die Summe wenn man für die Bedingung i <= 3 schreibt. Damit kann man vermuten, dass dies analog für i <= 100 funktioniert. Um sicher zu gehen, sollte man noch ein paar weitere Tests machen, wie z.B. für i <= 4


Herunterladen ppt "Schleifen-beobachtung"

Ähnliche Präsentationen


Google-Anzeigen