5. elementare befehle und struktogramme · beschreibung des programmablaufs mittel grafischer...
TRANSCRIPT
![Page 1: 5. Elementare Befehle und Struktogramme · Beschreibung des Programmablaufs mittel grafischer Symbole Beispiel : Flussdiagramme ja nein Besser : Struktogramme. Dr. Norbert Spangler](https://reader031.vdocuments.site/reader031/viewer/2022022614/5b9ffbea09d3f2385c8ca7fe/html5/thumbnails/1.jpg)
5. Elementare Befehle und Struktogramme
![Page 2: 5. Elementare Befehle und Struktogramme · Beschreibung des Programmablaufs mittel grafischer Symbole Beispiel : Flussdiagramme ja nein Besser : Struktogramme. Dr. Norbert Spangler](https://reader031.vdocuments.site/reader031/viewer/2022022614/5b9ffbea09d3f2385c8ca7fe/html5/thumbnails/2.jpg)
15.10.2006Dr. Norbert Spangler / Grundlagen der Informatik 2
Programmablauf
Beschreibung des Programmablaufs mittel grafischer Symbole
Beispiel : Flussdiagramme
ja
nein
Besser : Struktogramme
![Page 3: 5. Elementare Befehle und Struktogramme · Beschreibung des Programmablaufs mittel grafischer Symbole Beispiel : Flussdiagramme ja nein Besser : Struktogramme. Dr. Norbert Spangler](https://reader031.vdocuments.site/reader031/viewer/2022022614/5b9ffbea09d3f2385c8ca7fe/html5/thumbnails/3.jpg)
15.10.2006Dr. Norbert Spangler / Grundlagen der Informatik 3
Elementare Befehle
Befehlstypen
Zuweisung
Verzweigung
Schleife
![Page 4: 5. Elementare Befehle und Struktogramme · Beschreibung des Programmablaufs mittel grafischer Symbole Beispiel : Flussdiagramme ja nein Besser : Struktogramme. Dr. Norbert Spangler](https://reader031.vdocuments.site/reader031/viewer/2022022614/5b9ffbea09d3f2385c8ca7fe/html5/thumbnails/4.jpg)
15.10.2006Dr. Norbert Spangler / Grundlagen der Informatik 4
5.1 Zuweisungen
Einfache Zuweisung
Beispiel flaeche=r*r*3.14159;
Struktogramm
flaeche = r*r*3.14159Inhalte sind beliebig zu beschreibenoder
flaeche = r2*3.14159
![Page 5: 5. Elementare Befehle und Struktogramme · Beschreibung des Programmablaufs mittel grafischer Symbole Beispiel : Flussdiagramme ja nein Besser : Struktogramme. Dr. Norbert Spangler](https://reader031.vdocuments.site/reader031/viewer/2022022614/5b9ffbea09d3f2385c8ca7fe/html5/thumbnails/5.jpg)
15.10.2006Dr. Norbert Spangler / Grundlagen der Informatik 5
Einfache Zuweisung
Aufbau
Variable = Ausdruck
AllgemeinL-Wert Zuweisungsoperator R-Wert(L-value) (R-value)
L-Wert bezeichnet immer eine Speicherstelle zur Speicherungdes Ergebnisses, z.B. ein Variablenname
R-Werte können auch Ausdrücke sein wie x*y+1
![Page 6: 5. Elementare Befehle und Struktogramme · Beschreibung des Programmablaufs mittel grafischer Symbole Beispiel : Flussdiagramme ja nein Besser : Struktogramme. Dr. Norbert Spangler](https://reader031.vdocuments.site/reader031/viewer/2022022614/5b9ffbea09d3f2385c8ca7fe/html5/thumbnails/6.jpg)
15.10.2006Dr. Norbert Spangler / Grundlagen der Informatik 6
Zusammengesetzte Zuweisung
Anstelle von i=i+1; i+=1;
d=d*(r+2); d*=r+2;
Prinzip v=v op r; v op= r;
Beispiele += -= *= /= %=
![Page 7: 5. Elementare Befehle und Struktogramme · Beschreibung des Programmablaufs mittel grafischer Symbole Beispiel : Flussdiagramme ja nein Besser : Struktogramme. Dr. Norbert Spangler](https://reader031.vdocuments.site/reader031/viewer/2022022614/5b9ffbea09d3f2385c8ca7fe/html5/thumbnails/7.jpg)
15.10.2006Dr. Norbert Spangler / Grundlagen der Informatik 7
5.2 Verzweigungen
Typen
if
if else
else-if Kette
switch
Auswahloperator
![Page 8: 5. Elementare Befehle und Struktogramme · Beschreibung des Programmablaufs mittel grafischer Symbole Beispiel : Flussdiagramme ja nein Besser : Struktogramme. Dr. Norbert Spangler](https://reader031.vdocuments.site/reader031/viewer/2022022614/5b9ffbea09d3f2385c8ca7fe/html5/thumbnails/8.jpg)
15.10.2006Dr. Norbert Spangler / Grundlagen der Informatik 8
ifif ( boolscher Ausdruck)
Anweisung1Anweisung2
WirkungsweiseAuswertung des boolschen Ausdrucksfalls true : Führe Anweisung1 aus, dann Anweisung2falls false: Führe Anweisung2 aus
Anweisung : Befehl;
{Befehl;Befehl;.....;Befehl;}
Beispiel if ( x < 0 )x = - x;
// jetzt ist x immer >= 0
![Page 9: 5. Elementare Befehle und Struktogramme · Beschreibung des Programmablaufs mittel grafischer Symbole Beispiel : Flussdiagramme ja nein Besser : Struktogramme. Dr. Norbert Spangler](https://reader031.vdocuments.site/reader031/viewer/2022022614/5b9ffbea09d3f2385c8ca7fe/html5/thumbnails/9.jpg)
15.10.2006Dr. Norbert Spangler / Grundlagen der Informatik 9
Struktogramm
boolscher AusdruckFalschWahr
Anweisung2
Anweisung1
Beispiel
x < 0FalschWahr
x = - xHier gehts dann weiter
X = - X
![Page 10: 5. Elementare Befehle und Struktogramme · Beschreibung des Programmablaufs mittel grafischer Symbole Beispiel : Flussdiagramme ja nein Besser : Struktogramme. Dr. Norbert Spangler](https://reader031.vdocuments.site/reader031/viewer/2022022614/5b9ffbea09d3f2385c8ca7fe/html5/thumbnails/10.jpg)
15.10.2006Dr. Norbert Spangler / Grundlagen der Informatik 10
if-else
if ( boolscher Ausdruck)Anweisung1
elseAnweisung2
Anweisung3
WirkungsweiseAuswertung des boolschen Ausdrucksfalls true : Führe Anweisung1 aus, dann Anweisung3falls false: Führe Anweisung2 aus, dann Anweisung3
![Page 11: 5. Elementare Befehle und Struktogramme · Beschreibung des Programmablaufs mittel grafischer Symbole Beispiel : Flussdiagramme ja nein Besser : Struktogramme. Dr. Norbert Spangler](https://reader031.vdocuments.site/reader031/viewer/2022022614/5b9ffbea09d3f2385c8ca7fe/html5/thumbnails/11.jpg)
15.10.2006Dr. Norbert Spangler / Grundlagen der Informatik 11
Beispiel
if ( durchmesser <= 0 ) // unzulässig{
cout << " Durchmesser muss > 0 sein ";return 1;
}else // Eingabedaten in Ordnung{
flaeche=pow(durchmesser,2)*pi/4;widerstand= rho*laenge/flaeche;
// Ausgabecout << " Laenge \t" << laenge << " m" << endl;cout << " Durchmesser \t" << durchmesser <<" mm" << endl;cout << " Widerstand \t" <<widerstand <<" Ohm"<<endl;return 0;
}
![Page 12: 5. Elementare Befehle und Struktogramme · Beschreibung des Programmablaufs mittel grafischer Symbole Beispiel : Flussdiagramme ja nein Besser : Struktogramme. Dr. Norbert Spangler](https://reader031.vdocuments.site/reader031/viewer/2022022614/5b9ffbea09d3f2385c8ca7fe/html5/thumbnails/12.jpg)
15.10.2006Dr. Norbert Spangler / Grundlagen der Informatik 12
Struktogramm
boolscher AusdruckFalschWahr
Anweisung2
Anweisung3
Anweisung1
![Page 13: 5. Elementare Befehle und Struktogramme · Beschreibung des Programmablaufs mittel grafischer Symbole Beispiel : Flussdiagramme ja nein Besser : Struktogramme. Dr. Norbert Spangler](https://reader031.vdocuments.site/reader031/viewer/2022022614/5b9ffbea09d3f2385c8ca7fe/html5/thumbnails/13.jpg)
15.10.2006Dr. Norbert Spangler / Grundlagen der Informatik 13
Beispiel
durchmesser <= 0FalschWahr
Ausgabe : durchmesser muss > 0 seinreturn 1
flaeche=durchmesser ² *pi/4widerstand= rho*laenge/flaecheAusgabe Laenge, Durchmesser,
Widerstandreturn 0
![Page 14: 5. Elementare Befehle und Struktogramme · Beschreibung des Programmablaufs mittel grafischer Symbole Beispiel : Flussdiagramme ja nein Besser : Struktogramme. Dr. Norbert Spangler](https://reader031.vdocuments.site/reader031/viewer/2022022614/5b9ffbea09d3f2385c8ca7fe/html5/thumbnails/14.jpg)
15.10.2006Dr. Norbert Spangler / Grundlagen der Informatik 14
Verschachtelung// Verschachtelung von if else#include <iostream>using namespace std;void main(){
int i,j,k;cin >> i >> j >> k;if ( i < j )
if ( j < k )cout << i << j << k;
elseif ( i < k )
cout << i << k << j;else
cout << k << i << j;else
if ( i < k )cout << j << i << k;
elseif ( j < k )
cout << j << k << i;else
cout << k << j << i;}
if-else Befehle müssen immer vollständigim if oder else Teil eines „übergeordneten“if-else Befehls enthalten sein
![Page 15: 5. Elementare Befehle und Struktogramme · Beschreibung des Programmablaufs mittel grafischer Symbole Beispiel : Flussdiagramme ja nein Besser : Struktogramme. Dr. Norbert Spangler](https://reader031.vdocuments.site/reader031/viewer/2022022614/5b9ffbea09d3f2385c8ca7fe/html5/thumbnails/15.jpg)
15.10.2006Dr. Norbert Spangler / Grundlagen der Informatik 15
Verschachtelung/2
// Werte Stromimpuls#include <iostream>using namespace std;void main(){
double t;cin >> t ;if ( t < 0 )
cout << " Wert ist " << 0 <<endl;else
if ( t < 1 )cout << " Wert ist " << t <<endl;
elseif ( t < 2 )
cout << " Wert ist " << 2-t <<endl;else
cout << " Wert ist " << 0 <<endl;
}
![Page 16: 5. Elementare Befehle und Struktogramme · Beschreibung des Programmablaufs mittel grafischer Symbole Beispiel : Flussdiagramme ja nein Besser : Struktogramme. Dr. Norbert Spangler](https://reader031.vdocuments.site/reader031/viewer/2022022614/5b9ffbea09d3f2385c8ca7fe/html5/thumbnails/16.jpg)
15.10.2006Dr. Norbert Spangler / Grundlagen der Informatik 16
Alternative
// Werte Stromimpuls#include <iostream>using namespace std;void main(){
double t;cin >> t ;if ( t < 0 )
cout << " Wert ist " << 0 <<endl;else if ( t < 1 )
cout << " Wert ist " << t <<endl;else if ( t < 2 )
cout << " Wert ist " << 2-t <<endl;else
cout << " Wert ist " << 0 <<endl;
}
![Page 17: 5. Elementare Befehle und Struktogramme · Beschreibung des Programmablaufs mittel grafischer Symbole Beispiel : Flussdiagramme ja nein Besser : Struktogramme. Dr. Norbert Spangler](https://reader031.vdocuments.site/reader031/viewer/2022022614/5b9ffbea09d3f2385c8ca7fe/html5/thumbnails/17.jpg)
15.10.2006Dr. Norbert Spangler / Grundlagen der Informatik 17
else if Kette
if ( boolscher Ausdruck1)Anweisung1
else if (booscher Ausdruck2)Anweisung2
else if ....
elseAnweisungm
Anweisungn
WirkungsweiseAuswertung von boolscher Ausdruck1falls true : Führe Anweisung1 aus,
dann Anweisungnfalls false: Auswertung von boolscher Ausdruck2
falls true : Führe Anweisung2 aus, dann Anweisungn
falls false:
.....
![Page 18: 5. Elementare Befehle und Struktogramme · Beschreibung des Programmablaufs mittel grafischer Symbole Beispiel : Flussdiagramme ja nein Besser : Struktogramme. Dr. Norbert Spangler](https://reader031.vdocuments.site/reader031/viewer/2022022614/5b9ffbea09d3f2385c8ca7fe/html5/thumbnails/18.jpg)
15.10.2006Dr. Norbert Spangler / Grundlagen der Informatik 18
Struktogramm
t<0Wahr Falsch
t<1Wahr Falsch
t<2Wahr Falsch0
t2-t 0
![Page 19: 5. Elementare Befehle und Struktogramme · Beschreibung des Programmablaufs mittel grafischer Symbole Beispiel : Flussdiagramme ja nein Besser : Struktogramme. Dr. Norbert Spangler](https://reader031.vdocuments.site/reader031/viewer/2022022614/5b9ffbea09d3f2385c8ca7fe/html5/thumbnails/19.jpg)
15.10.2006Dr. Norbert Spangler / Grundlagen der Informatik 19
Switch/Beispiel// Kleinrechner/switch#include <iostream>using namespace std;void main(){
int i,j;char op;cin >> i >> op >> j;switch (op){
case '+' :cout << i << op << j <<" = " << i+j << endl;break;
case '-' :cout << i << op << j <<" = " << i-j << endl;break;
case '*' :cout << i << op << j <<" = " << i*j << endl;break;
case '/' :cout << i << op << j <<" = " << i/j << endl;break;
case '%' :cout << i << op << j <<" = " << i%j << endl;break;
default :cout << " unzulässiger Operator " << endl;
}}
![Page 20: 5. Elementare Befehle und Struktogramme · Beschreibung des Programmablaufs mittel grafischer Symbole Beispiel : Flussdiagramme ja nein Besser : Struktogramme. Dr. Norbert Spangler](https://reader031.vdocuments.site/reader031/viewer/2022022614/5b9ffbea09d3f2385c8ca7fe/html5/thumbnails/20.jpg)
15.10.2006Dr. Norbert Spangler / Grundlagen der Informatik 20
switch
switch ( ganzzahliger Ausdruck ){
case konstante1 :Befehl;Befehl;...Befehl;break;
case konstante2 :Befehl;Befehl;...Befehl;break;
.....
default :Befehl;Befehl;...Befehl;
}
Kann weggelassen werdenNicht empfehlenswert !!!!!
![Page 21: 5. Elementare Befehle und Struktogramme · Beschreibung des Programmablaufs mittel grafischer Symbole Beispiel : Flussdiagramme ja nein Besser : Struktogramme. Dr. Norbert Spangler](https://reader031.vdocuments.site/reader031/viewer/2022022614/5b9ffbea09d3f2385c8ca7fe/html5/thumbnails/21.jpg)
15.10.2006Dr. Norbert Spangler / Grundlagen der Informatik 21
switch
Wirkungsweise
Auswertung des Ausdrucks (muss ganzzahliger Typ sein)
Vergleich mit den ganzzahligen Konstanten (alle verschieden)
Bei Übereinstimmung mit einer Konstanten->Verzweigung zur case – Marke.Ausführung der Befehle bis zum break, dann Verzweigung zum Ende (nach dem switch).
Fehlt der break-Befehl wird mit dem darauf folgenden Befehl fortgesetzt !!!!!
Stimmt der Wert mit keiner Konstanten überein wird bei default fortgesetzt,Sofern vorhanden (wenn nicht, findet keine Aktion statt).
![Page 22: 5. Elementare Befehle und Struktogramme · Beschreibung des Programmablaufs mittel grafischer Symbole Beispiel : Flussdiagramme ja nein Besser : Struktogramme. Dr. Norbert Spangler](https://reader031.vdocuments.site/reader031/viewer/2022022614/5b9ffbea09d3f2385c8ca7fe/html5/thumbnails/22.jpg)
15.10.2006Dr. Norbert Spangler / Grundlagen der Informatik 22
Struktogramm
Ausdruck+
-*
/%
sonstAusgabei+ j Ausgabe
i - j Ausgabei * j
Ausgabei / j
Ausgabei modulo j
Fehlermeldung
![Page 23: 5. Elementare Befehle und Struktogramme · Beschreibung des Programmablaufs mittel grafischer Symbole Beispiel : Flussdiagramme ja nein Besser : Struktogramme. Dr. Norbert Spangler](https://reader031.vdocuments.site/reader031/viewer/2022022614/5b9ffbea09d3f2385c8ca7fe/html5/thumbnails/23.jpg)
15.10.2006Dr. Norbert Spangler / Grundlagen der Informatik 23
Gegenüberstellung
Die else-if Kette ist universeller als switch. Sie kann mit beliebigen booleschen Ausdrücken formuliert werden.
Switch ist beschränkt auf den Vergleich ganzzahliger Ausdrücke (u.a. Aufzählungstyp !!), ist aber übersichtlicher, insbesondere wenn es viele Fälle sind.
![Page 24: 5. Elementare Befehle und Struktogramme · Beschreibung des Programmablaufs mittel grafischer Symbole Beispiel : Flussdiagramme ja nein Besser : Struktogramme. Dr. Norbert Spangler](https://reader031.vdocuments.site/reader031/viewer/2022022614/5b9ffbea09d3f2385c8ca7fe/html5/thumbnails/24.jpg)
15.10.2006Dr. Norbert Spangler / Grundlagen der Informatik 24
Auswahloperator
Beispiel
Anstelle von
if ( x >= 0 )y = x;
elsey = -x;
kann auch
y = (x>=0)? x : -x;
mit dem Auswahloperator ? verwendet werden (bedingte Bewertung).
![Page 25: 5. Elementare Befehle und Struktogramme · Beschreibung des Programmablaufs mittel grafischer Symbole Beispiel : Flussdiagramme ja nein Besser : Struktogramme. Dr. Norbert Spangler](https://reader031.vdocuments.site/reader031/viewer/2022022614/5b9ffbea09d3f2385c8ca7fe/html5/thumbnails/25.jpg)
15.10.2006Dr. Norbert Spangler / Grundlagen der Informatik 25
Auswahloperator
Form :
(boolscher Ausdruck) ? Ausdruck1: Ausdruck2;
Wirkung :
Wenn der boolsche Ausdruck wahr ist, wird Ausdruck1 verwendet,sonst Ausdruck2.
![Page 26: 5. Elementare Befehle und Struktogramme · Beschreibung des Programmablaufs mittel grafischer Symbole Beispiel : Flussdiagramme ja nein Besser : Struktogramme. Dr. Norbert Spangler](https://reader031.vdocuments.site/reader031/viewer/2022022614/5b9ffbea09d3f2385c8ca7fe/html5/thumbnails/26.jpg)
15.10.2006Dr. Norbert Spangler / Grundlagen der Informatik 26
5.3 Schleifen
while-Schleife
do while Schleife
for Schleife
-> Hinweis auf Entwicklung
![Page 27: 5. Elementare Befehle und Struktogramme · Beschreibung des Programmablaufs mittel grafischer Symbole Beispiel : Flussdiagramme ja nein Besser : Struktogramme. Dr. Norbert Spangler](https://reader031.vdocuments.site/reader031/viewer/2022022614/5b9ffbea09d3f2385c8ca7fe/html5/thumbnails/27.jpg)
15.10.2006Dr. Norbert Spangler / Grundlagen der Informatik 27
Modellierung von while-Schleifen
1) Identifizierung der Wiederholungsbedingung (WB) der Schleife
(ev. Negation einer Abbruchbedingung)
2) Ermittlung, ob die Schleife immer mindestens einmal durchlaufen wirdfalls ja: do whileandernfalls: while
3) Identifizierung aller Befehle, die wiederholt werden wie z.B.:nächste Daten lesen – neue Summe berechnen – zählen – ...
4) Existenz von Befehlen unter 3) prüfen, welche WB ändern. Ansonsten ist es eine unendliche Schleife.
![Page 28: 5. Elementare Befehle und Struktogramme · Beschreibung des Programmablaufs mittel grafischer Symbole Beispiel : Flussdiagramme ja nein Besser : Struktogramme. Dr. Norbert Spangler](https://reader031.vdocuments.site/reader031/viewer/2022022614/5b9ffbea09d3f2385c8ca7fe/html5/thumbnails/28.jpg)
15.10.2006Dr. Norbert Spangler / Grundlagen der Informatik 28
while Schleife
while ( boolescher Ausdruck)Anweisung1
Anweisung2
Wirkung(*) Werte boolschen Ausdruck aus
falls true : Führe Anweisung1 ausMache weiter bei (*)
falls false: Führe Anweisung2 aus
![Page 29: 5. Elementare Befehle und Struktogramme · Beschreibung des Programmablaufs mittel grafischer Symbole Beispiel : Flussdiagramme ja nein Besser : Struktogramme. Dr. Norbert Spangler](https://reader031.vdocuments.site/reader031/viewer/2022022614/5b9ffbea09d3f2385c8ca7fe/html5/thumbnails/29.jpg)
15.10.2006Dr. Norbert Spangler / Grundlagen der Informatik 29
Struktogramm
Solange boolscher Ausdruck wahr ist
Anweisung1
Anweisung2
![Page 30: 5. Elementare Befehle und Struktogramme · Beschreibung des Programmablaufs mittel grafischer Symbole Beispiel : Flussdiagramme ja nein Besser : Struktogramme. Dr. Norbert Spangler](https://reader031.vdocuments.site/reader031/viewer/2022022614/5b9ffbea09d3f2385c8ca7fe/html5/thumbnails/30.jpg)
15.10.2006Dr. Norbert Spangler / Grundlagen der Informatik 30
while Schleife/Beispiel
In einem Programm sollen positive ganze Zahlen eingelesen und deren Durchschnitt berechnet werden.
Das Programm endet, wenn eine negative Zahl oder 0 eingegeben wird.
Danach sind Durchschnitt und Anzahl der gelesenenZahlen am Bildschirm auszugeben.
Modellierung1- Wiederholungsbedingung gelesene Zahl>02- es muss ev. nichts getan werden -> while-Schleife3- zu wiederholende Befehle: zählen, summieren, lesen4- der Lesebefehl beeinflusst die Wiederholungsbedingung
![Page 31: 5. Elementare Befehle und Struktogramme · Beschreibung des Programmablaufs mittel grafischer Symbole Beispiel : Flussdiagramme ja nein Besser : Struktogramme. Dr. Norbert Spangler](https://reader031.vdocuments.site/reader031/viewer/2022022614/5b9ffbea09d3f2385c8ca7fe/html5/thumbnails/31.jpg)
15.10.2006Dr. Norbert Spangler / Grundlagen der Informatik 31
Beispiel
// Lesen von positiven Zahlen#include <iostream>using namespace std;void main(){
int anzahl=0,eingabezahl;float summe=0.0;
// Erste Zahl eingebencout << " Bitte positive Zahl eingeben " << endl;cout << " Abbruch mit 0 " << endl;cin >> eingabezahl;
//Schleifewhile (eingabezahl>0){
++anzahl;summe+=eingabezahl;cout << " Bitte naechste Zahl eingeben/Abbruch mit 0 " << endl;cin >> eingabezahl;
}//Ergebnis ausgeben
cout << " Der Durchschnitt ist : " << summe/anzahl << endl;cout << " Es wurden "<<anzahl<<" Zahlen gelesen"<<endl;
}
Welche Testfälle sollte man wählen?
-> Testplan
Welche Schwächenhat dieses Programm?
![Page 32: 5. Elementare Befehle und Struktogramme · Beschreibung des Programmablaufs mittel grafischer Symbole Beispiel : Flussdiagramme ja nein Besser : Struktogramme. Dr. Norbert Spangler](https://reader031.vdocuments.site/reader031/viewer/2022022614/5b9ffbea09d3f2385c8ca7fe/html5/thumbnails/32.jpg)
15.10.2006Dr. Norbert Spangler / Grundlagen der Informatik 32
Beispiel
![Page 33: 5. Elementare Befehle und Struktogramme · Beschreibung des Programmablaufs mittel grafischer Symbole Beispiel : Flussdiagramme ja nein Besser : Struktogramme. Dr. Norbert Spangler](https://reader031.vdocuments.site/reader031/viewer/2022022614/5b9ffbea09d3f2385c8ca7fe/html5/thumbnails/33.jpg)
15.10.2006Dr. Norbert Spangler / Grundlagen der Informatik 33
do while Schleife
do Anweisung1
while ( boolescher Ausdruck)Anweisung2
Wirkung
(*) Führe Anweisung1 ausWerte boolschen Ausdruck aus
falls true : Mache weiter bei (*)falls false: Führe Anweisung2 aus
In einer do while Schleifewird die Anweisung in derSchleife mindestens 1 malausgeführt !!!!
![Page 34: 5. Elementare Befehle und Struktogramme · Beschreibung des Programmablaufs mittel grafischer Symbole Beispiel : Flussdiagramme ja nein Besser : Struktogramme. Dr. Norbert Spangler](https://reader031.vdocuments.site/reader031/viewer/2022022614/5b9ffbea09d3f2385c8ca7fe/html5/thumbnails/34.jpg)
15.10.2006Dr. Norbert Spangler / Grundlagen der Informatik 34
Struktogramm
Solange boolscher Ausdruck wahr ist
Anweisung2
Anweisung1
![Page 35: 5. Elementare Befehle und Struktogramme · Beschreibung des Programmablaufs mittel grafischer Symbole Beispiel : Flussdiagramme ja nein Besser : Struktogramme. Dr. Norbert Spangler](https://reader031.vdocuments.site/reader031/viewer/2022022614/5b9ffbea09d3f2385c8ca7fe/html5/thumbnails/35.jpg)
15.10.2006Dr. Norbert Spangler / Grundlagen der Informatik 35
Beispiel
Es soll näherungsweise die Wurzel einer Zahl a > 0 mit folgendem Verfahrenberechnet werden :
x0 = a xk+1 = (xk + a/ xk) /2 für k=0,1,2,...
Man beende das Verfahren, wenn |xk * xk – a| < 10-10 gilt
Modellierung1- Wiederholungsbedingung Betrag>= 10-10 2- x1 sollte berechnet werden -> do while-Schleife3- zu wiederholende Befehle: Formel4- die Formel beeinflusst die Wiederholungsbedingung
![Page 36: 5. Elementare Befehle und Struktogramme · Beschreibung des Programmablaufs mittel grafischer Symbole Beispiel : Flussdiagramme ja nein Besser : Struktogramme. Dr. Norbert Spangler](https://reader031.vdocuments.site/reader031/viewer/2022022614/5b9ffbea09d3f2385c8ca7fe/html5/thumbnails/36.jpg)
15.10.2006Dr. Norbert Spangler / Grundlagen der Informatik 36
Beispiel/Ergebnis
// Wurzel#include <iostream>#include <cmath>using namespace std;void main(){
double x,a;// Daten eingeben
cout << " Bitte a>0 eingeben " << endl;cin >> a;
//Algorithmus mit Plausubilitätskontrolleif ( a> 0 )
{x = a; // Startwertdo{
x = (x+a/x)/2;//Formel}while (fabs (x*x-a) >=1.0e-10 );
// Ausgabecout << " Wurzel(" << a <<") = " << x << endl;}
elsecout << " a muss > 0 sein " << endl;
}
Testfälle
![Page 37: 5. Elementare Befehle und Struktogramme · Beschreibung des Programmablaufs mittel grafischer Symbole Beispiel : Flussdiagramme ja nein Besser : Struktogramme. Dr. Norbert Spangler](https://reader031.vdocuments.site/reader031/viewer/2022022614/5b9ffbea09d3f2385c8ca7fe/html5/thumbnails/37.jpg)
15.10.2006Dr. Norbert Spangler / Grundlagen der Informatik 37
for Schleife / Beispiel für Zählschleife
for ( i=1 ; i<n ; i+=1 ) Anweisung1
Anweisung2
Wirkung
Führe den ersten Befehl (hier z.B. i=1) aus
(*) Werte den boolschen Ausdruck (hier z.B. i<n) ausFalls true : Führe Anweisung1 aus
Führe die letzte Anweisung (hier z.B. i+=1) ausWeiter bei (*)
Falls false: Weiter mit dem ersten Befehl nach der SchleifeAnweisung2
![Page 38: 5. Elementare Befehle und Struktogramme · Beschreibung des Programmablaufs mittel grafischer Symbole Beispiel : Flussdiagramme ja nein Besser : Struktogramme. Dr. Norbert Spangler](https://reader031.vdocuments.site/reader031/viewer/2022022614/5b9ffbea09d3f2385c8ca7fe/html5/thumbnails/38.jpg)
15.10.2006Dr. Norbert Spangler / Grundlagen der Informatik 38
(vereinfachtes) Struktogramm
Für Zähler = Anfangwert .... Endwert
Anweisung1
Anweisung2
![Page 39: 5. Elementare Befehle und Struktogramme · Beschreibung des Programmablaufs mittel grafischer Symbole Beispiel : Flussdiagramme ja nein Besser : Struktogramme. Dr. Norbert Spangler](https://reader031.vdocuments.site/reader031/viewer/2022022614/5b9ffbea09d3f2385c8ca7fe/html5/thumbnails/39.jpg)
15.10.2006Dr. Norbert Spangler / Grundlagen der Informatik 39
Beispiel
Man berechne die Summe der ersten n natürlichen Zahlen.n ist einzulesen.
// Summe natuerlicher Zahlen#include <iostream>using namespace std;void main(){
int i,n,summe=0;//eingabe
cout << " Bitte n eingeben " << endl;cin >>n;
//Summationfor (i=1;i<=n;i++)
summe+=i;//Ergebnisausgabe
cout << " Die Summe der ersten " << n <<" natuerlichen Zahlen ist ";cout << summe << endl;
}
![Page 40: 5. Elementare Befehle und Struktogramme · Beschreibung des Programmablaufs mittel grafischer Symbole Beispiel : Flussdiagramme ja nein Besser : Struktogramme. Dr. Norbert Spangler](https://reader031.vdocuments.site/reader031/viewer/2022022614/5b9ffbea09d3f2385c8ca7fe/html5/thumbnails/40.jpg)
15.10.2006Dr. Norbert Spangler / Grundlagen der Informatik 40
for-Schleife allgemein
for (Anweisung1;boolscher Ausdruck;Anweisung3) Anweisung2
Anweisung4
Wirkung
Führe Anweisung1(=Initialisierung ) aus (ev. mehrere durch Komma getrennt)
(*) Werte den boolschen Ausdruck ausFalls true : Führe Anweisung2 aus
Führe Anweisung3 (=Reinitialisierung) aus(ev. mehrere durch Komma getrennt)
Weiter bei (*)
Falls false: Weiter mit dem ersten Befehl nach der SchleifeAnweisung4
![Page 41: 5. Elementare Befehle und Struktogramme · Beschreibung des Programmablaufs mittel grafischer Symbole Beispiel : Flussdiagramme ja nein Besser : Struktogramme. Dr. Norbert Spangler](https://reader031.vdocuments.site/reader031/viewer/2022022614/5b9ffbea09d3f2385c8ca7fe/html5/thumbnails/41.jpg)
15.10.2006Dr. Norbert Spangler / Grundlagen der Informatik 41
Struktogramm
Anweisung1
Solange boolscher Ausdruck wahr ist
Anweisung2
Anweisung3
Anweisung4
![Page 42: 5. Elementare Befehle und Struktogramme · Beschreibung des Programmablaufs mittel grafischer Symbole Beispiel : Flussdiagramme ja nein Besser : Struktogramme. Dr. Norbert Spangler](https://reader031.vdocuments.site/reader031/viewer/2022022614/5b9ffbea09d3f2385c8ca7fe/html5/thumbnails/42.jpg)
15.10.2006Dr. Norbert Spangler / Grundlagen der Informatik 42
For-Schleife/Beispiele
for (i=0 ; i<n ; i++){....}
for (i=0 ; i<n ; i+=2){....}
for (k=m ; k>0 ; k--){....}
for (i=1,k=100; i<n && k > 0; i++,k--){....}
for (Datei oeffnen, hole erste Daten ; kein Dateiende ; lese naechste Daten){verarbeite Daten}
![Page 43: 5. Elementare Befehle und Struktogramme · Beschreibung des Programmablaufs mittel grafischer Symbole Beispiel : Flussdiagramme ja nein Besser : Struktogramme. Dr. Norbert Spangler](https://reader031.vdocuments.site/reader031/viewer/2022022614/5b9ffbea09d3f2385c8ca7fe/html5/thumbnails/43.jpg)
15.10.2006Dr. Norbert Spangler / Grundlagen der Informatik 43
5.4 Sonstige Befehle
break Verzweigung ans Ende eines Switch-Befehls oder einer Schleife. Weiter mit dem darauf folgenden Befehl.
continue Beginne mit der nächsten Wiederholung einer Schleife
while/do-while : Wiederholungsbedingungfor : Reinitialisierung
goto marke Verzweigung zu einer Marke. Eine Marke ist ein Name gefolgt von :Eine Marke kann vor jedem Befehl stehen.Tipp : goto vermeiden (erhöht Intransparenz).