3. Grundanweisungen in Java

Save this PDF as:
 WORD  PNG  TXT  JPG

Größe: px
Ab Seite anzeigen:

Download "3. Grundanweisungen in Java"

Transkript

1 3. Grundanweisungen in Java Die Grundanweisungen entsprechen den Prinzipien der strukturierten Programmierung 1. Zuweisung 2. Verzweigungen 3. Wiederholungen 4. Anweisungsfolge (Sequenz) Die Anweisungen einer Folge werden der Reihe nach ausgeführt Anweisungen werden durch ; abgeschlossen Es gibt spezielle Anweisungen, wie z.b. Die new Anweisung erzeugt neue Objekte Die try Anweisung erleichtert die Fehlerbehandlung László Böszörményi ESOP Anweisungen - 1

2 Zuweisung Grundform: Variable = Ausdruck 1. Die linke Seite (die Adresse der Variable ) wird berechnet 2. Der Ausdruck auf der rechten Seite wird ausgewertet 3. Dieser Wert wird der im 1. berechneten Adresse zugewiesen (Damit geht der ursprüngliche Wert der linken Seite verloren) Typanpassung, Umwandlung der rechten Seite möglich int i = 100; // Initialisierung: auch eine Zuweisung, float f = 200.5f; // die vor der ersten Anweisung eines double d = 300.6; // Blocks (siehe später) ausgeführt wird d = f; // Implizite Anpassung, kein Verlust f = i; // Implizite Anpassung, kein Verlust i = (int) f; // Explizite Umwandlung, Verlust möglich f = (float) d; // Explizite Umwandlung, Verlust möglich (int) f = i; // Unerlaubt! László Böszörményi ESOP Anweisungen - 2

3 Zuweisung als Ausdruck Eine Zuweisung kann selber als Ausdruck (auf der rechten Seite) verwendet werden Bei mehreren Zuweisungen ohne Klammerung, werden sie von rechts bearbeitet int a, b, c, d = 100; // a, b, c noch unbestimmt! a = b = c = d; // a = (b = (c = d))), alle == 100 a = b = c + d; // a, b == 200, c, d == 100 a = 3 * (b = c + d) + 4; // a == 604, b == 200, c,d==100 László Böszörményi ESOP Anweisungen - 3

4 Form: Zuweisungen mit Selbstbezug Variable Operator "=" Ausdruck Semantik: Variable_X = Variable_X Operator (Ausdruck) int x = 100, y = 200, z = 300, w = 400; x += 10; // x = x + 10: x == 110 y -= 50; // y = y 50: y == 150 z *= 3; // z = z * 3: z == 900 w /= 4; // w = w / 4: w == 100 Achtung auf die Reihenfolge der Auswertung! x *= 5 + 2; x = x * (5 + 2) für x == 10 ergibt 70 x *= 5 + 2; x = x * 5 + 2; für x == 10 ergibt 52 László Böszörményi ESOP Anweisungen - 4

5 Kompakte Operatoren Erhöhen bzw. Erniedrigen: ++, -- Können als eigene Anweisung stehen x ++; x += 1; x = x + 1; x --; x -= 1; x = x - 1; Können als Teil eines Ausdrucks stehen Können vor- bzw. nachgestellt sein: Viel zu komplex! Erhöhung (Erniedrigung) vor bzw. nach der Verwendung Kompakt, kann aber sehr unübersichtlich werden! Verständlichkeit geht Kompaktheit vor! x = 100; y = 200; z = 300; x*= y * z x; // x == , y == 200, z == 301 // x = x * ( (y * z) + (x - 1) ); z++; László Böszörményi ESOP Anweisungen - 5

6 Block Allgemeine Form eines Blocks ( Anweisungsklammerung ): { Deklarationen Anweisungsfolge } Anweisungen (nicht als Ausdruck verwendet) können immer durch einen Block ersetzt werden Blöcke können beliebig geschachtelt werden Namen sind ab ihrer Deklaration bis Ende des Blocks der Deklaration gültig (siehe auch später) static void main(string [] args) { int x = 1, y = x; // x schon bekannt für y { int z = y + 1; // z == 2 x = z; // Seiteneffekt } // Ende des eingeschachtelten Blocks Out.println("x, y = " + x + ", " + y); } // main x, y = 2, 1 Gültigkeitsbereich von x und y Gültigkeitsbereich von z (x, y sind auch gültig) z ist hier unbekannt László Böszörményi ESOP Anweisungen - 6

7 Alternative (If-Anweisung) Allgemeine Form if (b) Anweisung 1 else Anweisung 2 Ausführung 1. Die Bedingung b (Boolescher Ausdruck) wird ausgewertet 2. Ist b wahr, Anweisung 1 (then-zweig) wird ausgeführt 3. Ist b falsch, und Es gibt den else-zweig: Anweisung 2 wird ausgeführt Es gibt keinen else-zweig: Die nächste Anweisung wird ausgeführt (if bleibt wirkungslos falls die Auswertung von b frei von Seiteneffekten ist) if (x < y) min = x; else min = y; // Berechnet das Minimum zweier Zahlen if (x < y) { min = x; } else { min = y; } //Anweisungen durch Block ersetzt László Böszörményi ESOP Anweisungen - 7

8 Einfache If-Anweisungen static void main(string [] args) { int x ; String s = ""; // s initialisiert mit dem leeren String Out.println("Teilbarkeit von x durch 2,3,4,5\nBitte x eingeben"); x = In.readInt(); if (x % 2 == 0) s += " 2"; if (x % 3 == 0) s += " 3"; if (x % 4 == 0) s += " 4"; if (x % 5 == 0) s += " 5"; // Einzelanweisung im then-zweig if (s.equals("")) s = " keine der gegebenen Zahlen"; Out.println(x + " ist teilbar durch" + s); } // main x = 60 : 60 ist teilbar durch x = 7 : 7 ist teilbar durch keine der gegebenen Zahlen László Böszörményi ESOP Anweisungen - 8

9 If-Anweisungen, Einzelanweisung als Block if (x % 2 == 0) { s += " 2"; } // Einzelanweisung als Block if (x % 3 == 0) { // Einzelanweisung als Block + s += " 3"; } // if (x % 3 == 0) // Strukturierte Formatierung Die Verwendung von Blöcken erleichtert die Übersicht Die Struktur ist leichter ersichtlich Weitere Anweisungen sind leicht einzufügen Spätere Erweiterungen sind auch leichter Anweisungen und Deklarationen können in die schon bestehenden Blöcke eingefügt werden die Struktur bleibt Es wird generell empfohlen Blöcke zu verwenden und die Strukturen mit Einrückung zu visualisieren In der Vorlesung aus Platzgründen nicht immer eingehalten László Böszörményi ESOP Anweisungen - 9

10 Häufiger Fehler durch vergessene Blöcke static void main(string [] args) { Out.print("x = "); double x = In.readDouble(); if (x <= 0) else Out.println(x + " ist negativ oder 0"); Out.println(x + " ist positiv"); double y = Math.sqrt(x); // Liest eine Zahl // Wenn nicht positiv: // Wenn positiv: // auch Quadratwurzel else- Zweig Out.println("Quadratwurzel von " + x + "= " + y); Nach } // main dem if Wir wollen die Quadratwurzel nur für positive Zahlen berechnen Obiges Programm versucht sie aber auch für negative Zahlen zu berechnen: es fehlt die Block-Klammerung László Böszörményi ESOP Anweisungen - 10

11 Geschachtelte if-anweisungen static void main(string [] args) { // Testet Größenordnung von x int x ; String s; Out.println("Bitte x eingeben"); x = In.readInt(); if (x >= 0) if (x < 10) s = "einstellig"; else if (x < 100) s = "zweistellig"; else if (x < 1000) s = "dreistellig"; else s = "mindestens vierstellig"; else s = "negativ"; Out.println(x + " ist " + s); x = 100 : 100 ist dreistellig } // main Darstellung der Struktur durch Einrückung verbesserbar: Direkt unterstützt durch viele Editoren László Böszörményi ESOP Anweisungen - 11

12 if (x >= 0) { // then-zweig von if (x >= 0) if (x < 10) { // then-zweig von if (x < 10) s = "einstellig"; } // Ende then-zweig von if (x < 10) else { // else-zweig von if (x < 10) if (x < 100) { // then-zweig von if (x < 100) s = "zweistellig"; } // Ende then-zweig von if (x < 100) else { // else-zweig von if (x < 100) if (x < 1000) { // then-zweig von if (x < 1000) s = "dreistellig"; } // Ende then-zweig von if (x < 1000) else { // else-zweig von if (x < 1000) s = "mindestens vierstellig"; } // Ende else-zweig von if (x < 1000) } // Ende else-zweig von if (x < 100) } // Ende else-zweig von if (x < 10) } // Ende then-zweig von if (x >= 0) else { // else-zweig von if (x >= 0) s = "negativ"; } // Ende else-zweig von if (x >= 0) László Böszörményi ESOP Anweisungen - 12

13 Empfindsamkeit von if auf die Reihenfolge static void main(string [] args) { // Testet Größenordnung von x int x ; String s; Out.println("Bitte x eingeben"); x = In.readInt(); if (x >= 0) if (x < 10) s = "einstellig"; else if (x < 1000) s = "dreistellig"; else if(x < 100) s = "zweistellig"; else s = "mindestens vierstellig"; else s = "negativ";! Out.println (x + " ist " + s); } // main Für x = 10 : 10 ist dreistellig ist natürlich falsch! László Böszörményi ESOP Anweisungen - 13

14 Disjunkte Bedingungen static void main(string [] args) { // Testet Größenordnung von x int x ; String s; Out.println("Bitte x eingeben"); x = In.readInt(); if (x >= 0) if (x >= 0 && x < 10) s = "einstellig"; Reihenelse if (x >= 100 && x < 1000) s = " dreistellig"; folge else if (x >= 10 && x < 100) s = "zweistellig"; egal else s = "mindestens vierstellig"; else s = "negativ"; Out.println(x + " ist " + s); } // main Für x = 10: 10 ist zweistellig Reihenfolge ist irrelevant László Böszörményi ESOP Anweisungen - 14

15 Wiederholung (Schleifen) Erhöht massiv die Mächtigkeit der Programmierung Anweisungsfolgen beliebig oft wiederholt Schleifen bestehen aus Schleifenkörper und Abbruchbedingung Es ist die Verantwortung des Programmierers, dass die Schleife terminiert Die Varianten unterscheiden sich in diesen Punkten 1. Zuerst Abbruchbedingung abfragen, dann Schleifenkörper ausführen (while) 2. Zuerst Schleifenkörper ausführen dann Abbruchbedingung abfragen (do-while) 3. Geschlossene Schleife Vorbereitung und Fortschaltung ist Teil der Schleifenkonstruktion (for) Bei den while-schleifen: keine eingebaute Fortschaltung Die for-schleife unterstützt Korrektheit etwas besser László Böszörményi ESOP Anweisungen - 15

16 While-Schleife Allgemeine Form while (Bedingung) Schleifenkörper Ausführung 1. Die Bedingung (logischer Ausdruck) wird ausgewertet 2. Ist sie wahr 1. Der Schleifenkörper (Anweisungsfolge) wird ausgeführt 2. Nach der Ausführung geht es wieder von 1. weiter 3. Ist die Bedingung falsch: Nächste Anweisung wird ausgeführt Ganzzahlige Division positiver Zahlen mit nur + und int dividend = In.readInt(), divisor = In.readInt(), result = 0; while (dividend >= divisor) { // Solange Dividend nicht kleiner als Divisor result++; // result = result + 1 dividend -= divisor; // dividend = dividend - divisor } // while László Böszörményi ESOP Anweisungen - 16

17 Bearbeitung einer Zahlenreihe static void main(string [] args) { // Arithmetisches Mittel positiver Zahlen int x, sum = 0, n = 0; float middle; Out.println("Geben Sie eine Reihe positiver Zahlen ein, die mit 0 endet"); x = In.readInt(); while (x > 0) { // Solange x größer 0 sum += x; // sum = sum + x n++; // n = n + 1 x = In.readInt(); // nächste Zahl von der Eingabe } // while if (n > 0) { // Zumindest eine Zahl 0 wurde eingegeben middle = (float) sum / n; /* middle = sum/ n; würde den Bruchteil verschlucken */ Out.println("Arithmetisches Mittel = " + middle); } else // Die erste Zahl war 0 Out.println("Leere Eingabe"); } // main Für : Arithmetisches Mittel = László Böszörményi ESOP Anweisungen - 17

18 Euklid-Algorithmus mit Eingabekontrolle static int ReadPosInt() { // Liest eine positive Zahl Out.print("Geben Sie bitte eine positive Zahl ein = "); int x = In.readInt(); while (x <= 0) { // Solange x nicht positiv ist Out.print("Geben Sie bitte eine positive Zahl ein = "); x = In.readInt(); // Die Eingabe wird wiederholt, sonst wäre das } // eine unendliche Schleife! return x; } // ReadPosInt; static void main(string [] args) { // Der Euklid Algorithmus funktioniert Out.println("Euklid Algorithmus"); // nur für positive Zahlen int a = ReadPosInt(), b = ReadPosInt(); // a und b sind garantiert positiv while (a!= b) if (a > b) a = a - b; else b = b - a; Out.println("Groesster gemeinsamer Teiler = " + a); } // main László Böszörményi ESOP Anweisungen - 18

19 Schleifeninvarianten Ergebnis (Q) mit Hilfe der Aussagenlogik Schleifeninvariante (I) gilt während der ganzen Ausfürung {I} while (Bedingung) Anweisung {I}; Abbruchbedingung (B): B I Q Partielle Korrektheit Wir zeigen, dass B I Q Totale Korrektheit Wir zeigen auch, dass der Algorithmus terminiert, also die Abbruchbedingung irgendwann erfüllt wird Wir können die Korrektheit einer Schleife rein statisch prüfen ohne sie durchzuführen László Böszörményi ESOP Anweisungen - 19

20 Multiplikation mit Zusicherung static void main(string [] args) { // Multiplikation mit nur + und - int x, y, result, step; // Idee: wir addieren xy-mal zu result x = ReadPosInt(); y = ReadPosInt(); // x und y sind > 0 result = 0; step = y; // step ist > 0 /* Q: result == x * y, I: result + (step * x) == x * y */ if (result + (step * x)!= x * y) {Generiere Fehler...} // Zusicherung while (step > 0) { // B: step = 0 result += x; // result = result + x step--; // step = step -1 if (result + (step * x)!= x * y) {Generiere Fehler...} // Zusicherung } // B I Q: Wenn step == 0, I ergibt: result == x * y } // main László Böszörményi ESOP Anweisungen - 20

21 Do-While-Schleife Allgemeine Form: do Schleifenkörper while (Bedingung) Ausführung 1. Der Schleifenkörper (Anweisung) wird ausgeführt 2. Die Bedingung (logischer Ausdruck) wird ausgewertet 3. Ist sie wahr: es geht wieder von 1. weiter 4. Ist sie falsch: Nächste Anweisung wird ausgeführt Beispiel: Eingabekontrolle wird einfacher int x; do { // Harrt aus, solange eine positive Zahl kommt Out.print("Geben Sie bitte eine positive Zahl ein = "); x = In.readInt(); } while (x <= 0); // do-while Äquivalenz von while und do-while while (B) A if (B) do A while B // A wird eventuell nie ausgeführt do A while B A; while (B) A // A wird einmal immer ausgeführt László Böszörményi ESOP Anweisungen - 21

22 Primzahltest mit Do-While-Schleife static void main(string [] args) { // Primzahltest int k, i; String s = "Keine Primzahl"; Out.println("Primzahltest, bitte positive Zahl eingeben"); k = ReadPosInt(); // Ist k Primzahl? if (k > 3) { i = 1; do // Anfang der do-schleife i++; // Erhöhe i, solange bis while ((k % i)!= 0 && i * i <= k); // i nicht k teilt oder i 2 > k if ((k % i) == 0) s = "Teilbar durch " + i; // Keine Primzahl else s = "Primzahl"; // Wenn i k nicht teilt: Primzahl } // if (k > 3) else if (k > 0) s = "Primzahl"; Out.println(s); Für Eingabe 19 : Primzahl } // main Für Eingabe 20 : Teilbar durch 2 Immer true László Böszörményi ESOP Anweisungen - 22

23 For-Schleife Allgemeine Form for (Vorbereitung; Bedingung; Fortschaltung) Schleifenkörper Die Vorbereitung enthält Deklarationen und Anweisungen Die Deklarationen sind bis Ende der Schleife gültig Die Fortschaltung enthält nur Anweisungen, ist nicht ersetzbar durch einen Block (ist eigentlich ein Ausdruck) Ausführung 1. Vorbereitung wird ausgeführt (Meistens Laufvariablen werden initialisiert) 2. Die Bedingung wird ausgewertet 1. Ist sie wahr 1. Schleifenkörper (Anweisung bzw. Block) wird ausgeführt 2. Fortschaltung wird ausgeführt 3. Es geht wieder von der Auswertung der Bedingung weiter 2. Ist sie falsch: Die nächste Anweisung wird ausgeführt László Böszörményi ESOP Anweisungen - 23

24 Eigenart der for-schleife Durch die Selbstverwaltung der Fortschaltung etwas erhöhte Korrektheit und Kompaktheit Laufvariablen sollten im Körper nicht verändert werden! Besonders geeignet für arrays (siehe später) for (int i = 1; i < 10; i++) { println("i = " + i); } // Zahlen 1 bis 9 println("i = " + i); // Fehler: i ist nicht gültig for (char c = 'a'; c <= 'k'; c++) println("c = " + c); // 'a' bis 'k' for (float i = 1.5f; i < 10; i++) println("i = " + i); // 1.5 bis 9.5 for (int i = 1; i < 10; i++) { println("i = " + i); i--; // Unendliche Schleife! } // for i Steht für Out.println László Böszörményi ESOP Anweisungen - 24

25 Auswahl (Switch-Anweisung) Allgemeine Form switch (ganzzahliger Ausdruck) { case Konstante 1 : Anweisung 1 break;... case Konstante n : Anweisung n break; default : Anweisung n+1 break; } // switch Die Konstanten sind disjunkt ( i j, Konstante Konstante i j ) Ausführung 1. Der ganzzahlige Ausdruck wird ausgewertet 2. Ist sein Wert == Konstante i, : Anweisung i wird ausgeführt 3. Durch break wird die switch-anweisung verlassen Ohne break geht es weiter auf Fall i+1 Designfehler! (aus C geerbt) 4. Gibt es keine solche Konstante und Es gibt einen default-zweig: Anweisung n+1 wird ausgeführt Es gibt kein default: Die nächste Anweisung wird ausgeführt László Böszörményi ESOP Anweisungen - 25

26 Switch mit und ohne break int x ; String s = ""; Out.println("Bitte x eingeben"); x = In.readInt(); switch (x % 2) { // Ergibt den Rest von x/2 case 0: s = "gerade"; break; // Rest == 0: gerade case 1: s = "ungerade"; break; // Rest == 1: ungerade } // switch Out.println(x + " ist " + s); Ausgabe für 1 bzw. 2: 1 ist ungerade bzw. 2 ist gerade Ohne break auch für 2: 2 ist ungerade natürlich falsch! László Böszörményi ESOP Anweisungen - 26

27 Switch für Fallunterscheidung static void main(string [] args) { String s = ""; Out.println("Tippen Sie 1 fuer Fall1, 2 fuer Fall fuer Fall7"); switch (In.readInt()) { // Ideal für Fallunterscheidungen, wie Menüs case 1: s = "Fall1"; break; case 2: s = "Fall2"; break; case 3: s = "Fall3"; break; case 7: s = "Fall7"; break; // Reihenfolge egal wenn break da ist case 4: s = "Fall4"; break; case 5: s = "Fall5"; break; case 6: s = "Fall6"; break; default:s = "Default"; } // switch Out.println("Aktion fuer " + s); } // main Tippen Sie 1 fuer Fall1,... 7 fuer Fall7 4 Aktion fuer 4 Tippen Sie 1 fuer Fall1,... 7 fuer Fall7 0 Aktion fuer Default László Böszörményi ESOP Anweisungen - 27

28 Viele gleiche Fälle switch umständlich switch (ch) { // Bestimmt die Art eines Zeichens Ziffer, Kleinbuchstabe etc. case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': s = "Ziffer"; break; case 'a': case 'b': case 'c': case 'd': case 'e': case 'f': case 'g': case 'h': case 'i': case 'j': case 'k': case 'l': case 'm': case 'n': case 'o': case 'p': case 'q': case 's': case 't': case 'u': case 'v': case 'w': case 'x': case 'y': case 'z': s = "Kleinbuchstabe"; break; default: s = "weder Ziffer noch Kleinbuchstabe"; } // switch Bei zu vielen gleich zu behandelnden Fällen ist switch umständlich if (ch >= 'a' && ch <= 'z')... wäre einfacher allerdings etwas langsamer László Böszörményi ESOP Anweisungen - 28

29 Äquivalenz von if und switch Ein switch kann immer durch if(s) ersetzt werden Ein if kann nicht immer durch switch ersetzt werden Die Fälle in switch sind nur durch Konstanten beschreibbar Achtung auf Seiteneffekte Folgende Lösungen sind nicht äquivalent: switch (In.readInt()) {//liest einmal // liest dreimal case 1: s = "Fall1"; break; if (In.readInt() == 1) s = "Fall1"; case 2: s = "Fall2"; break; else if (In.readInt() == 2) s = "Fall2"; case 3: s = "Fall3"; break; else if (In.readInt() == 3) s = "Fall3"; default: s = "Default"; break; else s = "Default"; } // switch Lösung: Operationen mit Seiteneffekt absondern (In.readInt ändert die Umgebung: liest jedes mal neu): int i = In.readInt(); switch (i) {...} int i = In.readInt(); if (i == 1) {...} else if (i == 2) {...}... László Böszörményi ESOP Anweisungen - 29

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

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

Programmieren I. Kapitel 5. Kontrollfluss

Programmieren I. Kapitel 5. Kontrollfluss Programmieren I Kapitel 5. Kontrollfluss Kapitel 5: Kontrollfluss Ziel: Komplexere Berechnungen im Methodenrumpf Ausdrücke und Anweisungen Fallunterscheidungen (if, switch) Wiederholte Ausführung (for,

Mehr

Institut für Programmierung und Reaktive Systeme. Java 2. Markus Reschke

Institut für Programmierung und Reaktive Systeme. Java 2. Markus Reschke Java 2 Markus Reschke 07.10.2014 Datentypen Was wird gespeichert? Wie wird es gespeichert? Was kann man mit Werten eines Datentyps machen (Operationen, Methoden)? Welche Werte gehören zum Datentyp? Wie

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

Intensivübung zu Algorithmen und Datenstrukturen

Intensivübung zu Algorithmen und Datenstrukturen Intensivübung zu Algorithmen und Datenstrukturen Silvia Schreier Informatik 2 Programmiersysteme Martensstraße 3 91058 Erlangen Übersicht Programmierung Fallunterscheidung Flussdiagramm Bedingungen Boolesche

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

Grundlagen der Programmierung Prof. H. Mössenböck. 6. Methoden

Grundlagen der Programmierung Prof. H. Mössenböck. 6. Methoden Grundlagen der Programmierung Prof. H. Mössenböck 6. Methoden Parameterlose Methoden Beispiel: Ausgabe einer Überschrift class Sample { static void printheader() { // Methodenkopf Out.println("Artikelliste");

Mehr

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

2.4 Schleifen. Schleifen unterscheiden sich hinsichtlich des Zeitpunktes der Prüfung der Abbruchbedingung: 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

Mehr

Vorsichtige Programmierer verwenden Inkrement- Operatoren nicht in komplizierteren Ausdrücken

Vorsichtige Programmierer verwenden Inkrement- Operatoren nicht in komplizierteren Ausdrücken Vorsichtige Programmierer verwenden Inkrement- Operatoren nicht in komplizierteren Ausdrücken Aufgabe 1.60 a) Welchen Wert erhält die boolesche Variable z in folgendem Beispiel? int i = 2, j = 5; boolean

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

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

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

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

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

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

float: Fließkommazahl nach IEEE 754 Standard mit 32 bit

float: Fließkommazahl nach IEEE 754 Standard mit 32 bit Primitive Datentypen Fließkommazahlen float: Fließkommazahl nach IEEE 754 Standard mit 32 bit Vorzeichen Exponent 8 bit Mantisse 23 bit double: Fließkommazahl nach IEEE 754 Standard mit 64 bit Vorzeichen

Mehr

Informatik I: Einführung in die Programmierung

Informatik I: Einführung in die Programmierung Informatik I: Einführung in die Programmierung 5., bedingte Ausführung und Albert-Ludwigs-Universität Freiburg Bernhard Nebel 27. Oktober 2017 1 und der Typ bool Typ bool Typ bool Vergleichsoperationen

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

5. Elementare Befehle und Struktogramme

5. Elementare Befehle und Struktogramme 5. Elementare Befehle und Struktogramme Programmablauf Beschreibung des Programmablaufs mittel grafischer Symbole Beispiel : Flussdiagramme ja nein Besser : Struktogramme Dr. Norbert Spangler / Grundlagen

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

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. 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

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

JavaScript. Dies ist normales HTML. Hallo Welt! Dies ist JavaScript. Wieder normales HTML.

JavaScript. Dies ist normales HTML. Hallo Welt! Dies ist JavaScript. Wieder normales HTML. JavaScript JavaScript wird direkt in HTML-Dokumente eingebunden. Gib folgende Zeilen mit einem Texteditor (Notepad) ein: (Falls der Editor nicht gefunden wird, öffne im Browser eine Datei mit der Endung

Mehr

Arbeitsblätter für Algorithmierung und Strukturierung

Arbeitsblätter für Algorithmierung und Strukturierung Prof. Dr.- Ing. Ch. Wahmkow Fachbereich Maschinenbau Fachhochschule Stralsund Arbeitsblätter für Algorithmierung und Strukturierung Inhalt : Struktogramme, Beispiele und Erläuterungen - Sequenz - vollständige

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 I Vorlesung Imperatives Programmieren

Java I Vorlesung Imperatives Programmieren Java I Vorlesung 2 Imperatives Programmieren 3.5.2004 Variablen -- Datentypen -- Werte Operatoren und Ausdrücke Kontrollstrukturen: if Imperatives Programmieren Im Kern ist Java eine imperative Programmiersprache.

Mehr

Arbeitsblätter für Algorithmierung und Strukturierung C #

Arbeitsblätter für Algorithmierung und Strukturierung C # Prof. Dr.- Ing. Ch. Wahmkow Fachbereich Maschinenbau Fachhochschule Stralsund Arbeitsblätter für Algorithmierung und Strukturierung C # Inhalt : Struktogramme, Beispiele und Erläuterungen - Sequenz - vollständige

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

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

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

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

JAVA BASICS. 2. Primitive Datentypen. 1. Warum Java? a) Boolean (logische Werte wahr & falsch)

JAVA BASICS. 2. Primitive Datentypen. 1. Warum Java? a) Boolean (logische Werte wahr & falsch) JAVA BASICS 2. Primitive Datentypen 1. Warum Java? weit verbreitet einfach und (relativ) sicher keine Pointer (?) keine gotos kein Präprozessor keine globalen Variablen garbage collection objekt-orientiert

Mehr

Javakurs FSS Lehrstuhl Stuckenschmidt. Tag 1 - Variablen und Kontrollstrukturen

Javakurs FSS Lehrstuhl Stuckenschmidt. Tag 1 - Variablen und Kontrollstrukturen Javakurs FSS 2012 Lehrstuhl Stuckenschmidt Tag 1 - Variablen und Kontrollstrukturen main Methode Startpunkt jeder Java Anwendung String[] args ist ein Array aus Parametern, die beim Aufruf über die Kommandozeile

Mehr

Arbeitsblätter für die Lehrveranstaltung OOP JAVA 1

Arbeitsblätter für die Lehrveranstaltung OOP JAVA 1 Fachhochschule Stralsund Fachbereich Maschinenbau Lehrgebiet Informatik Prof. Dr.-Ing. Ch.Wahmkow Arbeitsblätter für die Lehrveranstaltung OOP I. Aufbau eines Java-Programmes JAVA 1 Escape-Sequenzen zur

Mehr

Javakurs für Anfänger

Javakurs für Anfänger Javakurs für Anfänger Einheit 04: Einführung in Kontrollstrukturen Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Heutige Agenda 1. Teil: Einführung in Kontrollstrukturen 3 Grundstrukturen von

Mehr

4.2 Programmiersprache C

4.2 Programmiersprache C 4.2.1. Elementare Datentypen (signed) int, unsigned int, (signed) short (int), unsigned short (int), (signed) long (int), unsigned long (int) Elementare Datentypen für ganze Zahlen mit oder ohne Vorzeichen.

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

2 Eine einfache Programmiersprache

2 Eine einfache Programmiersprache 2 Eine einfache Programmiersprache Eine Programmiersprache soll Datenstrukturen anbieten Operationen auf Daten erlauben Kontrollstrukturen zur Ablaufsteuerung bereitstellen Als Beispiel betrachten wir

Mehr

Sprachkonstrukte Verzweigungen und Array-Strukturen

Sprachkonstrukte Verzweigungen und Array-Strukturen Sprachkonstrukte Verzweigungen und Array-Strukturen Dr. Beatrice Amrhein Überblick Verzweigungen o if/else o switch/case Array-Strukturen o Vektoren und Matrizen 2 Verzweigungen 3 Verzweigungen: if/else

Mehr

JAVA BASICS. 2. Primitive Datentypen. 1. Warum Java? a) Boolean (logische Werte wahr & falsch)

JAVA BASICS. 2. Primitive Datentypen. 1. Warum Java? a) Boolean (logische Werte wahr & falsch) JAVA BASICS 2. Primitive Datentypen 1. Warum Java? zunehmend weit verbreitet einfach und (relativ) sicher keine Adressrechnung, aber Pointer keine gotos kein Präprozessor keine globalen Variablen garbage

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

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

4.4 Imperative Algorithmen Prozeduren

4.4 Imperative Algorithmen Prozeduren 4.4.2 Prozeduren Der Wert eines Ausdrucks u in Zustand z Z lässt sich damit auch leicht definieren (jetzt W Z statt W σ ) Dazu erweitern wir die rekursive Definition von Folie 57 (Wert eines Ausdrucks):

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

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

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

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

Operatoren (1) Operatoren (2)

Operatoren (1) Operatoren (2) Operatoren (1) Binäre Operatoren + - * / % < = > & ^ > && Addition Subtraktion Multiplikation Division Divisionsrest Vergl. auf kleiner Vergl. auf kleiner oder gleich Vergl. auf gleich Vergl.

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

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

Kontrollstrukturen Blöcke / Schleifen / Bedingungen

Kontrollstrukturen Blöcke / Schleifen / Bedingungen Kontrollstrukturen Blöcke / Schleifen / Bedingungen 1 Einfache Anweisungen und Blöcke einfache Anweisung abgeschlossen mit Semikolon ; typische Fälle: o Deklaration, Zuweisung, Funktionsaufruf Sonderfall

Mehr

Technische Universität Braunschweig Institut für Programmierung und Reaktive Systeme

Technische Universität Braunschweig Institut für Programmierung und Reaktive Systeme Technische Universität Braunschweig Institut für Programmierung und Reaktive Systeme Programmieren I Dr. Werner Struckmann 8. September 2014 Name: Vorname: Matrikelnummer: Kennnummer: Anrede: Frau Herr

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

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java Vorlesung vom 18.4.07, Grundlagen Übersicht 1 Kommentare 2 Bezeichner für Klassen, Methoden, Variablen 3 White Space Zeichen 4 Wortsymbole 5 Interpunktionszeichen 6 Operatoren 7 import Anweisungen 8 Form

Mehr

JAVA BASICS. 2. Primitive Datentypen. 1. Warum Java? a) Boolean (logische Werte wahr & falsch)

JAVA BASICS. 2. Primitive Datentypen. 1. Warum Java? a) Boolean (logische Werte wahr & falsch) JAVA BASICS 2. Primitive Datentypen 1. Warum Java? zunehmend weit verbreitet einfach und (relativ) sicher keine Adressrechnung, aber Pointer keine gotos kein Präprozessor keine globalen Variablen garbage

Mehr

RO-Tutorien 3 / 6 / 12

RO-Tutorien 3 / 6 / 12 RO-Tutorien 3 / 6 / 12 Tutorien zur Vorlesung Rechnerorganisation Christian A. Mandery WOCHE 2 AM 06./07.05.2013 KIT Universität des Landes Baden-Württemberg und nationales Forschungszentrum in der Helmholtz-Gemeinschaft

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

Funktionales C++ zum Ersten

Funktionales C++ zum Ersten Funktionales C++ zum Ersten WiMa-Praktikum 1, Teil C++, Tag 1 Christoph Ott, Büro: Helmholtzstr.18, E22 Tel.: 50-23575, Mail: christoph.ott@uni-ulm.de Institut für Angewandte Informationsverarbeitung 26.08.08

Mehr

1 Aufgaben 1.1 Objektorientiert: ("extended-hamster") Sammel-Hamster

1 Aufgaben 1.1 Objektorientiert: (extended-hamster) Sammel-Hamster 1 Aufgaben 1.1 Objektorientiert: ("extended-hamster") Sammel-Hamster Aufgabe: Bearbeitungszeit: ca. 1/4 Std) Schreiben Sie ein "objektorientiertes" Programm ("CuB_05_1") für das Sammeln der Körner. Aufgabenbeschreibung:

Mehr

PROGRAMMIERUNG IN JAVA

PROGRAMMIERUNG IN JAVA PROGRAMMIERUNG IN JAVA ZUWEISUNGEN (1) Deklaration nennt man die Ankündigung eines Platzhalters (Variablen) und Initialisierung die erste Wertvergabe bzw. die konkrete Erstellung des Platzhalters. In einem

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

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

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

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

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

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

Grundlagen der Programmierung Prof. H. Mössenböck. 2. Einfache Programme

Grundlagen der Programmierung Prof. H. Mössenböck. 2. Einfache Programme Grundlagen der Programmierung Prof. H. Mössenböck 2. Einfache Programme Grundsymbole Namen bezeichnen Variablen, Typen,... in einem Programm - bestehen aus Buchstaben, Ziffern und "_" - beginnen mit Buchstaben

Mehr

Präzedenz von Operatoren

Präzedenz von Operatoren Präzedenz von Operatoren SWE-30 Die Präzedenz von Operatoren bestimmt die Struktur von Ausdrücken. Ein Operator höherer Präzedenz bindet die Operanden stärker als ein Operator geringerer Präzedenz. Mit

Mehr

Modul Entscheidungsunterstützung in der Logistik. Einführung in die Programmierung mit C++ Übung 2

Modul Entscheidungsunterstützung in der Logistik. Einführung in die Programmierung mit C++ Übung 2 Fakultät Verkehrswissenschaften Friedrich List, Professur für Verkehrsbetriebslehre und Logistik Modul Entscheidungsunterstützung in der Logistik Einführung in die Programmierung mit C++ Übung 2 SS 2016

Mehr

Annehmende Schleife do while

Annehmende Schleife do while Annehmende Schleife do while Schleife mit nachfolgender Bedingungsprüfung: annehmende Schleife B S Mit B wird eine Bedingung (logischer Ausdruck) bezeichnet, S ist ein Strukturblock. Zuerst wird S ausgeführt,

Mehr

Primitive Datentypen, Eingaben, Kontrollstrukturen und Methodendeklaration

Primitive Datentypen, Eingaben, Kontrollstrukturen und Methodendeklaration Primitive Datentypen, Eingaben, Kontrollstrukturen und Methodendeklaration CoMa-Übung III TU Berlin 30.10.2013 Primitive Datentypen, Eingaben, Kontrollstrukturen und Methodendeklaration 30.10.2013 1 /

Mehr

Programmiervorkurs Einführung in Java Tag 1

Programmiervorkurs Einführung in Java Tag 1 Programmiervorkurs Einführung in Java Tag 1 Sebastian Glutsch SS 2018 namen Inhaltsübersicht Vorkurs Tag 1:,, en,, Einführung Tag 2: Boolesche Ausdrücke,, If-Abfragen, Switch-Case Tag 3: Arrays, (Do-)While-Schleife,

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

Operatoren für elementare Datentypen Bedingte Anweisungen Schleifen. Operatoren für elementare Datentypen Bedingte Anweisungen Schleifen

Operatoren für elementare Datentypen Bedingte Anweisungen Schleifen. Operatoren für elementare Datentypen Bedingte Anweisungen Schleifen Programmieren I Martin Schultheiß Hochschule Darmstadt Wintersemester 2011/2012 1 / 25 Operatoren für elementare Datentypen Bedingte Schleifen 2 / 25 Zuweisungsoperator Die Zuweisung von Werten an Variablen

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

Java - Schleifen. Bedingung. wiederhole. Anweisung Anweisung Anweisung. Leibniz Universität IT Services Anja Aue

Java - Schleifen. Bedingung. wiederhole. Anweisung Anweisung Anweisung. Leibniz Universität IT Services Anja Aue Java - Schleifen Bedingung wiederhole ja Anweisung Anweisung Anweisung Leibniz Universität IT Services Anja Aue Anweisung int zahl; zahl = 2; zahl = zahl * 10; int zahl; ; Jede Anweisung endet mit einem

Mehr

Algorithmen zur Datenanalyse in C++

Algorithmen zur Datenanalyse in C++ Algorithmen zur Datenanalyse in C++ Hartmut Stadie 16.04.2012 Algorithmen zur Datenanalyse in C++ Hartmut Stadie 1/ 39 Einführung Datentypen Operatoren Anweisungssyntax Algorithmen zur Datenanalyse in

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

2 Eine einfache Programmiersprache

2 Eine einfache Programmiersprache 2 Eine einfache Programmiersprache Eine Programmiersprache soll Datenstrukturen anbieten Operationen auf Daten erlauben Kontrollstrukturen zur Ablaufsteuerung bereitstellen Als Beispiel betrachten wir

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

Programmierkurs C++ Lösungen zum Übungsblatt 3. Nils Eissfeldt und Jürgen Gräfe. 2. November Aufgabe 5

Programmierkurs C++ Lösungen zum Übungsblatt 3. Nils Eissfeldt und Jürgen Gräfe. 2. November Aufgabe 5 Zentrum für Angewandte Informatik Köln Arbeitsgruppe Faigle / Schrader Universität zu Köln Lösungen zum Übungsblatt 3 Programmierkurs C++ Nils Eissfeldt und Jürgen Gräfe. November 001 Aufgabe 5 Innerhalb

Mehr

1 Bedingungen und der Typ bool. Informatik I: Einführung in die Programmierung 5. Bedingungen, bedingte Ausführung und Schleifen. Vergleichsoperatoren

1 Bedingungen und der Typ bool. Informatik I: Einführung in die Programmierung 5. Bedingungen, bedingte Ausführung und Schleifen. Vergleichsoperatoren 1 und der Informatik I: Einführung in die Programmierung 5., bedingte Ausführung und Albert-Ludwigs-Universität Freiburg Bernhard Nebel 27. Oktober 2015 27. Oktober 2015 B. Nebel Info I 3 / 21 Der Vergleichsoperatoren

Mehr

Tutoraufgabe 1 (Zweierkomplement): Lösung: Programmierung WS16/17 Lösung - Übung 2

Tutoraufgabe 1 (Zweierkomplement): Lösung: Programmierung WS16/17 Lösung - Übung 2 Prof. aa Dr. J. Giesl Programmierung WS16/17 F. Frohn, J. Hensel, D. Korzeniewski Tutoraufgabe 1 (Zweierkomplement): a) Sei x eine ganze Zahl. Wie unterscheiden sich die Zweierkomplement-Darstellungen

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

Programmierkurs Java

Programmierkurs Java Programmierkurs Java Dr. Dietrich Boles Aufgaben zu UE16-Rekursion (Stand 09.12.2011) Aufgabe 1: Implementieren Sie in Java ein Programm, das solange einzelne Zeichen vom Terminal einliest, bis ein #-Zeichen

Mehr

Algorithmen & Programmierung. Ausdrücke & Operatoren (1)

Algorithmen & Programmierung. Ausdrücke & Operatoren (1) Algorithmen & Programmierung Ausdrücke & Operatoren (1) Ausdrücke Was ist ein Ausdruck? Literal Variable Funktionsaufruf Ausdruck, der durch Anwendung eines einstelligen (unären) Operators auf einen Ausdruck

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

Dr. Monika Meiler. Inhalt

Dr. Monika Meiler. Inhalt Inhalt 3 C-Ausdrücke...3-2 3.1 Arithmetische Ausdrücke...3-3 3.2 Wertzuweisungen...3-5 3.3 Inkrementieren und Dekrementieren...3-6 3.4 Logische Ausdrücke (Bedingungen)...3-7 3.5 Bedingte Ausdrücke...3-8

Mehr

Technische Universität Braunschweig Institut für Programmierung und Reaktive Systeme

Technische Universität Braunschweig Institut für Programmierung und Reaktive Systeme Technische Universität Braunschweig Institut für Programmierung und Reaktive Systeme Programmieren I Dr. Werner Struckmann 17. Februar 2018 Name: Vorname: Matrikelnummer: Kennnummer: Anrede: Frau Herr

Mehr

620.900 Propädeutikum zur Programmierung

620.900 Propädeutikum zur Programmierung 620.900 Propädeutikum zur Programmierung Andreas Bollin Institute für Informatik Systeme Universität Klagenfurt Andreas.Bollin@uni-klu.ac.at Tel: 0463 / 2700-3516 Lösung der Aufgaben (1/2) Lösung Aufgabe

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

Anweisungen und Kontrollstrukturen

Anweisungen und Kontrollstrukturen Anweisungen und Kontrollstrukturen Anweisungen werden im Programm nacheinander als Sequenz abgearbeitet, wenn nichts anderes angegeben ist. Einzelne Anweisung mit einer Zuweisung, zum Beispiel: A = 2*r*r;

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

S. d. I.: Programieren in C Folie 4-1. im Gegensatz zu Pascal gibt es in C kein Schlüsselwort "then"

S. d. I.: Programieren in C Folie 4-1. im Gegensatz zu Pascal gibt es in C kein Schlüsselwort then S. d. I.: Programieren in C Folie 4-1 4 Anweisungen 4.1 if-anweisung 1) if (Ausdruck) 2) if (Ausdruck) } else im Gegensatz zu Pascal gibt es in C kein Schlüsselwort "then" es wird nur der numerische Wert

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

Wo sind wir? Kontrollstrukturen

Wo sind wir? Kontrollstrukturen Wo sind wir? Java-Umgebung Lexikale Konventionen Datentypen Kontrollstrukturen Ausdrücke Klassen, Pakete, Schnittstellen JVM Exceptions Java Klassenbibliotheken Ein-/Ausgabe Collections Threads Applets,

Mehr