Upload
aleit-hellner
View
109
Download
0
Embed Size (px)
Citation preview
Vergleich von Schleifen:
Wie kann man eine Schleife durch eine andere darstellen ?
Aufgabe:Wie stellt man eine
for-Schleife durch eine
while-Schleife dar ?
B
f
w
A
A1
B
A
A3
f
w
while-Schleife
for-Schleife
A1;while(B){ A; A3;}
for(A1;B;A3){ A;}
Beispiel:
Annahme:Bei allen folgenden Beispiel-Programmen wird stillschweigend vorausgesetzt, daß über Tastatur für die Variablen z1 und z2 ganze Zahlen eingegeben wurden:scanf("%d" ,&z1);scanf("%d" ,&z2);
for(i=z1;i<=z2;i=i+1){ sum = sum+i;}
sum = 0;
}
sum = 0;
BA1
A3
AA1
B
AA3
Was berechnet dieses Programm ?
Die Summe aller ganzen Zahlen zwischen z1 und z2, wobei z1<=z2 sein muß.
i = z1;while(i<=z2){sum = sum+i;i = i+1;
Aufgabe:Wie stellt man eine
while-Schleife durch eine
for-Schleife dar ?
while(B){ A;}
for(;B;){ A;}
Im Schleifenkopf der for-Anweisung müssen 3 Ausdrücke vorkommen, die
durch zwei Semikolon getrennt werden. Da links vom 1. Semikolon und rechts vom 2. Semikolon nichts steht, muss dies jeweils der leere Ausdruck sein.
Beispiel:
while(i<=z2){ sum = sum+i; i = i+1;} }
sum = 0;i = z1;
sum = 0;i = z1;
B B
A A
for(;i<=z2;){sum = sum+i;i = i+1;
Aufgabe:Wie stellt man eine do...while –Schleife
durch eine while-Schleife
dar ?
B
f
w
A
do...while-Schleife
Bf
w
A
Angenommen, das Programm wurde bis an diesen Punkt abgearbeitet. Was fällt dann auf ?
Das Programm ist wieder in einer while-Schleife !
A;while(B){ A;}
do{ A;}while(B);
Beispiel:
do{ sum = sum+i; i = i+1;}while(i<=z2);
sum = 0;i = z1;
}
sum = 0;i = z1;
BA
A B
A
sum = sum+i;i = i+1;
sum = sum+i;i = i+1;
while(i<=z2){
Aufgabe:Wie stellt man eine
while-Schleife durch eine
do...while –Schleife dar ?
B
f
w
A
Bf
w
A
Angenommen, das Programm wurde bis an diesen Punkt abgearbeitet. Was fällt dann auf ?
do...while-Schleife
while-Schleife
Das Programm ist wieder in einer
do...while-Schleife !
while(B){ A;}
if(B){ do{ A; }while(B);}
Beispiel:
while(i<=z2){ sum = sum+i; i = i+1;}
sum = 0;i = z1;
}
sum = 0;i = z1;
B
A
sum = sum+i;i = i+1;
if(i<=z2){
}while(i<=z2);
do{
B
A B
Aufgabe:Geben Sie eine weitere Möglichkeit an, eine
while-Schleife durch eine
do...while –Schleife darzustellen.
while(B){ A;}
do{ if(B){ A; }}while(B);
Testen Sie dies, indem sie folgende Voraussetzungen machen:1) B ist genau 0 Mal richtig.2) B ist genau 1 Mal richtig.3) B ist genau 2 Mal richtig.4) B ist genau 3 Mal richtig....
Aufgabe:Wie stellt man eine
for-Schleife durch eine
do...while –Schleife dar, bzw. eine
do...while –Schleife durch eine
for-Schleife
Man wandelt die for-Schleifein einewhile –Schleife um und dann die while –Schleifein eine do...while –Schleife bzw. umgekehrt, kurz:
for-Schleife siehe oben (frühere Folie)
<=
=>
<=
=>
siehe oben (frühere Folie)
while-Schleife
do...while –Schleife