Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Fallunterscheidung und Iteration Programmierung I Prof. Dr. Michael Löwe.

Ähnliche Präsentationen


Präsentation zum Thema: "Fallunterscheidung und Iteration Programmierung I Prof. Dr. Michael Löwe."—  Präsentation transkript:

1 Fallunterscheidung und Iteration Programmierung I Prof. Dr. Michael Löwe

2 Fachhochschule für die Wirtschaft Fallunterscheidung und Iteration2 Inhalt Fallunterscheidung Bedingte Anweisung Boole‘sche Fallunterscheidung Mehrfache Fallunterscheidung (Selektion) Iteration Der semantische Iterator Anweisungen zur Iteration

3 Fachhochschule für die Wirtschaft Fallunterscheidung und Iteration3 Bedingte Anweisung W Wenn b ein boole‘scher Ausdruck ist, b  E W, und a Anweisung, a  ST, dann ist If b Then a End If  ST. Die Bedeutung ist gegeben durch: [|If b Then a End If |](z, t) = (1) [|a|](z, t), wenn value[(z, t)](b) = T (2) (z, t) sonst

4 Fachhochschule für die Wirtschaft Fallunterscheidung und Iteration4 Boole‘sche Fallunterscheidung W Wenn b  E W und a1, a2  ST, dann ist If b Then a1 Else a2 End IF  ST. [|If b Then a1 Else a2 End If |](z, t) = (1) [|a1|](z, t), wenn value[(z, t)](b) = T (2) [|a2|](z, t) sonst

5 Fachhochschule für die Wirtschaft Fallunterscheidung und Iteration5 Mehrfache Fallunterscheidung Else Parts: (1) Der leere Ausdruck ist ein „Else Part“,   EP (2) Wenn a  ST, dann ist Else a ein „Else Part“, i.e. Else a  EP W (3) Wenn b  E W, a  ST und e  EP dann ist Elseif b Then a; e ein „Else Part“, i.e. Elseif b Then a; e  EP

6 Fachhochschule für die Wirtschaft Fallunterscheidung und Iteration6 Allgemeine Fallunterscheidung W Wenn b  E W, a  ST und ep  EP, dann ist If b Then a ep End If  ST [|If b Then a ep End If |](z, t) = [|a|](z, t), wenn value[(z, t)](b) = T, [|ep|](z, t) sonst [|  |] (z, t) = (z, t) [|Else a |](z, t) = [|a|](z, t) [|Elseif b Then a ep|](z, t) = [|a|](z, t), wenn value[(z, t)](b) = T, [|ep|](z, t) sonst

7 Fachhochschule für die Wirtschaft Fallunterscheidung und Iteration7 Iteration (intuitiv) For i = anfang To ende Step differenz Anweisungen Next i Intuitiv: (1) Setze i auf anfang; (2) falls i ende noch nicht erreicht hat, führe Anweisungen aus, sonst verlasse die Iteration bei (4) (3) addiere differenz zu i, fahre mit (2) fort. (4) Ende der Iteration

8 Fachhochschule für die Wirtschaft Fallunterscheidung und Iteration8 Der semantische Iterator Erste Version: Sei f: TypedStates  TypedStates Abbildung, dann ist f n : TypedStates  TypedStates für alle natürlichen Zahlen n   so definiert: (1) f 0 (s) = s (2) f n + 1 (s) = f n (f(s))

9 Fachhochschule für die Wirtschaft Fallunterscheidung und Iteration9 Der semantische Iterator Zweite Version Z Sei f: TypedStates  TypedStates Abbildung, i  Names und w  Z* eine Liste von ganzen Zahlen, dann ist f (i, w) : TypedStates  TypedStates so definiert: (1) f (i,  ) (s) = s (2) f (i, xv) (z, t) = f (i, v) (f(set(z, i, x), t)) falls t(i) = Integer (3) f (i, w) (s) = undefiniert sonst

10 Fachhochschule für die Wirtschaft Fallunterscheidung und Iteration10 Iteration Z Wenn i  Names, e1, e2, e3  E Z, dann ist i = e1 To e2 Step e3 ein Iterationskopf, i. e. i = e1 To e2 Step e3  IK Wenn k  IK und a  ST, dann ist: For k a Next  ST (Iteration)

11 Fachhochschule für die Wirtschaft Fallunterscheidung und Iteration11 Semantik der Iteration Für alle Iterationsköpfe k definieren wir Z [|k|]: TypedStates  Names  Z* so: [|i = e1 To e2 Step e3|] (s) = (i, w), wobei w durch die folgenden Bedingungen eindeutig charakterisiert ist: ZZ Für z 1, z 2  Z und u, w, x  Z* w = uz 1 x impliziert: z 1  value[s](e2) falls value[s](e3) > 0 w = uz 1 x impliziert: z 1  value[s](e2) falls value[s](e3) < 0 w = z 1 u impliziert: z 1 = value[s](e1) w = uz 1 z 2 x impliziert: z 2 = z 1 + value[s](e3) [|For i = e1 To e2 Step e3 a Next|](s) = [|a|] [|i = e1 To e2 Step e3|](s) (s)


Herunterladen ppt "Fallunterscheidung und Iteration Programmierung I Prof. Dr. Michael Löwe."

Ähnliche Präsentationen


Google-Anzeigen