2.4 Schleifen. Schleifen unterscheiden sich hinsichtlich des Zeitpunktes der Prüfung der Abbruchbedingung:
|
|
- Rolf Ziegler
- vor 7 Jahren
- Abrufe
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 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
Mehr3. 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
MehrWintersemester 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
MehrThomas 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
MehrAufgabe 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
MehrObjektorientierte 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
MehrKontrollstrukturen -- 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
Mehr3. 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
Mehr3. 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
MehrEINI 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
MehrFACHHOCHSCHULE 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
MehrBeispiel: 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
MehrEINI 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
MehrProgrammiersprache 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.)
MehrTag 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
MehrObjektorientierte 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
Mehr1. 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
MehrGrundlagen 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
Mehr6. 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"
Mehr2.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
MehrEinstieg 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
MehrJava 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
MehrVorlesung 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
Mehr6. Iteration (Schleifenanweisungen)
Schwerpunkte While-: "abweisende" Schleife 6. Iteration (Schleifenanweisungen) Java-Beispiel: TemperatureTable.java Do-while-: "nichtabweisende" Schleife For-: zählergesteuerte Schleife Klassifikation
MehrProgrammieren 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
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
Mehr1. 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
MehrSchleifen 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.
MehrEinfü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
MehrC++ - 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.
MehrEINI 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
MehrProgrammieren 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)
MehrKapitel 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
Mehr2 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
MehrSchachtelung 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,
MehrProgrammierkurs 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
MehrC- 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
MehrEinstieg 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
MehrTag 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!
MehrEinstieg 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,
Mehr4. 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
Mehr4. 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
MehrDie 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 (
MehrVorlesung 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),
MehrJava 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
MehrElementare 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)
MehrDr. 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
MehrKlassen 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
MehrEine 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
MehrGrundlagen 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
MehrPraktikum 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 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
MehrGrundzü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
MehrEinfü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
MehrTechnische 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
MehrEinfü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
MehrProgrammiertechnik 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,
MehrSchleifen 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
MehrPraktische 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
MehrEinfache 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
MehrEinfü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
MehrC++ 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;
MehrGrundlagen 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
Mehr2. Algorithmenbegriff
2. Algorithmenbegriff Keine Algorithmen: Anleitungen, Kochrezepte, Wegbeschreibungen,... Algorithmus: Berechnungsvorschrift, die angibt, wie durch Ausführung bestimmter Elementaroperationen aus Eingabegrößen
MehrRekursion. 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"
MehrC++ 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
MehrCoMa 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)
MehrII. 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 - 4. Verifikation! Spezifikation: Angabe, was ein Programm
MehrMartin 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
MehrFH 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
MehrINE1 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
MehrJavakurs 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
MehrProf. 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,
MehrLabor 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...
MehrIn 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
MehrPraktische 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
MehrDas 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
MehrGrundlagen 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
MehrAnweisungen 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
MehrArrays 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
MehrC# - 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
MehrKapitel 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
MehrRekursion. 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
MehrAlgorithmen & 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
MehrSchleifen 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.
MehrModProg 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
MehrEinfü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 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
MehrBeispiel 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
MehrAlgorithmen 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
MehrSoftwareentwicklung 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
Mehr1.8 Kontrollstrukturen 73. default : ziffer = 0; if (ziffer > 0) { cout << "Ziffer = " << ziffer; else { cout << "keine römische Ziffer!
1.8 Kontrollstrukturen 73 default : ziffer = 0; if (ziffer > 0) { cout
Mehr1.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
MehrKontrollfluss. 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
MehrSystem.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
MehrSteueranweisungen. 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)
MehrProgrammieren 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