2.4 Schleifen. Schleifen unterscheiden sich hinsichtlich des Zeitpunktes der Prüfung der Abbruchbedingung:

Größe: px
Ab Seite anzeigen:

Download "2.4 Schleifen. Schleifen unterscheiden sich hinsichtlich des Zeitpunktes der Prüfung der Abbruchbedingung:"

Transkript

1 2.4 Schleifen Schleifen beschreiben die Wiederholung einer Anweisung bzw. eines Blocks von Anweisungen (dem Schleifenrumpf) bis eine bestimmte Bedingung (die Abbruchbedingung) eintritt. Schleifen unterscheiden sich hinsichtlich des Zeitpunktes der Prüfung der Abbruchbedingung: Prüfung vor jedem Durchlauf durch den Schleifenrumpf Prüfung nach jedem Durchlauf durch den Schleifenrumpf (Prüfung in jedem Durchlauf durch den Schleifenrumpf) Universität Paderborn Technische Informatik für Ingenieure (TIFI) WS 09/10 71

2 Wir unterscheiden in Java 3 verschiedene Schleifenarten: Die while-schleife: (Prüfung vor Durchlauf) while (n > 0) { erg = erg * n; n = n - 1; Solange n noch größer als 0 ist, führe Anweisungen im Schleifenrumpf aus. Der Schleifenrumpf wird 0 mal oder einmal oder mehr als einmal durchlaufen. Die do-schleife (Prüfung nach Durchlauf) do { while (n < 0); Lese einen Wert für n ein, solange n negativ ist. Der Schleifenrumpf wird einmal oder mehr als einmal durchlaufen. Die for-schleife (Prüfung vor Durchlauf) for (i = n; i > 0; i--) erg = erg * i; Für alle Werte i von n bis 1 multipliziere den Wert von erg mit dem Wert von i. Der Schleifenrumpf wird 0 mal oder einmal oder mehr als einmal durchlaufen. Universität Paderborn Technische Informatik für Ingenieure (TIFI) WS 09/10 72

3 Die while-schleife Syntax <WhileSchleife> ::= while ( <Ausdruck> ) <Anweisung> while (n > 0) { erg = erg * n; n = n - 1; Semantik Solange die in <Ausdruck> angegebene Bedingung erfüllt ist, führe die Anweisung (bzwl. den Block von Anweisungen) in <Anweisung> aus. Universität Paderborn Technische Informatik für Ingenieure (TIFI) WS 09/10 73

4 Die do-schleife Syntax <DoSchleife> ::= do <Anweisung> while ( <Ausdruck> ) do while (n < 0); Semantik Führe die Anweisung (bzw. den Block von Anweisungen) in <Anweisung> aus, solange die in <Ausdruck> angegebene Bedingung erfüllt ist. Universität Paderborn Technische Informatik für Ingenieure (TIFI) WS 09/10 74

5 Die for-schleife Syntax <ForSchleife> ::= for ( <[For-Init]>; <[Ausdruck]>; <[For-Update]> ) <Anweisung> <For-Init> ::= <Ausdruck> <{,Ausdruck>... Variablendeklaration <For-Update> ::= <Ausdruck> <{,Ausdruck> for (i = n; i > 0; i--) erg = erg * i; Semantik Führe die Anweisungen in <For-Init> aus. Solange dann die in <Ausdruck> angegebene Bedingung erfüllt ist, führe die Anweisung (bzw. den Block von Anweisungen) in <Anweisung> aus. Nach jeder Ausführung eines Blockes führe die Anweisungen in <For-Update> aus, bevor die Bedingung in <Ausdruck> erneut geprüft wird. Universität Paderborn Technische Informatik für Ingenieure (TIFI) WS 09/10 75

6 Schachtelung von Schleifen Beispiel: Für alle i, j {1,..., n berechne i j und gebe eine Tabelle der Produkte aus: int for (int i = 1; i <= n; i++) { for (int j = 1; j <= n; j++) { int p = i*j; Out.print(p + " "); Out.println(); Schleifen können beliebig ineinander verschachtelt werden. Im Beispiel links enthält der Schleifenrumpf der for-schleife mit Laufvariable i eine weitere for-schleife mit Laufvariable j. Universität Paderborn Technische Informatik für Ingenieure (TIFI) WS 09/10 76

7 Schachtelung von Schleifen Beispiel: Für alle i, j {1,..., n berechne i j und gebe eine Tabelle der Produkte aus: int for (int i = 1; i <= n; i++) { for (int j = 1; j <= n; j++) { int p = i*j; Out.print(p + " "); Out.println(); Simulation per Hand für n = 2: i j p 1 Universität Paderborn Technische Informatik für Ingenieure (TIFI) WS 09/10 76

8 Schachtelung von Schleifen Beispiel: Für alle i, j {1,..., n berechne i j und gebe eine Tabelle der Produkte aus: int for (int i = 1; i <= n; i++) { for (int j = 1; j <= n; j++) { int p = i*j; Out.print(p + " "); Out.println(); Simulation per Hand für n = 2: i j p 1 1 Universität Paderborn Technische Informatik für Ingenieure (TIFI) WS 09/10 76

9 Schachtelung von Schleifen Beispiel: Für alle i, j {1,..., n berechne i j und gebe eine Tabelle der Produkte aus: Simulation per Hand für n = 2: int for (int i = 1; i <= n; i++) { for (int j = 1; j <= n; j++) { int p = i*j; Out.print(p + " "); Out.println(); Ausgabe: i j p Universität Paderborn Technische Informatik für Ingenieure (TIFI) WS 09/10 76

10 Schachtelung von Schleifen Beispiel: Für alle i, j {1,..., n berechne i j und gebe eine Tabelle der Produkte aus: Simulation per Hand für n = 2: int for (int i = 1; i <= n; i++) { for (int j = 1; j <= n; j++) { int p = i*j; Out.print(p + " "); Out.println(); Ausgabe: i j p Universität Paderborn Technische Informatik für Ingenieure (TIFI) WS 09/10 76

11 Schachtelung von Schleifen Beispiel: Für alle i, j {1,..., n berechne i j und gebe eine Tabelle der Produkte aus: Simulation per Hand für n = 2: for (i = 1; i <= n; i++) { for (j = 1; j <= n; j++) { int p = i*j; Out.print(p + " "); Out.println(); Ausgabe: i j p Universität Paderborn Technische Informatik für Ingenieure (TIFI) WS 09/10 76

12 Schachtelung von Schleifen Beispiel: Für alle i, j {1,..., n berechne i j und gebe eine Tabelle der Produkte aus: Simulation per Hand für n = 2: int for (int i = 1; i <= n; i++) { for (int j = 1; j <= n; j++) { int p = i*j ; Out.print(p + " ") ; Out.println(); Ausgabe: i j p Universität Paderborn Technische Informatik für Ingenieure (TIFI) WS 09/10 76

13 Schachtelung von Schleifen Beispiel: Für alle i, j {1,..., n berechne i j und gebe eine Tabelle der Produkte aus: Simulation per Hand für n = 2: for (i = 1; i <= n; i++) { for (j = 1; j <= n; j++) { int p = i*j ; Out.print(p + " ") ; Out.println(); Ausgabe: i j p Universität Paderborn Technische Informatik für Ingenieure (TIFI) WS 09/10 76

14 Schachtelung von Schleifen Beispiel: Für alle i, j {1,..., n berechne i j und gebe eine Tabelle der Produkte aus: Simulation per Hand für n = 2: for (i = 1; i <= n; i++) { for (j = 1; j <= n; j++) { int p = i*j ; Out.print(p + " ") ; Out.println(); Ausgabe: i j p Universität Paderborn Technische Informatik für Ingenieure (TIFI) WS 09/10 76

15 Schachtelung von Schleifen Beispiel: Für alle i, j {1,..., n berechne i j und gebe eine Tabelle der Produkte aus: Simulation per Hand für n = 2: int for (int i = 1; i <= n; i++) { for (int j = 1; j <= n; j++) { int p = i*j ; Out.print(p + " ") ; Out.println(); Ausgabe: i j p Universität Paderborn Technische Informatik für Ingenieure (TIFI) WS 09/10 76

16 Schachtelung von Schleifen Beispiel: Für alle i, j {1,..., n berechne i j und gebe eine Tabelle der Produkte aus: Simulation per Hand für n = 2: for (i = 1; i <= n; i++) { for (j = 1; j <= n; j++) { int p = i*j ; Out.print(p + " ") ; Out.println(); Ausgabe: i j p Universität Paderborn Technische Informatik für Ingenieure (TIFI) WS 09/10 76

17 Schachtelung von Schleifen Beispiel: Für alle i, j {1,..., n berechne i j und gebe eine Tabelle der Produkte aus: Simulation per Hand für n = 2: for (i = 1; i <= n; i++) { for (j = 1; j <= n; j++) { int p = i*j ; Out.print(p + " ") ; Out.println(); Ausgabe: i j p Universität Paderborn Technische Informatik für Ingenieure (TIFI) WS 09/10 76

18 Schachtelung von Schleifen Beispiel: Für alle i, j {1,..., n berechne i j und gebe eine Tabelle der Produkte aus: Simulation per Hand für n = 2: for (i = 1; i <= n; i++) { for (j = 1; j <= n; j++) { int p = i*j ; Out.print(p + " ") ; Out.println(); Ausgabe: i j p Universität Paderborn Technische Informatik für Ingenieure (TIFI) WS 09/10 76

19 Schachtelung von Schleifen Beispiel: Für alle i, j {1,..., n berechne i j und gebe eine Tabelle der Produkte aus: Simulation per Hand für n = 2: int for (int i = 1; i <= n; i++) { for (int j = 1; j <= n; j++) { int p = i*j ; Out.print(p + " ") ; Out.println(); Ausgabe: i j p Universität Paderborn Technische Informatik für Ingenieure (TIFI) WS 09/10 76

20 Schachtelung von Schleifen Beispiel: Für alle i, j {1,..., n berechne i j und gebe eine Tabelle der Produkte aus: Simulation per Hand für n = 2: for (i = 1; i <= n; i++) { for (j = 1; j <= n; j++) { int p = i*j; Out.print(p + " "); Out.println(); Ausgabe: i j p Universität Paderborn Technische Informatik für Ingenieure (TIFI) WS 09/10 76

21 Zusicherungen bei Schleifen Wie bei Verzweigungen kann man auch bei Schleifen Zusicherungen angeben, die das Verständnis eines Programmstücks erleichtern oder evtl. sogar einen formalen Korrektheitsbeweis erlauben. i = 1; erg = 1; while (i <= n) { erg = erg * i; i = i + 1; Out.println("erg = "+ erg); Universität Paderborn Technische Informatik für Ingenieure (TIFI) WS 09/10 77

22 Zusicherungen bei Schleifen Wie bei Verzweigungen kann man auch bei Schleifen Zusicherungen angeben, die das Verständnis eines Programmstücks erleichtern oder evtl. sogar einen formalen Korrektheitsbeweis erlauben: Zusicherungen aus der Schleifenbedingung i = 1; erg = 1; while (i <= n) { // i <= n erg = erg * i; i = i + 1; // i > n Out.println("erg = "+ erg); Universität Paderborn Technische Informatik für Ingenieure (TIFI) WS 09/10 77

23 Zusicherungen bei Schleifen Wie bei Verzweigungen kann man auch bei Schleifen Zusicherungen angeben, die das Verständnis eines Programmstücks erleichtern oder evtl. sogar einen formalen Korrektheitsbeweis erlauben: Zusicherungen aus der Schleifenbedingung und Schleifeninvariante i = 1; erg = 1; while (i <= n) { // i <= n erg = erg * i; i = i + 1; // erg = (i-1)! // i > n Out.println("erg = "+ erg); Universität Paderborn Technische Informatik für Ingenieure (TIFI) WS 09/10 77

24 Zusicherungen bei Schleifen Wie bei Verzweigungen kann man auch bei Schleifen Zusicherungen angeben, die das Verständnis eines Programmstücks erleichtern oder evtl. sogar einen formalen Korrektheitsbeweis erlauben: Zusicherungen aus der Schleifenbedingung und Schleifeninvariante i = 1; erg = 1; while (i <= n) { // i <= n erg = erg * i; i = i + 1; // erg = (i-1)! // i > n Out.println("erg = "+ erg); Zu zeigen: 1) Die Schleifeninvariante gilt immer, dazu: Universität Paderborn Technische Informatik für Ingenieure (TIFI) WS 09/10 77

25 Zusicherungen bei Schleifen Wie bei Verzweigungen kann man auch bei Schleifen Zusicherungen angeben, die das Verständnis eines Programmstücks erleichtern oder evtl. sogar einen formalen Korrektheitsbeweis erlauben: Zusicherungen aus der Schleifenbedingung und Schleifeninvariante i = 1; erg = 1; while (i <= n) { // i <= n erg = erg * i; i = i + 1; // erg = (i-1)! // i > n Out.println("erg = "+ erg); Zu zeigen: 1) Die Schleifeninvariante gilt immer, dazu: 1a) Die Schleifeninvariante gilt vor dem ersten Durchlauf. Universität Paderborn Technische Informatik für Ingenieure (TIFI) WS 09/10 77

26 Zusicherungen bei Schleifen Wie bei Verzweigungen kann man auch bei Schleifen Zusicherungen angeben, die das Verständnis eines Programmstücks erleichtern oder evtl. sogar einen formalen Korrektheitsbeweis erlauben: Zusicherungen aus der Schleifenbedingung und Schleifeninvariante i = 1; erg = 1; while (i <= n) { // i <= n erg = erg * i; i = i + 1; // erg = (i-1)! // i > n Out.println("erg = "+ erg); Zu zeigen: 1) Die Schleifeninvariante gilt immer, dazu: 1a) Die Schleifeninvariante gilt vor dem ersten Durchlauf. 1b) Gilt die Schleifeninvariante vor einem beliebigen Durchlauf, so gilt sie auch nach diesem Durchlauf (Induktion über die Anzahl der Durchläufe). Universität Paderborn Technische Informatik für Ingenieure (TIFI) WS 09/10 77

27 Zusicherungen bei Schleifen Wie bei Verzweigungen kann man auch bei Schleifen Zusicherungen angeben, die das Verständnis eines Programmstücks erleichtern oder evtl. sogar einen formalen Korrektheitsbeweis erlauben: Zusicherungen aus der Schleifenbedingung und Schleifeninvariante i = 1; erg = 1; while (i <= n) { // i <= n erg = erg * i; i = i + 1; // erg = (i-1)! // i > n Out.println("erg = "+ erg); Zu zeigen: 1) Die Schleifeninvariante gilt immer, dazu: 1a) Die Schleifeninvariante gilt vor dem ersten Durchlauf. 1b) Gilt die Schleifeninvariante vor einem beliebigen Durchlauf, so gilt sie auch nach diesem Durchlauf (Induktion über die Anzahl der Durchläufe). 2) Aus der Schleifeninvariante, der Schleifenbedingung (und evtl. einigen Anweisungen aus dem Schleifenblock) folgt die Korrektheit des Programmstückes. Universität Paderborn Technische Informatik für Ingenieure (TIFI) WS 09/10 77

28 Zusicherungen bei Schleifen Wie bei Verzweigungen kann man auch bei Schleifen Zusicherungen angeben, die das Verständnis eines Programmstücks erleichtern oder evtl. sogar einen formalen Korrektheitsbeweis erlauben: Zusicherungen aus der Schleifenbedingung und Schleifeninvariante i = 1; erg = 1; while (i <= n) { // i <= n erg = erg * i; i = i + 1; // erg = (i-1)! // i > n Out.println("erg = "+ erg); Korrektheitsbeweis: 1a) Die Schleifeninvariante erg = (i 1)! gilt vor der ersten Ausführung der Schleife. Universität Paderborn Technische Informatik für Ingenieure (TIFI) WS 09/10 78

29 Zusicherungen bei Schleifen Wie bei Verzweigungen kann man auch bei Schleifen Zusicherungen angeben, die das Verständnis eines Programmstücks erleichtern oder evtl. sogar einen formalen Korrektheitsbeweis erlauben: Zusicherungen aus der Schleifenbedingung und Schleifeninvariante i = 1; erg = 1; while (i <= n) { // i <= n erg = erg * i; i = i + 1; // erg = (i-1)! // i > n Out.println("erg = "+ erg); Korrektheitsbeweis: 1a) Die Schleifeninvariante erg = (i 1)! gilt vor der ersten Ausführung der Schleife, denn da ist i = 1 und erg = 1, also erg = 1 = 0! = (i 1)!. Universität Paderborn Technische Informatik für Ingenieure (TIFI) WS 09/10 78

30 Zusicherungen bei Schleifen Wie bei Verzweigungen kann man auch bei Schleifen Zusicherungen angeben, die das Verständnis eines Programmstücks erleichtern oder evtl. sogar einen formalen Korrektheitsbeweis erlauben: Zusicherungen aus der Schleifenbedingung und Schleifeninvariante i = 1; erg = 1; while (i <= n) { // i <= n erg = erg * i; i = i + 1; // erg = (i-1)! Korrektheitsbeweis: 1a) Die Schleifeninvariante erg = (i 1)! gilt vor der ersten Ausführung der Schleife, denn da ist i = 1 und erg = 1, also erg = 1 = 0! = (i 1)!. 1b) Gilt die Schleifeninvariante vor einer Ausführung der Schleife, so gilt sie auch nach der Ausführung. // i > n Out.println("erg = "+ erg); Universität Paderborn Technische Informatik für Ingenieure (TIFI) WS 09/10 78

31 Zusicherungen bei Schleifen Wie bei Verzweigungen kann man auch bei Schleifen Zusicherungen angeben, die das Verständnis eines Programmstücks erleichtern oder evtl. sogar einen formalen Korrektheitsbeweis erlauben: Zusicherungen aus der Schleifenbedingung und Schleifeninvariante i = 1; erg = 1; while (i <= n) { // i <= n erg = erg * i; i = i + 1; // erg = (i-1)! // i > n Out.println("erg = "+ erg); Korrektheitsbeweis: 1a) Die Schleifeninvariante erg = (i 1)! gilt vor der ersten Ausführung der Schleife, denn da ist i = 1 und erg = 1, also erg = 1 = 0! = (i 1)!. 1b) Gilt die Schleifeninvariante vor einer Ausführung der Schleife, so gilt sie auch nach der Ausführung, denn aus erg = erg i = (i 1)! i und i = i + 1 folgt wieder erg = (i 1)!. Universität Paderborn Technische Informatik für Ingenieure (TIFI) WS 09/10 78

32 Zusicherungen bei Schleifen Wie bei Verzweigungen kann man auch bei Schleifen Zusicherungen angeben, die das Verständnis eines Programmstücks erleichtern oder evtl. sogar einen formalen Korrektheitsbeweis erlauben: Zusicherungen aus der Schleifenbedingung und Schleifeninvariante i = 1; erg = 1; while (i <= n) { // i <= n erg = erg * i; i = i + 1; // erg = (i-1)! // i > n Out.println("erg = "+ erg); Korrektheitsbeweis: 1a) Die Schleifeninvariante erg = (i 1)! gilt vor der ersten Ausführung der Schleife, denn da ist i = 1 und erg = 1, also erg = 1 = 0! = (i 1)!. 1b) Gilt die Schleifeninvariante vor der Ausführung der Schleife, so gilt sie auch nach der Ausführung, denn aus erg = erg i = (i 1)! i und i = i + 1 folgt wieder erg = (i 1)!. 2) Nach der Schleife gilt die Zusicherung durch die Schleifenbedingung i > n, und da i zuletzt um 1 erhöht wurde, gilt i = n + 1. Da die Schleifeninvariante erg = (i 1)! gilt, folgt erg = n!. Universität Paderborn Technische Informatik für Ingenieure (TIFI) WS 09/10 78

33 Zusicherungen bei Schleifen Wie bei Verzweigungen kann man auch bei Schleifen Zusicherungen angeben, die das Verständnis eines Programmstücks erleichtern oder evtl. sogar einen formalen Korrektheitsbeweis erlauben: Zusicherungen aus der Schleifenbedingung und Schleifeninvariante i = 1; erg = 1; while (i <= n) { // i <= n erg = erg * i; i = i + 1; // erg = (i-1)! // i > n Out.println("erg = "+ erg); Korrektheitsbeweis: 1a) Die Schleifeninvariante erg = (i 1)! gilt vor der ersten Ausführung der Schleife, denn da ist i = 1 und erg = 1, also erg = 1 = 0! = (i 1)!. 1b) Gilt die Schleifeninvariante vor der Ausführung der Schleife, so gilt sie auch nach der Ausführung, denn aus erg = erg i = (i 1)! i und i = i + 1 folgt wieder erg = (i 1)!. 2) Nach der Schleife gilt die Zusicherung durch die Schleifenbedingung i > n, und da i zuletzt um 1 erhöht wurde, gilt i = n + 1. Da die Schleifeninvariante erg = (i 1)! gilt, folgt erg = n!. Universität Paderborn Technische Informatik für Ingenieure (TIFI) WS 09/10 78

34 Abbruch von Schleifen: Die break-anweisung Die break-anweisung erlaubt den Abbruch einer Schleife im Schleifenrumpf, unabhängig von der Abbruchbedingung. Beispiel: Wir wollen eine Folge von Zahlen größer als 0 von der Tastatur einlesen und aufsummieren. Das Ende der Zahlenfolge ist durch die Zahl 0 gekennzeichnet. Die Summe soll aber niemals größer als 1000 werden: do { sum = sum + n; if (sum > 1000) { Out.println("Summe ist zu groß "); break; /* Abbruch der do-schleife */ while (n!= 0); Universität Paderborn Technische Informatik für Ingenieure (TIFI) WS 09/10 79

35 Die Zahleneingabe kann auch ohne break-anweisung programmiert werden. Die Sache wird dann aber unübersichtlicher, weil die Abbruchbedingung der Schleife komplexer wird und die Fehler erst nach der Schleife abgefragt werden. do sum = sum + n; while (n!= 0 && sum <= 1000); if (sum > 1000) Out.println("Summe ist zu groß"); break-anweisung sollten nur sparsam eingesetzt werden, da sie die Programmlogik oft kompliziert machen. Zusicherungen bei Schleifenabbruch für Schleifen mit break-anweisung sind schwieriger zu formulieren/verstehen. Universität Paderborn Technische Informatik für Ingenieure (TIFI) WS 09/10 80

36 Die break-anweisung in geschachtelten Schleifen outerloop: for (;;) { /* äußere Endlosschleife */ for (;;) { /* innere Endlosschleife */... if (...) break; /* terminiert innere Schleife */... if (...) break outerloop; /* terminiert äußere Schleife */ Schleifen können Namen erhalten (hier outerloop). Diese Schleifen können dann mit break <Schleifenname>; abgebrochen werden. Universität Paderborn Technische Informatik für Ingenieure (TIFI) WS 09/10 81

37 Terminierung von Schleifen Wir haben gesehen: Eine Schleife for (;;)... terminiert nie, wenn sie nicht durch eine break-anweisung abgebrochen wird. Solche Endlosschleifen machen Sinn in Anwendungen, die endlos laufen sollen, wie z.b. Alarmanlagen oder Betriebssystemen. i = 1; j = 1; do { i = i + j; j++; while (i < 2000); i = 1; j = 20; while (i+j < i) { i = i+2; j--; i = 1; j = -1; while (i+j < i) { i = i+2; j--; terminiert terminiert terminiert nicht Frage: Können wir einer Schleife immer leicht ansehen, ob sie terminiert? Antwort: Nein! I.A. ist es sehr schwer zu beweisen, dass eine Schleife terminiert, oftmals ist es ohne Angabe von Zusicherungen sogar unmöglich. Universität Paderborn Technische Informatik für Ingenieure (TIFI) WS 09/10 82

38 Terminierung von Schleifen: Die Collatz-Funktion (Collatz, 1937) public class Collatz { public static void main(string[] args) { int n; while (n!= 1) { if (n % 2 == 0) /* n gerade */ n = n / 2; else /* n ungerade */ n = 3*n + 1; /* end of while */ /* end of main */ Frage: Terminiert Programm Collatz? Universität Paderborn Technische Informatik für Ingenieure (TIFI) WS 09/10 83

39 Terminierung von Schleifen: Die Collatz-Funktion (Collatz, 1937) public class Collatz { public static void main(string[] args) { int n; while (n!= 1) { if (n % 2 == 0) /* n gerade */ n = n / 2; else /* n ungerade */ n = 3*n + 1; /* end of while */ /* end of main */ Frage: Terminiert Programm Collatz? Antwort: Es ist bis heute unklar, ob das Programm Collatz für jede natürliche Zahl n N terminiert. Bis 2008 wurden mit Computern alle Zahlen bis durchprobiert. Der Algorithmus terminierte immer. Beweise für die Terminierung eines Programmes können sehr schwer, oder sogar mit heutigen mathematischen Mitteln unmöglich sein. Universität Paderborn Technische Informatik für Ingenieure (TIFI) WS 09/10 83

40 Vergleich der Schleifenarten while (B) { S; /* end of while */ if (B) do { S; while (B); for ( ; B; ) { S; /* end of for */ Jede while-schleife kann in ein äquivalentes Programmstück mit do-schleife bzw. for-schleife umgewandelt werden. Das Programmstück mit der do-schleife enthält eine if-anweisung mit Verdoppelung des Programmtextes für die Bedingung B und sollte unbedingt vermieden werden. Die for-schleife enthält keine Initialisierung und keine Aktualisierung. Sie ist jedoch in diesem Kontext weniger verständlich. Universität Paderborn Technische Informatik für Ingenieure (TIFI) WS 09/10 84

41 Vergleich der Schleifenarten do { S; while (B); /* do */ S; while (B) { S; /* while */; S; for ( ; B; ) { S; /* for */ Jede do-schleife kann in ein äquivalentes Programmstück mit while-schleife bzw. for-schleife umgewandelt werden. Die Programmstücke mit der while-schleife und der for-schleife enthalten eine Verdoppelung des Programmtextes für S und sollten unbedingt vermieden werden. Die for-schleife enthält keine Initialisierung und keine Aktualisierung. Universität Paderborn Technische Informatik für Ingenieure (TIFI) WS 09/10 85

42 Vergleich der Schleifenarten for (I; B; A) { S; /* for */ I; while (B) { S; A; /* while */; I; if (B) do { S; A; while (B); Jede for-schleife kann in ein äquivalentes Programmstück mit while-schleife bzw. do-schleife umgewandelt werden. Die Programmstücke mit der while-schleife und der do-schleife trennen die Initialisierung, Bedingung und Aktualisierung der for-schleife und sollten vermieden werden. Das Programmstück mit der do-schleife enthält eine if-anweisung mit Verdoppelung des Programmtextes für die Bedingung B und sollte unbedingt vermieden werden. Universität Paderborn Technische Informatik für Ingenieure (TIFI) WS 09/10 86

43 Vergleich der Schleifenarten: Fazit while-schleife und for-schleife prüfen die Abbruchbedingung vor dem Schleifendurchlauf und sollten auch nur dann eingesetzt werden, wenn das gewünscht ist. Die do-schleife prüft die Abbruchbedingung nach dem Schleifendurchlauf und sollte ebenfalls nur dann eingesetzt werden, wenn das gewünscht ist. Die for-schleife erlaubt eine ortsnahe Beschreibung von Initialisierung, Abbruchbedingung und Aktualisierung und eignet sich besonders als Zählschleife, d.h. zum Aufzählen von Zahlen (for (i=0;...; i++). Alle Schleifen sollten nur dann eine break-anweisung enthalten, wenn sie einen Schleifenabbruch bei Fehler bewirken oder ohne die break-anweisung Programmstücke mehrfach aufgeschrieben werden müssten, ohne die break-anweisung Programmstücke mit if-anweisungen verschachtelt werden müssten. Universität Paderborn Technische Informatik für Ingenieure (TIFI) WS 09/10 87

Grundlagen der Programmierung Prof. H. Mössenböck. 4. Schleifen

Grundlagen der Programmierung Prof. H. Mössenböck. 4. Schleifen Grundlagen der Programmierung Prof. H. Mössenböck 4. Schleifen While-Schleife Führt eine Anweisungsfolge aus, solange eine bestimmte Bedingung gilt i 1 sum 0 i n sum sum + i i i + 1 i = 1; sum = 0; while

Mehr

3. Kontrollstrukturen Grundlagen der Programmierung 1 (Java)

3. Kontrollstrukturen Grundlagen der Programmierung 1 (Java) 3. Kontrollstrukturen Grundlagen der Programmierung 1 (Java) Fachhochschule Darmstadt Haardtring 100 D-64295 Darmstadt Prof. Dr. Bernhard Humm FH Darmstadt, 11. Oktober 2005 Agenda Agenda Verzweigungen

Mehr

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf Seite 1 von 25

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf  Seite 1 von 25 Kapitel 9 Schleifen Seite 1 von 25 Schleifen - Schleifen werden zur wiederholten Ausführung von Anweisungen verwendet. - Es werden drei Arten von Schleifen unterschieden: o for -Schleife o while -Schleife

Mehr

Thomas Gewering Benjamin Koch Dominik Lüke. (geschachtelte Schleifen)

Thomas Gewering Benjamin Koch Dominik Lüke. (geschachtelte Schleifen) Technische Informatik für Ingenieure WS 2010/2011 Musterlösung Übungsblatt Nr. 6 2. November 2010 Übungsgruppenleiter: Matthias Fischer Mouns Almarrani Rafał Dorociak Michael Feldmann Thomas Gewering Benjamin

Mehr

Aufgabe 1.90: Ein Geschäft gibt ihren Kunden unterschiedliche Rabatte. Schreiben ein Programm, das folgende Rabattklassen vorsieht:

Aufgabe 1.90: Ein Geschäft gibt ihren Kunden unterschiedliche Rabatte. Schreiben ein Programm, das folgende Rabattklassen vorsieht: Aufgabe 1.90: Ein Geschäft gibt ihren Kunden unterschiedliche Rabatte. Schreiben ein Programm, das folgende Rabattklassen vorsieht: o Klasse 0: kein Rabatt o Klasse 1: 4,5 % Rabatt o Klasse 2: 8,75% Rabatt

Mehr

Objektorientierte Programmierung OOP Programmieren mit Java

Objektorientierte Programmierung OOP Programmieren mit Java Übungen: 6 Schleifen Objektorientierte Programmierung OOP Programmieren mit Java 1. do-schleife 2. while-schleife 3. a) c) Verschiedene for-schleifen 6 Schleifen Übungen 4. for-schleife: halber Tannenbaum

Mehr

Kontrollstrukturen -- Schleifen und Wiederholungen

Kontrollstrukturen -- Schleifen und Wiederholungen Kontrollstrukturen -- Schleifen und Wiederholungen Informatik für Elektrotechnik und Informationstechnik Benedict Reuschling benedict.reuschling@h-da.de Hochschule Darmstadt Fachbereich Informatik WS 2013/14

Mehr

3. Anweisungen und Kontrollstrukturen

3. Anweisungen und Kontrollstrukturen 3. Kontrollstrukturen Anweisungen und Blöcke 3. Anweisungen und Kontrollstrukturen Mit Kontrollstrukturen können wir den Ablauf eines Programmes beeinflussen, z.b. ob oder in welcher Reihenfolge Anweisungen

Mehr

3. Grundanweisungen in Java

3. Grundanweisungen in Java 3. Grundanweisungen in Java Die Grundanweisungen entsprechen den Prinzipien der strukturierten Programmierung 1. Zuweisung 2. Verzweigungen 3. Wiederholungen 4. Anweisungsfolge (Sequenz) Die Anweisungen

Mehr

EINI LW/WiMa. Einführung in die Informatik für Naturwissenschaftler und Ingenieure Vorlesung 2 SWS WS 16/17

EINI LW/WiMa. Einführung in die Informatik für Naturwissenschaftler und Ingenieure Vorlesung 2 SWS WS 16/17 EINI LW/ Einführung in die Informatik für Naturwissenschaftler und Ingenieure Vorlesung 2 SWS WS 16/17 Dr. Lars Hildebrand Fakultät für Informatik Technische Universität Dortmund lars.hildebrand@tu-dortmund.de

Mehr

FACHHOCHSCHULE AUGSBURG Hochschule für Technik, Wirtschaft und Gestaltung

FACHHOCHSCHULE AUGSBURG Hochschule für Technik, Wirtschaft und Gestaltung C Sprachelemente für Übung 2 Typumwandlungen (type casts) Bei Ausdrücken, in denen Operanden mit unterschiedlichem Typ vorkommen, werden diese vom Compiler vor der Ausführung automatisch in einen gemeinsamen

Mehr

Beispiel: Schriftliche Addition

Beispiel: Schriftliche Addition Beispiel: Schriftliche Addition 1 1 5 8 9 2 6 1 4 5 1 1 0 2 0 3 7 Eingabe Ausgabe Zwischen werte Universität Paderborn Technische Informatik für Ingenieure (TIFI) WS 09/10 18 2. Grundlagen der Programmierung

Mehr

EINI LogWing/WiMa. Einführung in die Informatik für Naturwissenschaftler und Ingenieure. Vorlesung 2 SWS WS 17/18

EINI LogWing/WiMa. Einführung in die Informatik für Naturwissenschaftler und Ingenieure. Vorlesung 2 SWS WS 17/18 EINI LogWing/ Einführung in die Informatik für Naturwissenschaftler und Ingenieure Vorlesung 2 SWS WS 17/18 Dr. Lars Hildebrand Fakultät für Informatik Technische Universität Dortmund lars.hildebrand@tu-dortmund.de

Mehr

Programmiersprache 1 (C++) Prof. Dr. Stefan Enderle NTA Isny

Programmiersprache 1 (C++) Prof. Dr. Stefan Enderle NTA Isny Programmiersprache 1 (C++) Prof. Dr. Stefan Enderle NTA Isny 5. Kontrollstrukturen Allgemein Kontrollstrukturen dienen zur Steuerung des Programmablaufs. (Bemerkung: C und C++ besitzen die selben Kontrollstrukturen.)

Mehr

Tag 3 Repetitorium Informatik (Java)

Tag 3 Repetitorium Informatik (Java) Tag 3 Repetitorium Informatik (Java) Dozent: Marius Kamp Lehrstuhl für Informatik 2 (Programmiersysteme) Friedrich-Alexander-Universität Erlangen-Nürnberg Wintersemester 2017/2018 Übersicht Typkonvertierung

Mehr

Objektorientierte Programmierung

Objektorientierte Programmierung Objektorientierte Programmierung Eine Einführung mit anschaulichen Beispielen aus der Java-Welt apl. Prof. Dr. Achim Ebert Inhalt Kapitel 3: Kontrollstrukturen Einfache Anweisungen Anweisungsblöcke Steuerung

Mehr

1. Erste Schritte 2. Einfache Datentypen 3. Anweisungen und Kontrollstrukturen 4. Verifikation 5. Reihungen (Arrays)

1. Erste Schritte 2. Einfache Datentypen 3. Anweisungen und Kontrollstrukturen 4. Verifikation 5. Reihungen (Arrays) 1. Erste Schritte 2. Einfache Datentypen 3. Anweisungen und Kontrollstrukturen 4. Verifikation 5. Reihungen (Arrays) II.1.3. Anweisungen und Kontrollsttukturen - 1 - 3. Anweisungen und Kontrollstrukturen

Mehr

Grundlagen der Programmierung Teil1 Einheit III Okt. 2010

Grundlagen der Programmierung Teil1 Einheit III Okt. 2010 Grundlagen der Programmierung Teil1 Einheit III - 22. Okt. 2010 GDP DDr. Karl D. Fritscher basierend auf der Vorlesung Grundlagen der Programmierung von DI Dr. Bernhard Pfeifer Einschub Bevor wir mit den

Mehr

6. Iteration (Schleifenanweisungen)

6. Iteration (Schleifenanweisungen) 6. Iteration (Schleifenanweisungen) Java-Beispiel: TemperatureTable.java K. Bothe, Institut für Informatik, HU Berlin, GdP, WS 2015/16 Version: 9. Nov. 2015 2 Schwerpunkte While-Anweisung: "abweisende"

Mehr

2.5 Programmstrukturen Entscheidung / Alternative

2.5 Programmstrukturen Entscheidung / Alternative Entscheidung, ob der folgende Anweisungsblock ausgeführt wird oder ein alternativer Block Entscheidung ob die Bedingung wahr oder falsch (True / False) ist Syntax: 2.5 Programmstrukturen 2.5.1 Entscheidung

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java Vorlesung vom 6.11.07, Weitere Anweisungen Übersicht 1 Verbundanweisung 2 Bedingte Anweisung 3 Auswahlanweisung 4 for Schleife 5 while Schleife 6 do Schleife 7 break Anweisung 8 continue Anweisung 9 Leere

Mehr

Java 8. Elmar Fuchs Grundlagen Programmierung. 1. Ausgabe, Oktober 2014 JAV8

Java 8. Elmar Fuchs Grundlagen Programmierung. 1. Ausgabe, Oktober 2014 JAV8 Java 8 Elmar Fuchs Grundlagen Programmierung 1. Ausgabe, Oktober 2014 JAV8 5 Java 8 - Grundlagen Programmierung 5 Kontrollstrukturen In diesem Kapitel erfahren Sie wie Sie die Ausführung von von Bedingungen

Mehr

Vorlesung Programmieren

Vorlesung Programmieren Vorlesung Programmieren 3. Kontrollstrukturen 09.11.2016 Jun.-Prof. Dr.-Ing. Anne Koziolek Version 1.1 ARBEITSGRUPPE ARCHITECTURE-DRIVEN REQUIREMENTS ENGINEERING (ARE) INSTITUT FÜR PROGRAMMSTRUKTUREN UND

Mehr

6. Iteration (Schleifenanweisungen)

6. Iteration (Schleifenanweisungen) Schwerpunkte While-: "abweisende" Schleife 6. Iteration (Schleifenanweisungen) Java-Beispiel: TemperatureTable.java Do-while-: "nichtabweisende" Schleife For-: zählergesteuerte Schleife Klassifikation

Mehr

Programmieren I. Kontrollstrukturen Heusch 8 Ratz Institut für Angewandte Informatik

Programmieren I. Kontrollstrukturen Heusch 8 Ratz Institut für Angewandte Informatik Programmieren I Kontrollstrukturen Heusch 8 Ratz 4.5 KIT Die Forschungsuniversität in der Helmholtz-Gemeinschaft www.kit.edu Arten von Kontrollstrukturen Neben der Sequenz (Aneinanderreihung von Anweisungen)

Mehr

{P} S {Q} {P} S {Q} {P} S {Q} Inhalt. Hoare-Kalkül. Hoare-Kalkül. Hoare-Tripel. Hoare-Tripel. Hoare-Tripel

{P} S {Q} {P} S {Q} {P} S {Q} Inhalt. Hoare-Kalkül. Hoare-Kalkül. Hoare-Tripel. Hoare-Tripel. Hoare-Tripel Inhalt Hoare-Kalkül Formale Verifizierung Hoare-Kalkül while-sprache Terminierung Partielle / totale Korrektheit 4.0 Hoare-Kalkül entwickelt von C.A.R. (Tony) Hoare (britischer Informatiker), 1969 formales

Mehr

1. Erste Schritte 2. Einfache Datentypen 3. Anweisungen und Kontrollstrukturen 4. Verifikation 5. Reihungen (Arrays)

1. Erste Schritte 2. Einfache Datentypen 3. Anweisungen und Kontrollstrukturen 4. Verifikation 5. Reihungen (Arrays) 1. Erste Schritte 2. Einfache Datentypen 3. Anweisungen und Kontrollstrukturen 4. Verifikation 5. Reihungen (Arrays) II.1.3. Anweisungen und Kontrollstrukturen - 1 - Anweisung Anweisung Zuweisung Methodenaufruf

Mehr

Schleifen in C/C++/Java

Schleifen in C/C++/Java Schleifen in C/C++/Java Alle 3 Sprachen stellen mindestens die folgenden 3 Schleifenkonstruktionen zur Verfügung. In C gibt es auch keine weiteren, C++, Java und C# haben noch weitere nützliche Varianten.

Mehr

Einführung in die Programmierung Wintersemester 2011/12

Einführung in die Programmierung Wintersemester 2011/12 Einführung in die Programmierung Wintersemester 2011/12 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund : Kontrollstrukturen Inhalt Wiederholungen - while

Mehr

C++ - Einführung in die Programmiersprache Schleifen

C++ - Einführung in die Programmiersprache Schleifen C++ - Einführung in die Programmiersprache Schleifen Bedingung wiederhole ja Anweisung Anweisung Anweisung Leibniz Universität IT Services Anja Aue Schleifen Iterationsanweisungen. Wiederholung von Anweisungsblöcken.

Mehr

EINI LW/WiMa. Einführung in die Informatik für Naturwissenschaftler und Ingenieure Vorlesung 2 SWS WS 14/15

EINI LW/WiMa. Einführung in die Informatik für Naturwissenschaftler und Ingenieure Vorlesung 2 SWS WS 14/15 EINI LW/ Einführung in die Informatik für Naturwissenschaftler und Ingenieure Vorlesung 2 SWS WS 14/15 Dr. Lars Hildebrand Fakultät für Informatik Technische Universität Dortmund lars.hildebrand@tu-dortmund.de

Mehr

Programmieren I. Kontrollstrukturen Heusch 8 Ratz Institut für Angewandte Informatik

Programmieren I. Kontrollstrukturen Heusch 8 Ratz Institut für Angewandte Informatik Programmieren I Kontrollstrukturen Heusch 8 Ratz 4.5 KIT Die Forschungsuniversität in der Helmholtz-Gemeinschaft www.kit.edu Arten von Kontrollstrukturen Neben der Aneinanderreihung von Anweisungen (Sequenz)

Mehr

Kapitel 5: Abstrakte Algorithmen und Sprachkonzepte. Elementare Schritte

Kapitel 5: Abstrakte Algorithmen und Sprachkonzepte. Elementare Schritte Elementare Schritte Ein elementarer Berechnungsschritt eines Algorithmus ändert im Allgemeinen den Wert von Variablen Zuweisungsoperation von fundamentaler Bedeutung Zuweisungsoperator In Pascal := In

Mehr

2 Teil 2: Nassi-Schneiderman

2 Teil 2: Nassi-Schneiderman 2 Teil 2: Nassi-Schneiderman Wie kann man Nassi-Schneiderman in einer objektorientierten Sprache verwenden? Jedes Objekt besitzt Methoden, welche die Attribute des Objektes verändern. Das Verhalten der

Mehr

Schachtelung der 2. Variante (Bedingungs-Kaskade): if (B1) A1 else if (B2) A2 else if (B3) A3 else if (B4) A4 else A

Schachtelung der 2. Variante (Bedingungs-Kaskade): if (B1) A1 else if (B2) A2 else if (B3) A3 else if (B4) A4 else A 2.4.6. Kontrollstrukturen if-anweisung: Bedingte Ausführung (Verzweigung) 2 Varianten: if (Bedingung) Anweisung (Anweisung = einzelne Anweisung oder Block) Bedeutung: die Anweisung wird nur ausgeführt,

Mehr

Programmierkurs Java

Programmierkurs Java Programmierkurs Java Kontrollstrukturen Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/fischer Kontrollstrukturen Wichtig: bedingte Ausführung

Mehr

C- Kurs 04 Anweisungen

C- Kurs 04 Anweisungen C- Kurs 04 Anweisungen Dipl.- Inf. Jörn Hoffmann jhoffmann@informa@k.uni- leipzig.de Universität Leipzig Ins@tut für Informa@k Technische Informa@k Ausdrücke Institut für Informatik Anweisungen C-Programm

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java Vorlesung vom 25.4.07, Anweisungen Übersicht 1 Ausdrucksanweisung 2 Einfache Ausgabeanweisung 3 Einfache Eingabeanweisung, Vorbereitungen 4 Verbundanweisung 5 Bedingte Anweisung 6 Auswahlanweisung 7 for

Mehr

Tag 3 Repetitorium Informatik (Java)

Tag 3 Repetitorium Informatik (Java) Tag 3 Repetitorium Informatik (Java) Dozent: Marius Kamp Lehrstuhl für Informatik 2 (Programmiersysteme) Friedrich-Alexander-Universität Erlangen-Nürnberg Wintersemester 2016/2017 Willkommen zum Informatik-Repetitorium!

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 47 Einstieg in die Informatik mit Java Anweisungen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 47 1 Ausdrucksanweisung 2 Einfache Ausgabeanweisung 3 Einfache Eingabeanweisung,

Mehr

4. Ablaufsteuerung (Kontrollstrukturen)

4. Ablaufsteuerung (Kontrollstrukturen) 4. Ablaufsteuerung (Kontrollstrukturen) 4.1 Anweisungen 4.2 Selektion (bedingte Anweisung) 4.3 Iteration 4.4 Flussdiagramm (Programmablaufplan) 4. Ablaufsteuerung 4-1 4.1 Anweisungen Ein Programm besteht

Mehr

4. Ablaufsteuerung (Kontrollstrukturen) 4.1 Anweisungen 4.2 Selektion (bedingte Anweisung) 4.3 Iteration 4.4 Flussdiagramm (Programmablaufplan)

4. Ablaufsteuerung (Kontrollstrukturen) 4.1 Anweisungen 4.2 Selektion (bedingte Anweisung) 4.3 Iteration 4.4 Flussdiagramm (Programmablaufplan) 4. Ablaufsteuerung (Kontrollstrukturen) 4.1 Anweisungen 4.2 Selektion (bedingte Anweisung) 4.3 Iteration 4.4 Flussdiagramm (Programmablaufplan) 4. Ablaufsteuerung 4-1 4.1 Anweisungen Ein Programm besteht

Mehr

Die for -Schleife HEUTE. Schleifen. Arrays. Schleifen in JAVA. while, do reichen aus, um alle iterativen Algorithmen zu beschreiben

Die for -Schleife HEUTE. Schleifen. Arrays. Schleifen in JAVA. while, do reichen aus, um alle iterativen Algorithmen zu beschreiben 18.11.5 1 HEUTE 18.11.5 3 Schleifen Arrays while, do reichen aus, um alle iterativen Algorithmen zu beschreiben Nachteil: Steuermechanismus ist verteilt Übersicht nicht immer leicht dazu gibt es for (

Mehr

Vorlesung Programmieren

Vorlesung Programmieren Vorlesung Programmieren 3. Kontrollstrukturen 04.11.2015 Prof. Dr. Ralf H. Reussner Version 1.1 LEHRSTUHL FÜR SOFTWARE-DESIGN UND QUALITÄT (SDQ) INSTITUT FÜR PROGRAMMSTRUKTUREN UND DATENORGANISATION (IPD),

Mehr

Java Einführung ABLAUFSTEUERUNG Kapitel 3 und 4

Java Einführung ABLAUFSTEUERUNG Kapitel 3 und 4 Java Einführung ABLAUFSTEUERUNG Kapitel 3 und 4 Inhalt dieser Einheit Merkmale und Syntax der verschiedenen Kontrollstrukturen: if else switch while do while for break, continue EXKURS: Rekursion 2 Kontrollstrukturen

Mehr

Elementare Konzepte von

Elementare Konzepte von Elementare Konzepte von Programmiersprachen Teil 2: Anweisungen (Statements) Kapitel 6.3 bis 6.7 in Küchlin/Weber: Einführung in die Informatik Anweisungen (statements) in Java Berechnung (expression statement)

Mehr

Dr. Monika Meiler. Inhalt

Dr. Monika Meiler. Inhalt Inhalt 4 Einführung in die Programmiersprache Java (Teil II)... 4-2 4.4 Strukturierte Programmierung... 4-2 4.4.1 Strukturierung im Kleinen... 4-2 4.4.2 Addierer (do-schleife)... 4-3 4.4.3 Ein- Mal- Eins

Mehr

Klassen und Objekte. Klassen sind Vorlagen für Objekte. Objekte haben. Attribute. Konstruktoren. Methoden. Merkblatt

Klassen und Objekte. Klassen sind Vorlagen für Objekte. Objekte haben. Attribute. Konstruktoren. Methoden. Merkblatt Klassen und Objekte Klassen sind Vorlagen für Objekte. Objekte haben Attribute Konstruktoren Methoden Aus einer Klasse kann man beliebig viele Objekte herstellen. Attribute bestimmen die Eigenschaften

Mehr

Eine kleine Befehlssammlung für Java Teil1

Eine kleine Befehlssammlung für Java Teil1 Eine kleine Befehlssammlung für Java Teil1 Definition einer Klasse public class Klasse{ Hier wird der Name der Klasse definiert. In diesem Fall ist das Klasse. Der Name muss mit dem Namen der.class Datei

Mehr

Grundlagen der Programmierung Teil1 Einheit III Okt. 2009

Grundlagen der Programmierung Teil1 Einheit III Okt. 2009 Grundlagen der Programmierung Teil1 Einheit III - 23. Okt. 2009 GDP DDr. Karl D. Fritscher basierend auf der Vorlesung Grundlagen der Programmierung von DI Dr. Bernhard Pfeifer Ausdrücke & Anweisungen

Mehr

Praktikum zu Einführung in die Informatik für LogWiIngs und WiMas Wintersemester 2017/18. Vorbereitende Aufgaben

Praktikum zu Einführung in die Informatik für LogWiIngs und WiMas Wintersemester 2017/18. Vorbereitende Aufgaben Praktikum zu Einführung in die Informatik für LogWiIngs und WiMas Wintersemester 2017/18 Fakultät für Informatik Lehrstuhl 14 Lars Hildebrand Übungsblatt 5 Besprechung: 20. 24.11.2017 (KW 47) Vorbereitende

Mehr

Übung Grundlagen der Programmierung WS 2008/09. Übung 04: Methoden. Abgabetermin: Prosabeschreibung Java-Programm.

Übung Grundlagen der Programmierung WS 2008/09. Übung 04: Methoden. Abgabetermin: Prosabeschreibung Java-Programm. Übung 04: Methoden Abgabetermin: 11. 11. 2008 Name: Matrikelnummer: Gruppe: G1 (Prähofer) G2 (Wolfinger) G3 (Wolfinger) Aufgabe Punkte gelöst abzugeben schriftlich abzugeben elektronisch Aufgabe 4.1 12

Mehr

Grundzüge der Wirtschaftsinformatik WS 2002/03. Wiederholung Java. Programmierzyklus. Heiko Rossnagel Problem

Grundzüge der Wirtschaftsinformatik WS 2002/03. Wiederholung Java. Programmierzyklus. Heiko Rossnagel  Problem Grundzüge der Wirtschaftsinformatik WS 2002/03 Wiederholung Java Heiko Rossnagel www.m-lehrstuhl.de accelerate.com Grundzüge der Wirtschaftsinformatik WS 2002/03 1 Programmierzyklus Problem Formulierung

Mehr

Einführung in die Informatik Iterationen

Einführung in die Informatik Iterationen Einführung in die Informatik Iterationen Konstruktion, Anwendungen, Varianten Wolfram Burgard 1 Motivation Im vorangegangenen Kapitel haben wir mit der while-schleife eine Form von Wiederholungsanweisungen

Mehr

Technische Informatik für Ingenieure WS 2010/2011 Musterlösung Übungsblatt Nr. 3

Technische Informatik für Ingenieure WS 2010/2011 Musterlösung Übungsblatt Nr. 3 Technische Informatik für Ingenieure WS 2010/2011 Musterlösung Übungsblatt Nr. 3 25. Oktober 2010 Übungsgruppenleiter: Matthias Fischer Mouns Almarrani Rafał Dorociak Michael Feldmann Thomas Gewering Benjamin

Mehr

Einführung in die Programmierung II. 3. Kontrollstrukturen

Einführung in die Programmierung II. 3. Kontrollstrukturen Einführung in die Programmierung II 3. Kontrollstrukturen Thomas Huckle, Stefan Zimmer 2.5.2007-1- Anweisungen: was bisher geschah Bisher kennen wir zwei Formen von Anweisungen Ein Ausdruck mit Semikolon

Mehr

Programmiertechnik Kontrollstrukturen

Programmiertechnik Kontrollstrukturen Programmiertechnik Kontrollstrukturen Prof. Dr. Oliver Haase Oliver Haase Hochschule Konstanz 1 Was sind Kontrollstrukturen? Kontrollstrukturen erlauben es, ein Programm nicht nur Zeile für Zeile auszuführen,

Mehr

Schleifen dienen dazu, bestimmte Anweisungen immer wieder abzuarbeiten.

Schleifen dienen dazu, bestimmte Anweisungen immer wieder abzuarbeiten. Folge 6 WHILE-Schleife JAVA 6.1 Schleifen Schleifen dienen dazu, bestimmte Anweisungen immer wieder abzuarbeiten. Zu einer Schleife gehören die Schleifenbedingung und der Rumpf. Die Schleifenbedingung

Mehr

Praktische Informatik I WS 1999/2000

Praktische Informatik I WS 1999/2000 Universität Mannheim Lehrstuhl für Praktische Informatik IV Prof. Dr. W. Effelsberg Christoph Kuhmünch, Gerald Kühne Praktische Informatik I WS 999/2 Übungsblatt 2 Ausgabe: Mi, 26.. Abgabe: Di,.2., 8 Uhr

Mehr

Einfache Rechenstrukturen und Kontrollfluss II

Einfache Rechenstrukturen und Kontrollfluss II Einfache Rechenstrukturen und Kontrollfluss II Martin Wirsing in Zusammenarbeit mit Moritz Hammer und Axel Rauschmayer http://www.pst.informatik.uni-muenchen.de/lehre/ss06/infoii/ SS 06 Ziele Lernen imperative

Mehr

Einführung in die Informatik Iterations

Einführung in die Informatik Iterations Motivation Einführung in die Informatik Iterations Konstruktion, Anwendungen, Varianten Wolfram Burgard Im vorangegangenen Kapitel haben wir mit der while-schleife eine Form von Wiederholungsanweisungen

Mehr

C++ Teil Schleifen. Man kann bestimme Anweisungen in einem Programm mehrfach ausführen lassen. Dazu gibt es in C++ verschiedene Schleifen.

C++ Teil Schleifen. Man kann bestimme Anweisungen in einem Programm mehrfach ausführen lassen. Dazu gibt es in C++ verschiedene Schleifen. C++ Teil 3 3.3 Schleifen Man kann bestimme en in einem Programm mehrfach ausführen lassen. Dazu gibt es in C++ verschiedene Schleifen. for-schleife for-schleife while-schleife do-while-schleife for ( Ausdruck1;

Mehr

Grundlagen der Programmierung

Grundlagen der Programmierung Grundlagen der Programmierung 11. Vorlesung 14.06.2017 1 Schleifen 2 do...while do block while ( bedingung ); block: eine Anweisung oder Anweisungen in { block bed JA NEIN 3 while while ( bedingung ) block

Mehr

2. Algorithmenbegriff

2. Algorithmenbegriff 2. Algorithmenbegriff Keine Algorithmen: Anleitungen, Kochrezepte, Wegbeschreibungen,... Algorithmus: Berechnungsvorschrift, die angibt, wie durch Ausführung bestimmter Elementaroperationen aus Eingabegrößen

Mehr

Rekursion. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung

Rekursion. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung Annabelle Klarl Zentralübung zur Vorlesung Einführung in die Informatik: http://www.pst.ifi.lmu.de/lehre/wise-13-14/infoeinf WS13/14 Action required now 1. Smartphone: installiere die App "socrative student"

Mehr

C++ Teil 2. Sven Groß. 16. Apr IGPM, RWTH Aachen. Sven Groß (IGPM, RWTH Aachen) C++ Teil Apr / 22

C++ Teil 2. Sven Groß. 16. Apr IGPM, RWTH Aachen. Sven Groß (IGPM, RWTH Aachen) C++ Teil Apr / 22 C++ Teil 2 Sven Groß IGPM, RWTH Aachen 16. Apr 2015 Sven Groß (IGPM, RWTH Aachen) C++ Teil 2 16. Apr 2015 1 / 22 Themen der letzten Vorlesung Hallo Welt Elementare Datentypen Ein-/Ausgabe Operatoren Sven

Mehr

CoMa 04. Java II. Paul Boeck. 7. Mai Humboldt Universität zu Berlin Institut für Mathematik. Paul Boeck CoMa 04 7.

CoMa 04. Java II. Paul Boeck. 7. Mai Humboldt Universität zu Berlin Institut für Mathematik. Paul Boeck CoMa 04 7. CoMa 04 Java II Paul Boeck Humboldt Universität zu Berlin Institut für Mathematik 7. Mai 2013 Paul Boeck CoMa 04 7. Mai 2013 1 / 13 Verzweigungen Wenn-Dann Beziehungen if (BEDINGUNG) { else if (BEDINGUNG2)

Mehr

II. Grundlagen der Programmierung. Beispiel: Merge Sort. Beispiel: Merge Sort (Forts. ) Beispiel: Merge Sort (Forts. )

II. Grundlagen der Programmierung. Beispiel: Merge Sort. Beispiel: Merge Sort (Forts. ) Beispiel: Merge Sort (Forts. ) Technische Informatik für Ingenieure (TIfI) WS 2006/2007, Vorlesung 9 II. Grundlagen der Programmierung Ekkart Kindler Funktionen und Prozeduren Rekursion Datenstrukturen Merge S ( split, s, merge ) Beispiel:

Mehr

! 1. Erste Schritte! 2. Einfache Datentypen! 3. Anweisungen und Kontrollstrukturen! 4. Verifikation! 5. Reihungen (Arrays) II.1.4. Verifikation - 1 -

! 1. Erste Schritte! 2. Einfache Datentypen! 3. Anweisungen und Kontrollstrukturen! 4. Verifikation! 5. Reihungen (Arrays) II.1.4. Verifikation - 1 - ! 1. Erste Schritte! 2. Einfache Datentypen! 3. Anweisungen und Kontrollstrukturen! 4. Verifikation! 5. Reihungen (Arrays) II.1.4. Verifikation - 1 - 4. Verifikation! Spezifikation: Angabe, was ein Programm

Mehr

Martin Unold INFORMATIK. Geoinformatik und Vermessung

Martin Unold INFORMATIK. Geoinformatik und Vermessung Wiederholung So sieht ein leeres Java-Programm aus public class Programmname { public static void main (String[] args) { // Hier stehen die Anweisungen Wiederholung Anweisungen durch Methodenaufrufe Ausgabe

Mehr

FH D. Objektorientierte Programmierung in Java FH D FH D. Prof. Dr. Ing. André Stuhlsatz. Blöcke. Beispiel: Variablen in Blöcken

FH D. Objektorientierte Programmierung in Java FH D FH D. Prof. Dr. Ing. André Stuhlsatz. Blöcke. Beispiel: Variablen in Blöcken 4 Objektorientierte Programmierung in Java Prof. Dr. Ing. André Stuhlsatz Blöcke Blöcke erweitern einzelne Anweisungen, etwa bei Kontrollstrukturen später Beispiel: Einzelne Anweisung: anweisung; Erweiterung

Mehr

INE1 Wiederholungen while, do...while, for

INE1 Wiederholungen while, do...while, for INE1 Wiederholungen while, do...while, for Schleife mit Goto Schleife mit Anfangsprüfung Schleife mit Endprüfung Schleifen mit Zähler: for Mehr zum Thema Schleifen 1 Wiederholungen Oft wollen wir gleiche

Mehr

Javakurs für Anfänger

Javakurs für Anfänger Javakurs für Anfänger Einheit 05: Weitere Kontrollstrukturen Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme 1. Teil: Weitere Kontrollstrukturen Wiederholungsstrukturen (Schleifen) While-,do-,for-Schleifen

Mehr

Prof. Dr. Oliver Haase Karl Martin Kern Achim Bitzer. Programmiertechnik Kontrollstrukturen

Prof. Dr. Oliver Haase Karl Martin Kern Achim Bitzer. Programmiertechnik Kontrollstrukturen Prof. Dr. Oliver Haase Karl Martin Kern Achim Bitzer Programmiertechnik Kontrollstrukturen Was sind Kontrollstrukturen Kontrollstrukturen erlauben es, ein Programm nicht nur Zeile für Zeile auszuführen,

Mehr

Labor Software-Entwicklung 1

Labor Software-Entwicklung 1 Labor Software-Entwicklung 1 Übereinkunft zu Programmablaufplänen PAP - Grundlagen Wintersemester 2015/2016 Seite 1 von 9 Inhalt DIN 66 001: Sinnbilder für Programmablaufplan... 3 Grenzstelle... 3 Ablauflinie...

Mehr

In Java: Schleifen 1. Art: Vorabprüfung: while. Wiederholungen (Kapitel 8) Schleife mit Vorabprüfung. Schleifen 2. Art: Endprüfung: do while

In Java: Schleifen 1. Art: Vorabprüfung: while. Wiederholungen (Kapitel 8) Schleife mit Vorabprüfung. Schleifen 2. Art: Endprüfung: do while Wiederholungen (Kapitel 8) Schleifen 1. Art: Vorabprüfung: while Schleifenkopf while erfüllt erfüllt? Schleifenkörper Sie kennen die drei Arten von Wiederholungen / Schleifen: while, for, do... und können

Mehr

Praktische Informatik I - Algorithmen und Datenstrukturen Wintersemester 2006/ Algorithmen und ihre formalen Eigenschaften, Datenstrukturen

Praktische Informatik I - Algorithmen und Datenstrukturen Wintersemester 2006/ Algorithmen und ihre formalen Eigenschaften, Datenstrukturen 1 Grundlagen 1.1 Algorithmen und ihre formalen Eigenschaften, Datenstrukturen Ein Algorithmus ist ein mit formalen Mitteln beschreibbares, mechanisch nachvollziehbares Verfahren zur Lösung einer Klasse

Mehr

Das diesem Dokument zugrundeliegende Vorhaben wurde mit Mitteln des Bundesministeriums für Bildung und Forschung unter dem Förderkennzeichen

Das diesem Dokument zugrundeliegende Vorhaben wurde mit Mitteln des Bundesministeriums für Bildung und Forschung unter dem Förderkennzeichen Das diesem Dokument zugrundeliegende Vorhaben wurde mit Mitteln des Bundesministeriums für Bildung und Forschung unter dem Förderkennzeichen 16OH21005 gefördert. Die Verantwortung für den Inhalt dieser

Mehr

Grundlagen der Theoretischen Informatik

Grundlagen der Theoretischen Informatik FH Wedel Prof. Dr. Sebastian Iwanowski GTI33 Folie 1 Grundlagen der Theoretischen Informatik Sebastian Iwanowski FH Wedel Kap. 3: Verifikationstechniken Teil 3: FH Wedel Prof. Dr. Sebastian Iwanowski GTI33

Mehr

Anweisungen zur Ablaufsteuerung

Anweisungen zur Ablaufsteuerung Anweisungen zur Ablaufsteuerung if-else switch while do-while for Ausdrücke Ein Ausdruck ist eine Folge von Variablen, Operatoren und Methodenaufrufen, der zu einem einzelnen Wert ausgewertet wird. Operanden

Mehr

Arrays und Schleifen

Arrays und Schleifen Arrays und Schleifen Javakurs 2014, 2. Vorlesung Sebastian Schuck basierend auf der Vorlage von Theresa Enghardt, Mario Bodemann und Sebastian Dyroff wiki.freitagsrunde.org 3. März 2014 This work is licensed

Mehr

C# - Einführung in die Programmiersprache Bedingte Anweisungen und Schleifen

C# - Einführung in die Programmiersprache Bedingte Anweisungen und Schleifen C# - Einführung in die Programmiersprache Bedingte Anweisungen und Schleifen Gehe nach links oder rechts Gehe solange geradeaus... Leibniz Universität IT Services Anja Aue Programmabläufe grafisch abbilden

Mehr

Kapitel 5. Programmierkurs. Kontrollstrukturen. Arten von Kontrollstrukturen. Kontrollstrukturen Die if-anweisung Die switch-anweisung

Kapitel 5. Programmierkurs. Kontrollstrukturen. Arten von Kontrollstrukturen. Kontrollstrukturen Die if-anweisung Die switch-anweisung Kapitel 5 Programmierkurs Birgit Engels, Anna Schulze ZAIK Universität zu Köln Kontrollstrukturen Die if-anweisung Die switch-anweisung Die for-schleife Die while-schleife Die do-schleife WS 7/8 /55 Kontrollstrukturen

Mehr

Rekursion. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung

Rekursion. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung Rekursion Annabelle Klarl Zentralübung zur Vorlesung Einführung in die Informatik: http://www.pst.ifi.lmu.de/lehre/wise-12-13/infoeinf WS12/13 Aufgabe 1: Potenzfunktion Schreiben Sie eine Methode, die

Mehr

Algorithmen & Programmierung. Steuerstrukturen im Detail Selektion und Iteration

Algorithmen & Programmierung. Steuerstrukturen im Detail Selektion und Iteration Algorithmen & Programmierung Steuerstrukturen im Detail Selektion und Iteration Selektion Selektion Vollständige einfache Selektion Wir kennen schon eine Möglichkeit, Selektionen in C zu formulieren: if

Mehr

Schleifen in C/C++/Java

Schleifen in C/C++/Java Schleifen in C/C++/Java Alle 3 Sprachen stellen mindestens die folgenden 3 Schleifenkonstruktionen zur Verfügung. In C gibt es auch keine weiteren, C++, Java und C# haben noch weitere nützliche Varianten.

Mehr

ModProg 15-16, Vorl. 5

ModProg 15-16, Vorl. 5 ModProg 15-16, Vorl. 5 Richard Grzibovski Nov. 18, 2015 1 / 29 Übersicht Übersicht 1 Logische Operationen 2 Priorität 3 Verzweigungen 4 Schleifen 2 / 29 Logische Werte Hauptkonzept: Besitzt ein C-Ausdruck

Mehr

Einführung in die Informatik 1

Einführung in die Informatik 1 Einführung in die Informatik 1 Algorithmen und algorithmische Sprachkonzepte Sven Kosub AG Algorithmik/Theorie komplexer Systeme Universität Konstanz E 202 Sven.Kosub@uni-konstanz.de Sprechstunde: Freitag,

Mehr

Übersicht. Informatik 1 Teil 4: Programmwiederholungen (Schleifen), Entwurf, Mathematikfunktionen

Übersicht. Informatik 1 Teil 4: Programmwiederholungen (Schleifen), Entwurf, Mathematikfunktionen Übersicht 4.1 Inkrementieren und Dekrementieren 4.2 Die for-schleife (Zählschleife) 4.3 Die for-schleife (Beispiel) 4.4 Bemerkungen zur for-schleife 4.5 Die while-schleife 4.6 Die while-schleife - Beispiel

Mehr

Beispiel 1 zur Verifikation eines bedingten Anweisung. Hoare-Regel für die bedingte Anweisung. else

Beispiel 1 zur Verifikation eines bedingten Anweisung. Hoare-Regel für die bedingte Anweisung. else Hoare-Regel für die bedingte Anweisung I1 : I2 : {B P } S 1 {Q} { nicht B P } {Q} {P } if (B) then S 1 {Q} {B P } S 1 {Q} { nicht B P } S 2 {Q} {P } if (B) then S 1 else S 2 {Q} In der Regel für bedingte

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen Wintersemester 2013/14 1. Vorlesung Kapitel 1: Sortieren Prof. Dr. Alexander Wolff Lehrstuhl für Informatik I Das Problem Eingabe Gegeben: eine Folge A = a 1, a 2,..., a

Mehr

Softwareentwicklung Sequenz, Verzweigungen, Schleifen

Softwareentwicklung Sequenz, Verzweigungen, Schleifen Mag. iur. Dr. techn. Michael Sonntag Softwareentwicklung Sequenz, Verzweigungen, Schleifen E-Mail: sonntag@fim.uni-linz.ac.at http://www.fim.uni-linz.ac.at/staff/sonntag.htm Institut für Informationsverarbeitung

Mehr

1.8.5 Wiederholungen. Beispiele Unendliche Schleife: 1.8 Kontrollstrukturen 75. ( Bedingung ) AnweisungOderBlock. ja Anweisung. Bedingung erfüllt?

1.8.5 Wiederholungen. Beispiele Unendliche Schleife: 1.8 Kontrollstrukturen 75. ( Bedingung ) AnweisungOderBlock. ja Anweisung. Bedingung erfüllt? 1.8 Kontrollstrukturen 75 1.8.5 Wiederholungen Häufig muss die gleiche Teilaufgabe oft wiederholt werden. Denken Sie nur an die Summation von Tabellenspalten in der Buchführung oder an das Suchen einer

Mehr

Kontrollfluss. Kontrollanweisungen. if-anweisung. if-else Anweisung. else. Auswahlanweisungen, Iterationsanweisungen, Blöcke, Sprunganweisungen

Kontrollfluss. Kontrollanweisungen. if-anweisung. if-else Anweisung. else. Auswahlanweisungen, Iterationsanweisungen, Blöcke, Sprunganweisungen Kntrllfluss Kntrllanweisungen bisher linear (vn ben nach unten) Für interessante Prgramme braucht man Verzweigungen und Sprünge Auswahlanweisungen, Iteratinsanweisungen, Blöcke, Sprunganweisungen Berechnung

Mehr

System.out.println("TEXT");

System.out.println(TEXT); Inhaltsübersicht - Erstes Beispiel - Datentypen - Ausdrücke und Operatoren - Schleifen / Bedinungen - Struktogramme - Grundgerüst eines Programms in JAVA - Einlesen von Daten Erstes Beispiel public class

Mehr

Steueranweisungen. Eike Schallehn Grundlagen der Informatik für Ingenieure Wintersemester 08/09 2 32

Steueranweisungen. Eike Schallehn Grundlagen der Informatik für Ingenieure Wintersemester 08/09 2 32 Steueranweisungen Bisher Programme mit Funktionen als einfache Folge von Befehlen Ablauf von Programmen darüber hinaus steuerbar über Bedingte Ausführung: Ausführung von Programmteilen (Befehlen oder Programmblöcken)

Mehr

Programmieren I. Kontrollstrukturen. Heusch 8 Ratz 4.5. www.kit.edu. Institut für Angewandte Informatik

Programmieren I. Kontrollstrukturen. Heusch 8 Ratz 4.5. www.kit.edu. Institut für Angewandte Informatik Programmieren I Kontrollstrukturen Heusch 8 Ratz 4.5 KIT Universität des Landes Baden-Württemberg und nationales Großforschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu Arten von Kontrollstrukturen

Mehr