Präsentation herunterladen
Die Präsentation wird geladen. Bitte warten
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
Ähnliche Präsentationen
© 2024 SlidePlayer.org Inc.
All rights reserved.