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

Post on 30-Apr-2020

1 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

top related