pr4

Werbung
4 Kontrollflussdiagramme
4 Kontrollflussdiagramme
In welcher Weise, Programmteile nacheinander ausgeführt
werden kann anschaulich durch Kontrollflussdiagramme
dargestellt werden.
Zutaten:
start
stop
Startknoten
Endknoten
x=read()
write(y)
x=x-y
Eingabe
Ausgabe
Zuweisung
Kante
Zusammenlauf
no
x<y
yes
bedingte
Verzweigung
4 Kontrollflussdiagramme
Harald Räcke
59
4 Kontrollflussdiagramme
Harald Räcke
60
4 Kontrollflussdiagramme
Beispiel:
start
int x, y;
x = read();
y = read();
while (x !=
if (x <
y =
else
x =
}
write(x);
GGT
ñ
Die Ausführung des Programms entspricht einem Pfad
durch das Kontrollflussdiagramm vom Startknoten zum
Endknoten.
ñ
Die Deklaration von Variablen muss man sich am
Startknoten vorstellen.
ñ
Die auf dem Pfad liegenden Knoten (außer Start- und
Endknoten) sind Operationen bzw. auszuwertende
Bedingungen.
ñ
Um den Nachfolger an einem Verzweigungsknoten zu
bestimmen, muss die Bedingung mit den aktuellen Werten
der Variablen ausgewertet werden. ( operationelle Semantik)
x=read()
y=read()
y) {
y)
y - x;
no
yes
x != y
x - y;
write(x)
stop
no
x=x-y
x<y
yes
y=y-x
4 Kontrollflussdiagramme
Harald Räcke
4 Kontrollflussdiagramme
61
Harald Räcke
62
4 Kontrollflussdiagramme
4 Kontrollflussdiagramme
x==6, y==6
start
x=read()
ñ
zu jedem MiniJava-Programm lässt sich ein
Kontrollflussdiagramm konstruieren;
ñ
die Umkehrung gilt auch, liegt aber nicht sofort auf der
Hand
y=read()
Animation ist nur in der
no
yes
x != y
Vorlesungsversion
der Folien
vorhanden.
no
write(x)
x<y
yes
x=x-y
stop
Die Umkehrung wäre sehr einfach zu bewerkstelligen,
wenn wir in einem MiniJava-Programm goto-Befehle benutzen dürften, d.h. wenn wir von jedem Punkt zu jedem
anderen innerhalb des Programms springen könnten.
Die obige Aussage bedeutet im Prinzip, dass man
goto-Befehle immmer durch geeignete Schleifen ersetzen kann.
y=y-x
4 Kontrollflussdiagramme
4 Kontrollflussdiagramme
Harald Räcke
63
4 Kontrollflussdiagramme
start
read
no
yes
ifA
assA
no
ifB
yes
assB
no
ifC
yes
out
stop
Harald Räcke
64
Herunterladen