Schleifen- beobachtung. Aufgabe: Schreiben Sie ein Programm (auf Papier), das die folgende Summe...

31
Schleifen- beobachtung

Transcript of Schleifen- beobachtung. Aufgabe: Schreiben Sie ein Programm (auf Papier), das die folgende Summe...

Page 1: Schleifen- beobachtung. Aufgabe: Schreiben Sie ein Programm (auf Papier), das die folgende Summe berechnet: 1+2+3+4+...+98+99+100.

Schleifen-beobachtung

Page 2: Schleifen- beobachtung. Aufgabe: Schreiben Sie ein Programm (auf Papier), das die folgende Summe berechnet: 1+2+3+4+...+98+99+100.

Aufgabe:Schreiben Sie ein

Programm (auf Papier), das die folgende Summe

berechnet:1+2+3+4+...+98+99+100

Page 3: Schleifen- beobachtung. Aufgabe: Schreiben Sie ein Programm (auf Papier), das die folgende Summe berechnet: 1+2+3+4+...+98+99+100.

Programmier-Idee:

Page 4: Schleifen- beobachtung. Aufgabe: Schreiben Sie ein Programm (auf Papier), das die folgende Summe berechnet: 1+2+3+4+...+98+99+100.

1

sum

2+

sum

3+

sum

4+

sum

...+

Page 5: Schleifen- beobachtung. Aufgabe: Schreiben Sie ein Programm (auf Papier), das die folgende Summe berechnet: 1+2+3+4+...+98+99+100.

umgesetzt in Java ergibt dies:

Page 6: Schleifen- beobachtung. Aufgabe: Schreiben Sie ein Programm (auf Papier), das die folgende Summe berechnet: 1+2+3+4+...+98+99+100.

sum = 1;sum = sum+2;sum = sum+3;sum = sum+4;...

Diese sich immer wiederholenden Anweisungen kann man kürzer

darstellen durch eine...

Schleife !

Wert von sum: 1

Wert von sum: 1 + 2

Wert von sum: 1 + 2 + 3

Wert von sum: 1 + 2 + 3 + 4

Page 7: Schleifen- beobachtung. Aufgabe: Schreiben Sie ein Programm (auf Papier), das die folgende Summe berechnet: 1+2+3+4+...+98+99+100.

sum = sum+i;

Bei jedem Schleifendurchgang muß i

um 1 erhöht werden !

Page 8: Schleifen- beobachtung. Aufgabe: Schreiben Sie ein Programm (auf Papier), das die folgende Summe berechnet: 1+2+3+4+...+98+99+100.

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

sum =i =

0;1;

100

Vorschlag für die Anfangswerte.

Vorschlag für die Bedingung

Woher weiß man, daß diese Werte ein korrektes Programm liefern ??

Man muß die Werte von i und sum beobachten !

Page 9: Schleifen- beobachtung. Aufgabe: Schreiben Sie ein Programm (auf Papier), das die folgende Summe berechnet: 1+2+3+4+...+98+99+100.

Beobachtung von Programmen

(Debuggen)

Page 10: Schleifen- beobachtung. Aufgabe: Schreiben Sie ein Programm (auf Papier), das die folgende Summe berechnet: 1+2+3+4+...+98+99+100.

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.

Page 11: Schleifen- beobachtung. Aufgabe: Schreiben Sie ein Programm (auf Papier), das die folgende Summe berechnet: 1+2+3+4+...+98+99+100.

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

Page 12: Schleifen- beobachtung. Aufgabe: Schreiben Sie ein Programm (auf Papier), das die folgende Summe berechnet: 1+2+3+4+...+98+99+100.

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

sum =i =

0;1;

100

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

i 2 3 4 ...5 101

Welchen Wert hat i, wenn das Programm das letzte Mal an diese Stelle kommt ?

Welchen Wert hat dann sum?

Welchen Zusammenhang gibt es zwischen i und sum ?

Die letzte Zahl in sum ist jeweils um 1 kleiner als

der Wert von i !

1+2+3+...+98+99+100

Hier wird beobachtet

Page 13: Schleifen- beobachtung. Aufgabe: Schreiben Sie ein Programm (auf Papier), das die folgende Summe berechnet: 1+2+3+4+...+98+99+100.

Alternative Möglichkeit, die Korrektheit eines

Programms zu "beweisen":

Page 14: Schleifen- beobachtung. Aufgabe: Schreiben Sie ein Programm (auf Papier), das die folgende Summe berechnet: 1+2+3+4+...+98+99+100.

Man testet die Schleife für wenigere

Schleifendurchgänge

Page 15: Schleifen- beobachtung. Aufgabe: Schreiben Sie ein Programm (auf Papier), das die folgende Summe berechnet: 1+2+3+4+...+98+99+100.

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.

Page 16: Schleifen- beobachtung. Aufgabe: Schreiben Sie ein Programm (auf Papier), das die folgende Summe berechnet: 1+2+3+4+...+98+99+100.

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.

Page 17: Schleifen- beobachtung. Aufgabe: Schreiben Sie ein Programm (auf Papier), das die folgende Summe berechnet: 1+2+3+4+...+98+99+100.

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...

Page 18: Schleifen- beobachtung. Aufgabe: Schreiben Sie ein Programm (auf Papier), das die folgende Summe berechnet: 1+2+3+4+...+98+99+100.

sum = 0;i = 1;

while(i<=3 ){

sum = sum+i;

i = i+1;

}

sum

i

00

Page 19: Schleifen- beobachtung. Aufgabe: Schreiben Sie ein Programm (auf Papier), das die folgende Summe berechnet: 1+2+3+4+...+98+99+100.

sum = 0;i = 1;

while(i<=3 ){

sum = sum+i;

i = i+1;

}

sum 0

i 11

0

Page 20: Schleifen- beobachtung. Aufgabe: Schreiben Sie ein Programm (auf Papier), das die folgende Summe berechnet: 1+2+3+4+...+98+99+100.

sum = 0;i = 1;

while(i<=3 ){

sum = sum+i;

i = i+1;

}

sum 0

i 11

0

1

wahr

Page 21: Schleifen- beobachtung. Aufgabe: Schreiben Sie ein Programm (auf Papier), das die folgende Summe berechnet: 1+2+3+4+...+98+99+100.

sum = 0;i = 1;

while(i<=3 ){

sum = sum+i;

i = i+1;

}

sum 0

i 11

0

1

0 11

1

Page 22: Schleifen- beobachtung. Aufgabe: Schreiben Sie ein Programm (auf Papier), das die folgende Summe berechnet: 1+2+3+4+...+98+99+100.

sum = 0;i = 1;

while(i<=3 ){

sum = sum+i;

i = i+1;

}

sum 0

i 11

0

1

0 11

1

12

2

Page 23: Schleifen- beobachtung. Aufgabe: Schreiben Sie ein Programm (auf Papier), das die folgende Summe berechnet: 1+2+3+4+...+98+99+100.

sum = 0;i = 1;

while(i<=3 ){

sum = sum+i;

i = i+1;

}

sum 0

i 1

2

1

2

wahr

Page 24: Schleifen- beobachtung. Aufgabe: Schreiben Sie ein Programm (auf Papier), das die folgende Summe berechnet: 1+2+3+4+...+98+99+100.

sum = 0;i = 1;

while(i<=3 ){

sum = sum+i;

i = i+1;

}

sum 0

i 1

2

1

1 21+2

1+2

2

Page 25: Schleifen- beobachtung. Aufgabe: Schreiben Sie ein Programm (auf Papier), das die folgende Summe berechnet: 1+2+3+4+...+98+99+100.

sum = 0;i = 1;

while(i<=3 ){

sum = sum+i;

i = i+1;

}

sum 0

i 1

2

1

1 21+2

23

2 3

1+2

Page 26: Schleifen- beobachtung. Aufgabe: Schreiben Sie ein Programm (auf Papier), das die folgende Summe berechnet: 1+2+3+4+...+98+99+100.

sum = 0;i = 1;

while(i<=3 ){

sum = sum+i;

i = i+1;

}

sum 0

i 1

3

1

2 3

1+2

wahr

Page 27: Schleifen- beobachtung. Aufgabe: Schreiben Sie ein Programm (auf Papier), das die folgende Summe berechnet: 1+2+3+4+...+98+99+100.

sum = 0;i = 1;

while(i<=3 ){

sum = sum+i;

i = i+1;

}

sum 0

i 1

3

1

2 3

1+2 31+2+3

1+2 1+2+3

Page 28: Schleifen- beobachtung. Aufgabe: Schreiben Sie ein Programm (auf Papier), das die folgende Summe berechnet: 1+2+3+4+...+98+99+100.

sum = 0;i = 1;

while(i<=3 ){

sum = sum+i;

i = i+1;

}

sum 0

i 1

3

1

2 3

1+2 31+2+3

1+2 1+2+3

34

4

Page 29: Schleifen- beobachtung. Aufgabe: Schreiben Sie ein Programm (auf Papier), das die folgende Summe berechnet: 1+2+3+4+...+98+99+100.

sum = 0;i = 1;

while(i<=3 ){

sum = sum+i;

i = i+1;

}

sum 0

i 1

1

2 3

1+2 1+2+3

4

4

falsch

Page 30: Schleifen- beobachtung. Aufgabe: Schreiben Sie ein Programm (auf Papier), das die folgende Summe berechnet: 1+2+3+4+...+98+99+100.

sum = 0;i = 1;

while(i<=3 ){

sum = sum+i;

i = i+1;

}

sum 0

i 1

1

2 3

1+2 1+2+3

4

4

Page 31: Schleifen- beobachtung. Aufgabe: Schreiben Sie ein Programm (auf Papier), das die folgende Summe berechnet: 1+2+3+4+...+98+99+100.

sum = 0;i = 1;

while(i<=3 ){

sum = sum+i;

i = i+1;

}

sum 0

i 1

1

2 3

1+2 1+2+3

4

Damit berechnet das Programm die Summe 1 + 2 + 3wenn man für die Bedingung i <= 3schreibt. 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