startknoten endknoten - tum€¦ · 4 kontrollflussdiagramme æ die ausführung des programms...

23
4 Kontrollflussdiagramme In welcher Weise, Programmteile nacheinander ausgeführt werden kann anschaulich durch Kontrollflussdiagramme dargestellt werden. Zutaten: start Startknoten stop Endknoten Harald Räcke 59/656

Upload: others

Post on 30-Apr-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Startknoten Endknoten - TUM€¦ · 4 Kontrollflussdiagramme æ Die Ausführung des Programms entspricht einemPfad durch das Kontrollflussdiagramm vom Startknoten zum Endknoten

4 Kontrollflussdiagramme

In welcher Weise, Programmteile nacheinander ausgeführt

werden kann anschaulich durch Kontrollflussdiagramme

dargestellt werden.

Zutaten:

start

Startknoten

stop

Endknoten

Harald Räcke 59/656

Page 2: Startknoten Endknoten - TUM€¦ · 4 Kontrollflussdiagramme æ Die Ausführung des Programms entspricht einemPfad durch das Kontrollflussdiagramm vom Startknoten zum Endknoten

4 Kontrollflussdiagramme

x=read()

Eingabe

write(y)

Ausgabe

x=x-y

Zuweisung

x<y yesno

bedingte

Verzweigung Kante Zusammenlauf

4 Kontrollflussdiagramme

Harald Räcke 60/656

4 Kontrollflussdiagramme

In welcher Weise, Programmteile nacheinander ausgeführt

werden kann anschaulich durch Kontrollflussdiagramme

dargestellt werden.

Zutaten:

start

Startknoten

stop

Endknoten

4 Kontrollflussdiagramme

Harald Räcke 59

Page 3: Startknoten Endknoten - TUM€¦ · 4 Kontrollflussdiagramme æ Die Ausführung des Programms entspricht einemPfad durch das Kontrollflussdiagramm vom Startknoten zum Endknoten

4 Kontrollflussdiagramme

Beispiel:

int x, y;x = read();y = read();while (x != y) {

if (x < y)y = y - x;

elsex = x - y;

}write(x);

GGT

start

x=read()

y=read()

x != y

write(x) x<y

x=x-y y=y-xstop

yesno

yesno

4 Kontrollflussdiagramme

Harald Räcke 61/656

4 Kontrollflussdiagramme

x=read()

Eingabe

write(y)

Ausgabe

x=x-y

Zuweisung

x<y yesno

bedingte

Verzweigung Kante Zusammenlauf

4 Kontrollflussdiagramme

Harald Räcke 60

Page 4: Startknoten Endknoten - TUM€¦ · 4 Kontrollflussdiagramme æ Die Ausführung des Programms entspricht einemPfad durch das Kontrollflussdiagramm vom Startknoten zum Endknoten

4 Kontrollflussdiagramme

ñ 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)

4 Kontrollflussdiagramme

Harald Räcke 62/656

4 Kontrollflussdiagramme

Beispiel:

int x, y;x = read();y = read();while (x != y) {

if (x < y)y = y - x;

elsex = x - y;

}write(x);

GGT

start

x=read()

y=read()

x != y

write(x) x<y

x=x-y y=y-xstop

yesno

yesno

4 Kontrollflussdiagramme

Harald Räcke 61

Page 5: Startknoten Endknoten - TUM€¦ · 4 Kontrollflussdiagramme æ Die Ausführung des Programms entspricht einemPfad durch das Kontrollflussdiagramm vom Startknoten zum Endknoten

4 Kontrollflussdiagramme

start

x=read()

y=read()

x != y

write(x) x<y

x=x-y y=y-xstop

yesno

yesno

4 Kontrollflussdiagramme

Harald Räcke 63/656

4 Kontrollflussdiagramme

ñ 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)

4 Kontrollflussdiagramme

Harald Räcke 62

Page 6: Startknoten Endknoten - TUM€¦ · 4 Kontrollflussdiagramme æ Die Ausführung des Programms entspricht einemPfad durch das Kontrollflussdiagramm vom Startknoten zum Endknoten

4 Kontrollflussdiagramme

start

x=read()

y=read()

x != y

write(x) x<y

x=x-y y=y-xstop

yesno

yesno

4 Kontrollflussdiagramme

Harald Räcke 63/656

4 Kontrollflussdiagramme

ñ 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)

4 Kontrollflussdiagramme

Harald Räcke 62

Page 7: Startknoten Endknoten - TUM€¦ · 4 Kontrollflussdiagramme æ Die Ausführung des Programms entspricht einemPfad durch das Kontrollflussdiagramm vom Startknoten zum Endknoten

4 Kontrollflussdiagramme

start

x=read()

y=read()

x != y

write(x) x<y

x=x-y y=y-xstop

yesno

yesno

x==18, y==

4 Kontrollflussdiagramme

Harald Räcke 63/656

4 Kontrollflussdiagramme

ñ 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)

4 Kontrollflussdiagramme

Harald Räcke 62

Page 8: Startknoten Endknoten - TUM€¦ · 4 Kontrollflussdiagramme æ Die Ausführung des Programms entspricht einemPfad durch das Kontrollflussdiagramm vom Startknoten zum Endknoten

4 Kontrollflussdiagramme

start

x=read()

y=read()

x != y

write(x) x<y

x=x-y y=y-xstop

yesno

yesno

x==18, y==24

4 Kontrollflussdiagramme

Harald Räcke 63/656

4 Kontrollflussdiagramme

ñ 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)

4 Kontrollflussdiagramme

Harald Räcke 62

Page 9: Startknoten Endknoten - TUM€¦ · 4 Kontrollflussdiagramme æ Die Ausführung des Programms entspricht einemPfad durch das Kontrollflussdiagramm vom Startknoten zum Endknoten

4 Kontrollflussdiagramme

start

x=read()

y=read()

x != y

write(x) x<y

x=x-y y=y-xstop

yesno

yesno

x==18, y==24

4 Kontrollflussdiagramme

Harald Räcke 63/656

4 Kontrollflussdiagramme

ñ 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)

4 Kontrollflussdiagramme

Harald Räcke 62

Page 10: Startknoten Endknoten - TUM€¦ · 4 Kontrollflussdiagramme æ Die Ausführung des Programms entspricht einemPfad durch das Kontrollflussdiagramm vom Startknoten zum Endknoten

4 Kontrollflussdiagramme

start

x=read()

y=read()

x != y

write(x) x<y

x=x-y y=y-xstop

yesno

yesno

x==18, y==24

4 Kontrollflussdiagramme

Harald Räcke 63/656

4 Kontrollflussdiagramme

ñ 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)

4 Kontrollflussdiagramme

Harald Räcke 62

Page 11: Startknoten Endknoten - TUM€¦ · 4 Kontrollflussdiagramme æ Die Ausführung des Programms entspricht einemPfad durch das Kontrollflussdiagramm vom Startknoten zum Endknoten

4 Kontrollflussdiagramme

start

x=read()

y=read()

x != y

write(x) x<y

x=x-y y=y-xstop

yesno

yesno

x==18, y==6

4 Kontrollflussdiagramme

Harald Räcke 63/656

4 Kontrollflussdiagramme

ñ 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)

4 Kontrollflussdiagramme

Harald Räcke 62

Page 12: Startknoten Endknoten - TUM€¦ · 4 Kontrollflussdiagramme æ Die Ausführung des Programms entspricht einemPfad durch das Kontrollflussdiagramm vom Startknoten zum Endknoten

4 Kontrollflussdiagramme

start

x=read()

y=read()

x != y

write(x) x<y

x=x-y y=y-xstop

yesno

yesno

x==18, y==6

4 Kontrollflussdiagramme

Harald Räcke 63/656

4 Kontrollflussdiagramme

ñ 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)

4 Kontrollflussdiagramme

Harald Räcke 62

Page 13: Startknoten Endknoten - TUM€¦ · 4 Kontrollflussdiagramme æ Die Ausführung des Programms entspricht einemPfad durch das Kontrollflussdiagramm vom Startknoten zum Endknoten

4 Kontrollflussdiagramme

start

x=read()

y=read()

x != y

write(x) x<y

x=x-y y=y-xstop

yesno

yesno

x==18, y==6

4 Kontrollflussdiagramme

Harald Räcke 63/656

4 Kontrollflussdiagramme

ñ 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)

4 Kontrollflussdiagramme

Harald Räcke 62

Page 14: Startknoten Endknoten - TUM€¦ · 4 Kontrollflussdiagramme æ Die Ausführung des Programms entspricht einemPfad durch das Kontrollflussdiagramm vom Startknoten zum Endknoten

4 Kontrollflussdiagramme

start

x=read()

y=read()

x != y

write(x) x<y

x=x-y y=y-xstop

yesno

yesno

x==12, y==6

4 Kontrollflussdiagramme

Harald Räcke 63/656

4 Kontrollflussdiagramme

ñ 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)

4 Kontrollflussdiagramme

Harald Räcke 62

Page 15: Startknoten Endknoten - TUM€¦ · 4 Kontrollflussdiagramme æ Die Ausführung des Programms entspricht einemPfad durch das Kontrollflussdiagramm vom Startknoten zum Endknoten

4 Kontrollflussdiagramme

start

x=read()

y=read()

x != y

write(x) x<y

x=x-y y=y-xstop

yesno

yesno

x==12, y==6

4 Kontrollflussdiagramme

Harald Räcke 63/656

4 Kontrollflussdiagramme

ñ 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)

4 Kontrollflussdiagramme

Harald Räcke 62

Page 16: Startknoten Endknoten - TUM€¦ · 4 Kontrollflussdiagramme æ Die Ausführung des Programms entspricht einemPfad durch das Kontrollflussdiagramm vom Startknoten zum Endknoten

4 Kontrollflussdiagramme

start

x=read()

y=read()

x != y

write(x) x<y

x=x-y y=y-xstop

yesno

yesno

x==12, y==6

4 Kontrollflussdiagramme

Harald Räcke 63/656

4 Kontrollflussdiagramme

ñ 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)

4 Kontrollflussdiagramme

Harald Räcke 62

Page 17: Startknoten Endknoten - TUM€¦ · 4 Kontrollflussdiagramme æ Die Ausführung des Programms entspricht einemPfad durch das Kontrollflussdiagramm vom Startknoten zum Endknoten

4 Kontrollflussdiagramme

start

x=read()

y=read()

x != y

write(x) x<y

x=x-y y=y-xstop

yesno

yesno

x==6, y==6

4 Kontrollflussdiagramme

Harald Räcke 63/656

4 Kontrollflussdiagramme

ñ 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)

4 Kontrollflussdiagramme

Harald Räcke 62

Page 18: Startknoten Endknoten - TUM€¦ · 4 Kontrollflussdiagramme æ Die Ausführung des Programms entspricht einemPfad durch das Kontrollflussdiagramm vom Startknoten zum Endknoten

4 Kontrollflussdiagramme

start

x=read()

y=read()

x != y

write(x) x<y

x=x-y y=y-xstop

yesno

yesno

x==6, y==6

4 Kontrollflussdiagramme

Harald Räcke 63/656

4 Kontrollflussdiagramme

ñ 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)

4 Kontrollflussdiagramme

Harald Räcke 62

Page 19: Startknoten Endknoten - TUM€¦ · 4 Kontrollflussdiagramme æ Die Ausführung des Programms entspricht einemPfad durch das Kontrollflussdiagramm vom Startknoten zum Endknoten

4 Kontrollflussdiagramme

start

x=read()

y=read()

x != y

write(x) x<y

x=x-y y=y-xstop

yesno

yesno

x==6, y==6

4 Kontrollflussdiagramme

Harald Räcke 63/656

4 Kontrollflussdiagramme

ñ 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)

4 Kontrollflussdiagramme

Harald Räcke 62

Page 20: Startknoten Endknoten - TUM€¦ · 4 Kontrollflussdiagramme æ Die Ausführung des Programms entspricht einemPfad durch das Kontrollflussdiagramm vom Startknoten zum Endknoten

4 Kontrollflussdiagramme

start

x=read()

y=read()

x != y

write(x) x<y

x=x-y y=y-xstop

yesno

yesno

4 Kontrollflussdiagramme

Harald Räcke 63/656

4 Kontrollflussdiagramme

ñ 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)

4 Kontrollflussdiagramme

Harald Räcke 62

Page 21: Startknoten Endknoten - TUM€¦ · 4 Kontrollflussdiagramme æ Die Ausführung des Programms entspricht einemPfad durch das Kontrollflussdiagramm vom Startknoten zum Endknoten

4 Kontrollflussdiagramme

start

x=read()

y=read()

x != y

write(x) x<y

x=x-y y=y-xstop

yesno

yesno

4 Kontrollflussdiagramme

Harald Räcke 63/656

4 Kontrollflussdiagramme

ñ 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)

4 Kontrollflussdiagramme

Harald Räcke 62

Page 22: Startknoten Endknoten - TUM€¦ · 4 Kontrollflussdiagramme æ Die Ausführung des Programms entspricht einemPfad durch das Kontrollflussdiagramm vom Startknoten zum Endknoten

4 Kontrollflussdiagramme

ñ zu jedem MiniJava-Programm lässt sich ein

Kontrollflussdiagramm konstruieren;

ñ die Umkehrung gilt auch, liegt aber nicht sofort auf der

Hand

4 Kontrollflussdiagramme

Harald Räcke 64/656

4 Kontrollflussdiagramme

start

x=read()

y=read()

x != y

write(x) x<y

x=x-y y=y-xstop

yesno

yesno

4 Kontrollflussdiagramme

Harald Räcke 63

Page 23: Startknoten Endknoten - TUM€¦ · 4 Kontrollflussdiagramme æ Die Ausführung des Programms entspricht einemPfad durch das Kontrollflussdiagramm vom Startknoten zum Endknoten

4 Kontrollflussdiagramme

start

read

ifA

assA

ifB

assB

out

ifC

stop

yesno

yesno

no yes

4 Kontrollflussdiagramme

ñ zu jedem MiniJava-Programm lässt sich ein

Kontrollflussdiagramm konstruieren;

ñ die Umkehrung gilt auch, liegt aber nicht sofort auf der

Hand

4 Kontrollflussdiagramme

Harald Räcke 64