3. Grundanweisungen in Java

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

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

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

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

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

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

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

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

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

Grundlagen der Programmierung

Grundlagen der Programmierung Grundlagen der Programmierung 8. Vorlesung 25.05.2016 1 Ausdrücke "Befehle", die ein Ergebnis liefern 3 + 4 sin(x) x < 10 getchar() Ausdrücke können Teil eines anderen Ausdrucks sein x = sin( x + y ) Auswertung:

Mehr

Die Programmiersprache C Eine Einführung

Die Programmiersprache C Eine Einführung Die Programmiersprache C Eine Einführung Christian Gentsch Fakutltät IV Technische Universität Berlin Projektlabor 2. Mai 2014 Inhaltsverzeichnis 1 Einführung Entstehungsgeschichte Verwendung 2 Objektorientiert

Mehr

Fallunterscheidung: if-statement

Fallunterscheidung: if-statement Fallunterscheidung: if-statement A E 1 E 2 V 1 V 2 Syntax: if ( ausdruck ) Semantik: else anweisungsfolge_1 anweisungsfolge_2 1. Der ausdruck wird bewertet 2. Ergibt die Bewertung einen Wert ungleich 0

Mehr

2. Programmierung in C

2. Programmierung in C 2. Programmierung in C Inhalt: Überblick über Programmiersprachen, Allgemeines zur Sprache C C: Basisdatentypen, Variablen, Konstanten Operatoren, Ausdrücke und Anweisungen Kontrollstrukturen (Steuerfluss)

Mehr

Algorithmische Kernsprache. Zuweisung, einfache und bedingte Anweisung, Blöcke, Schleifen, return, debugging.

Algorithmische Kernsprache. Zuweisung, einfache und bedingte Anweisung, Blöcke, Schleifen, return, debugging. Algorithmische Kernsprache Zuweisung, einfache und bedingte Anweisung, Blöcke, Schleifen, return, debugging. Ausdrücke Anweisungen Ausdrücke bezeichnen einen Wert Kontext stellt Werte von Variablen Werte

Mehr

Kontrollstrukturen, Pseudocode und Modulo-Rechnung

Kontrollstrukturen, Pseudocode und Modulo-Rechnung Kontrollstrukturen, Pseudocode und Modulo-Rechnung CoMa-Übung III TU Berlin 29.10.2012 CoMa-Übung III (TU Berlin) Kontrollstrukturen, Pseudocode und Modulo-Rechnung 29.10.2012 1 / 1 Themen der Übung 1

Mehr

Primitive Datentypen

Primitive Datentypen Primitive Datentypen 2 Arten von Datentypen: primitive Datentypen (heute) Objekte (später) Java ist streng typisiert, d.h. für jede Variable muß angegeben werden was für eine Art von Wert sie aufnimmt.

Mehr

Dr. Monika Meiler. Inhalt

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

Mehr

Java 7. Elmar Fuchs Grundlagen Programmierung. 1. Ausgabe, Dezember 2011 JAV7

Java 7. Elmar Fuchs Grundlagen Programmierung. 1. Ausgabe, Dezember 2011 JAV7 Java 7 Elmar Fuchs Grundlagen Programmierung 1. Ausgabe, Dezember 2011 JAV7 5 Java 7 - Grundlagen Programmierung 5 Kontrollstrukturen In diesem Kapitel erfahren Sie wie Sie die Ausführung von von Bedingungen

Mehr

Java Einführung ABLAUFSTEUERUNG Kapitel 3 und 4

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

Mehr

Es ist für die Lösung der Programmieraufgabe nicht nötig, den mathematischen Hintergrund zu verstehen, es kann aber beim Verständnis helfen.

Es ist für die Lösung der Programmieraufgabe nicht nötig, den mathematischen Hintergrund zu verstehen, es kann aber beim Verständnis helfen. Ziele sind das Arbeiten mit Funktionen und dem Aufzählungstyp (enum), sowie - einfache Verzweigung (if else) - Alternativen switch case - einfache Schleifen (while oder do while) Aufgabe 3: Diese Aufgabe

Mehr

5. Tutorium zu Programmieren

5. Tutorium zu Programmieren 5. Tutorium zu Programmieren Dennis Ewert Gruppe 6 Universität Karlsruhe Institut für Programmstrukturen und Datenorganisation (IPD) Lehrstuhl Programmierparadigmen WS 2008/2009 c 2008 by IPD Snelting

Mehr

Java Einführung VARIABLEN und DATENTYPEN Kapitel 2

Java Einführung VARIABLEN und DATENTYPEN Kapitel 2 Java Einführung VARIABLEN und DATENTYPEN Kapitel 2 Inhalt dieser Einheit Variablen (Sinn und Aufgabe) Bezeichner Datentypen, Deklaration und Operationen Typenumwandlung (implizit/explizit) 2 Variablen

Mehr

2.5 Programmstrukturen Entscheidung / Alternative

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

Mehr

Objektorientierte Programmierung OOP Programmieren mit Java

Objektorientierte Programmierung OOP Programmieren mit Java Objektorientierte Programmierung OOP Programmieren mit Java 5.1 Elementare Anweisungen 5.1.1 Ausdrucksanweisung 5.1.2 Leere Anweisung 5.1.3 Blockanweisung 5.1.4 Variablendeklaration 5.2 Bedingungen 5.2.1

Mehr

Tutorium für Fortgeschrittene

Tutorium für Fortgeschrittene Tutorium für Fortgeschrittene Stroop Aufgabe: Die Farbe gesehener Wörter ist zu klassifizieren. Es gibt 4 Farben (rot, blau, gelb, grün) In Eprime: red, blue, yellow and green. Jeder Farbe ist einer Taste

Mehr

Grundlagen der Programmierung

Grundlagen der Programmierung Grundlagen der Programmierung 7. Vorlesung 18.05.2016 1 Konstanten Ganzzahlkonstante Dezimal: 42, 23, -2 Oktal (0 vorangestellt): 052 Hexadezimal (0x vorangestellt): 0x2A Gleitkommazahlen: 3.1415, 2.71,

Mehr

II. Grundlagen der Programmierung. 9. Datenstrukturen. Daten zusammenfassen. In Java (Forts.): In Java:

II. Grundlagen der Programmierung. 9. Datenstrukturen. Daten zusammenfassen. In Java (Forts.): In Java: Technische Informatik für Ingenieure (TIfI) WS 2005/2006, Vorlesung 9 II. Grundlagen der Programmierung Ekkart Kindler Funktionen und Prozeduren Datenstrukturen 9. Datenstrukturen Daten zusammenfassen

Mehr

Übersicht Programmablaufsteuerung

Übersicht Programmablaufsteuerung Übersicht Programmablaufsteuerung Konditionale Verzweigung: if - else switch-anweisung Schleifenkonstrukte: while, do - while for Schleife Sprung-Anweisungen: break, continue, goto, return Anweisungen

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 Arrays Wiederholung (1/5) Array = GEORDNETE

Mehr

Grundlagen. Die Komponenten eines C Programms. Das erste Programm

Grundlagen. Die Komponenten eines C Programms. Das erste Programm Grundlagen 1. Die Komponenten eines C Programms 2. Ein Programm erzeugen und übersetzen 3. Variablen Deklarieren und Werte zuweisen 4. Zahlen eingeben mit der Tastatur 5. Arithmetische Ausdrücke und Berechnungen

Mehr

Gliederung. Tutorium zur Vorlesung. Gliederung. Gliederung. 1. Gliederung der Informatik. 1. Gliederung der Informatik. 1. Gliederung der Informatik

Gliederung. Tutorium zur Vorlesung. Gliederung. Gliederung. 1. Gliederung der Informatik. 1. Gliederung der Informatik. 1. Gliederung der Informatik Informatik I WS 2012/13 Tutorium zur Vorlesung 1. Alexander Zietlow zietlow@informatik.uni-tuebingen.de Wilhelm-Schickard-Institut für Informatik Eberhard Karls Universität Tübingen 11.02.2013 1. 2. 1.

Mehr

Wiederholung Wozu Methoden? Methoden Schreiben Methoden Benutzen Rekursion?! Methoden. Javakurs 2012, 3. Vorlesung

Wiederholung Wozu Methoden? Methoden Schreiben Methoden Benutzen Rekursion?! Methoden. Javakurs 2012, 3. Vorlesung Wiederholung Wozu? Schreiben Benutzen Rekursion?! Javakurs 2012, 3. Vorlesung maggyrz@freitagsrunde.org 5. März 2013 Wiederholung Wozu? Schreiben Benutzen Rekursion?! 1 Wiederholung 2 Wozu? 3 Schreiben

Mehr

Programmieren in C. C Syntax Datentypen, Operatoren und Kontrollstrukturen. Prof. Dr. Nikolaus Wulff

Programmieren in C. C Syntax Datentypen, Operatoren und Kontrollstrukturen. Prof. Dr. Nikolaus Wulff Programmieren in C C Syntax Datentypen, Operatoren und Kontrollstrukturen Prof. Dr. Nikolaus Wulff Elementare Typen Imperative und objektorientierte Programmiersprachen bieten i.d.r. einen Satz elementarer

Mehr

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

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

Mehr

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

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

Mehr

Selbsteinstufungstest Vorkurs Programmieren

Selbsteinstufungstest Vorkurs Programmieren VPR Selbsteinstufungstest Vorkurs Programmieren Zeit 90 Minuten Aufgabe 1: Einzigartig (10 Punkte) Schreiben Sie eine Methode die angibt, ob ein String str1 in einem zweiten String str2 genau einmal vorkommt.

Mehr

C.3 Funktionen und Prozeduren

C.3 Funktionen und Prozeduren C3 - Funktionen und Prozeduren Funktionsdeklarationen in Pascal auch in Pascal kann man selbstdefinierte Funktionen einführen: Funktionen und Prozeduren THEN sign:= 0 Funktion zur Bestimmung des Vorzeichens

Mehr

Programmierung. Grundlagen. Ralph Steyer. 3. Ausgabe, Juli 2015 ISBN: 978-3-86249-429-3

Programmierung. Grundlagen. Ralph Steyer. 3. Ausgabe, Juli 2015 ISBN: 978-3-86249-429-3 Programmierung Ralph Steyer Grundlagen 3. Ausgabe, Juli 2015 ISBN: 978-3-86249-429-3 PG 7 Programmierung - Grundlagen 7.2 Bedingungen und Kontrollstrukturen Was sind Bedingungen? Durch eine Bedingung (engl.

Mehr

magnum C++ WALTER SAUMWEBER kompakt komplett kompetent

magnum C++ WALTER SAUMWEBER kompakt komplett kompetent magnum C++ WALTER SAUMWEBER kompakt komplett kompetent Quickview... 5 Liebe Leserin, lieber Leser... 13 Teil 1 Grundlagen... 15 1 Was ist Programmieren?... 17 1.1 Was ist eigentlich ein Computerprogramm?...

Mehr

Webbasierte Programmierung

Webbasierte Programmierung Webbasierte Programmierung Eine Einführung mit anschaulichen Beispielen aus der HTML5-Welt apl. Prof. Dr. Achim Ebert Inhalt Kapitel 6: JavaScript Kontrollstrukturen Verzweigungen Einseitig, zweiseitig,

Mehr

3. Algorithmenentwurf und JAVA. Informatik II für Verkehrsingenieure

3. Algorithmenentwurf und JAVA. Informatik II für Verkehrsingenieure 3. Algorithmenentwurf und JAVA Informatik II für Verkehrsingenieure Schwerpunkt 1 ALGORITHMEN UND UMSETZUNG Aufgabe Algorithmus Programm Eigentliche Entwicklung der Verfahrensidee Codierung Algorithmenentwurf

Mehr

Angewandte Mathematik und Programmierung

Angewandte Mathematik und Programmierung Angewandte Mathematik und Programmierung Einführung in das Konzept der objektorientierten Anwendungen zu mathematischen Rechnens SS2013 Inhalt Projekt Vorlesung: praktische Implementierung üben Ein und

Mehr

12 == 12 true 12 == 21 false 4 === 7 true 4 === "vier" false 4 === 4.0 false 12!= 13 true 12!== 12 false 12!== 12.0 true. 1 < 3 true 3 < 1 false

12 == 12 true 12 == 21 false 4 === 7 true 4 === vier false 4 === 4.0 false 12!= 13 true 12!== 12 false 12!== 12.0 true. 1 < 3 true 3 < 1 false Die if-anweisung if (Bedingung 1) { Code 1 else { Code 2 ; Anm.1: Das ; kann entfallen, da innerhalb { ein sog. Codeblock geschrieben wird. Anm.2: Es gibt noch andere Schreibweisen, aber wir wollen uns

Mehr

Tutorium Rechnerorganisation

Tutorium Rechnerorganisation Woche 2 Tutorien 3 und 4 zur Vorlesung Rechnerorganisation 1 Christian A. Mandery: KIT Universität des Landes Baden-Württemberg und nationales Grossforschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu

Mehr

Javaprogrammierung mit NetBeans. Variablen, Datentypen, Methoden

Javaprogrammierung mit NetBeans. Variablen, Datentypen, Methoden Javaprogrammierung mit NetBeans Variablen, Datentypen, Methoden Programmieren 2 Java Bezeichner Bezeichner: Buchstabe _ $ Buchstabe _ $ Ziffer Groß- und Kleinbuchstaben werden strikt unterschieden. Schlüsselwörter

Mehr

C# 2000 Expression Beispielcodes für Konsolen- und Formularanwendung

C# 2000 Expression Beispielcodes für Konsolen- und Formularanwendung C# 2000 Expression Beispielcodes für Konsolen- und Formularanwendung 1. "Hai!" [Konsolenanwendung] Console.WriteLine("Hai, wie geht's?"); 2. Muktiplikation mit sich selbst [Konsolenanwendung] // Ausgabe

Mehr

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

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

Mehr

4.Grundsätzliche Programmentwicklungsmethoden

4.Grundsätzliche Programmentwicklungsmethoden 4.Grundsätzliche Programmentwicklungsmethoden 1.1 Grundlage strukturierter und objektorientierter Programmierung Begriff Software Engineering - umfaßt den gezielten Einsatz von Beschreibungsmitteln, Methoden

Mehr

Java-Schulung Grundlagen

Java-Schulung Grundlagen Java-Schulung Grundlagen Java 2 Standard Edition JDK 5 / 6 31.05.2008 Marcel Wieczorek 1 Themenübersicht Basiswissen Objektorientierung Datentypen Fehlerbehandlung Sonstiges Einführung Klassen, Strings

Mehr

Theorie zu Übung 8 Implementierung in Java

Theorie zu Übung 8 Implementierung in Java Universität Stuttgart Institut für Automatisierungstechnik und Softwaresysteme Prof. Dr.-Ing. M. Weyrich Theorie zu Übung 8 Implementierung in Java Klasse in Java Die Klasse wird durch das class-konzept

Mehr

Dr. Monika Meiler. Inhalt

Dr. Monika Meiler. Inhalt Inhalt 4 Anweisungen... 4-2 4.1 Strukturierte Programmierung... 4-2 4.1.1 Geschichte... 4-2 4.1.2 Strukturierung im Kleinen... 4-2 4.2 Einige Beispielanwendungen... 4-4 4.2.1 Addierer (do-schleife)...

Mehr

Ab J2SE 5.0 Unterstützung formatierter Bildschirmausgaben. Mit den Operatoren und Klammern können Boolesche Ausdrücke gebildet werden Beispiel:

Ab J2SE 5.0 Unterstützung formatierter Bildschirmausgaben. Mit den Operatoren und Klammern können Boolesche Ausdrücke gebildet werden Beispiel: Die Funktionen print() und println() Die Funktion System.out.printf() Format eines Funktionsaufrufs funktionsname(); Innerhalb der Klammern können Argumente angegeben werden Die Funktion kann ein Ergebnis

Mehr

Abstrakte Algorithmen und Sprachkonzepte

Abstrakte Algorithmen und Sprachkonzepte Abstrakte Algorithmen und Sprachkonzepte Thomas Röfer Begriff des Algorithmus Algorithmenaufbau Programmiersprachliche Grundkonzepte Interative und rekursive Algorithmen Rückblick Aufbau und Funktionsweise

Mehr

Programmierung in C. Grundlagen. Stefan Kallerhoff

Programmierung in C. Grundlagen. Stefan Kallerhoff Programmierung in C Grundlagen Stefan Kallerhoff Vorstellungsrunde Name Hobby/Beruf Schon mal was programmiert? Erwartungen an den Kurs Lieblingstier Für zu Hause C-Buch online: http://openbook.rheinwerk-verlag.de/c_von_a_bis_z/

Mehr

Grundlagen der Programmierung in C++ Kontrollstrukturen

Grundlagen der Programmierung in C++ Kontrollstrukturen Grundlagen der Programmierung in C++ Kontrollstrukturen Wintersemester 2005/2006 G. Zachmann Clausthal University, Germany zach@in.tu-clausthal.de Block Keine Kontrollstruktur im eigentlichen Sinn Dient

Mehr

Java Einführung Methoden. Kapitel 6

Java Einführung Methoden. Kapitel 6 Java Einführung Methoden Kapitel 6 Inhalt Deklaration und Aufruf von Methoden Lokale und globale Namen (Bezeichner) Sichtbarkeit und Lebensdauer von Variablen in Methoden Überladen von Methoden 2 Methoden

Mehr

Probeklausur: Programmierung WS04/05

Probeklausur: Programmierung WS04/05 Probeklausur: Programmierung WS04/05 Name: Hinweise zur Bearbeitung Nimm Dir für diese Klausur ausreichend Zeit, und sorge dafür, dass Du nicht gestört wirst. Die Klausur ist für 90 Minuten angesetzt,

Mehr

Eine Klasse beschreibt Objekte mit gleichen Attributen und Methoden.

Eine Klasse beschreibt Objekte mit gleichen Attributen und Methoden. Grundwissen Informatik Objekt Attribut Methoden Als Objekte bezeichnet man alle Gegenstände, Dinge, Lebewesen, Begriffe oder Strukturen unserer Welt ( Autos, Räume, Bakterien, Lehrer, Schüler, Kunden,

Mehr

Inhaltsverzeichnis. Grundbegriffe der C-Programmierung Für den HI-TECH C-Compiler

Inhaltsverzeichnis. Grundbegriffe der C-Programmierung Für den HI-TECH C-Compiler Inhaltsverzeichnis Grundbegriffe der C-Programmierung 1. Grundsätzliches... 2 1.1 Darstellung von Werten... 2 1.1.1 Dezimale Zahlendarstellung... 2 1.1.2 Binäre Zahlendarstellung... 3 1.1.3 Hexadezimale

Mehr

JAVA - Methoden

JAVA - Methoden Übungen Informatik I JAVA - http://www.fbi-lkt.fh-karlsruhe.de/lab/info01/tutorial Übungen Informatik 1 Folie 1 sind eine Zusammenfassung von Deklarationen und Anweisungen haben einen Namen und können

Mehr

Repetitorium Informatik (Java)

Repetitorium Informatik (Java) Repetitorium Informatik (Java) Tag 6 Lehrstuhl für Informatik 2 (Programmiersysteme) Übersicht 1 Klassen und Objekte Objektorientierung Begrifflichkeiten Deklaration von Klassen Instanzmethoden/-variablen

Mehr

Dr. Monika Meiler. Inhalt

Dr. Monika Meiler. Inhalt Inhalt 5 Referenzdatentypen - Felder... 5-2 5.1 Eindimensionale Felder - Vektoren... 5-3 5.1.1 Vereinbarung... 5-3 5.1.2 Referenzen sind keine Felder... 5-4 5.1.3 Kopieren eindimensionaler Felder... 5-6

Mehr

Übersicht. Informatik 2 Teil 3 Anwendungsbeispiel für objektorientierte Programmierung

Übersicht. Informatik 2 Teil 3 Anwendungsbeispiel für objektorientierte Programmierung Übersicht 3.1 Modell Konto 3.2 Modell Konto - Erläuterungen 3.3 Benutzer Ein- und Ausgabe mit Dialogfenster I 3.4 Benutzer Ein- und Ausgabe mit Dialogfenster II 3.5 Klassen- und Objekteigenschaften des

Mehr

Der Aufruf von DM_in_Euro 1.40 sollte die Ausgabe 1.40 DM = 0.51129 Euro ergeben.

Der Aufruf von DM_in_Euro 1.40 sollte die Ausgabe 1.40 DM = 0.51129 Euro ergeben. Aufgabe 1.30 : Schreibe ein Programm DM_in_Euro.java zur Umrechnung eines DM-Betrags in Euro unter Verwendung einer Konstanten für den Umrechnungsfaktor. Das Programm soll den DM-Betrag als Parameter verarbeiten.

Mehr

Programmierung mit C Zeiger

Programmierung mit C Zeiger Programmierung mit C Zeiger Zeiger (Pointer)... ist eine Variable, die die Adresse eines Speicherbereichs enthält. Der Speicherbereich kann... kann den Wert einer Variablen enthalten oder... dynamisch

Mehr

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

Praktikum zu Einführung in die Informatik für LogWiIngs und WiMas Wintersemester 2015/16. Vorbereitende Aufgaben Praktikum zu Einführung in die Informatik für LogWiIngs und WiMas Wintersemester 2015/16 Fakultät für Informatik Lehrstuhl 14 Lars Hildebrand, Marcel Preuß, Iman Kamehkhosh, Marc Bury, Diana Howey Übungsblatt

Mehr

Einführung Datentypen Verzweigung Schleifen Funktionen Dynamische Datenstrukturen. Java Crashkurs. Kim-Manuel Klein (kmk@informatik.uni-kiel.

Einführung Datentypen Verzweigung Schleifen Funktionen Dynamische Datenstrukturen. Java Crashkurs. Kim-Manuel Klein (kmk@informatik.uni-kiel. Java Crashkurs Kim-Manuel Klein (kmk@informatik.uni-kiel.de) May 7, 2015 Quellen und Editoren Internet Tutorial: z.b. http://www.java-tutorial.org Editoren Normaler Texteditor (Gedit, Scite oder ähnliche)

Mehr

Einführung in die Informatik 1

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

Mehr

Excel Funktionen durch eigene Funktionen erweitern.

Excel Funktionen durch eigene Funktionen erweitern. Excel Funktionen durch eigene Funktionen erweitern. Excel bietet eine große Anzahl an Funktionen für viele Anwendungsbereiche an. Doch es kommt hin und wieder vor, dass man die eine oder andere Funktion

Mehr

Einführung in die Java- Programmierung

Einführung in die Java- Programmierung Einführung in die Java- Programmierung Dr. Volker Riediger Tassilo Horn riediger horn@uni-koblenz.de WiSe 2012/13 1 Rückblick Datentypen (int, long, double, boolean, String) Variablen und Variablendeklarationen

Mehr

Einführung in die C-Programmierung

Einführung in die C-Programmierung Einführung in die C-Programmierung Warum C? Sehr stark verbreitet (Praxisnähe) Höhere Programmiersprache Objektorientierte Erweiterung: C++ Aber auch hardwarenahe Programmierung möglich (z.b. Mikrokontroller).

Mehr

Das Typsystem von Scala. L. Piepmeyer: Funktionale Programmierung - Das Typsystem von Scala

Das Typsystem von Scala. L. Piepmeyer: Funktionale Programmierung - Das Typsystem von Scala Das Typsystem von Scala 1 Eigenschaften Das Typsystem von Scala ist statisch, implizit und sicher 2 Nichts Primitives Alles ist ein Objekt, es gibt keine primitiven Datentypen scala> 42.hashCode() res0:

Mehr

Übersicht. Schleifen. Schleifeninvarianten. Referenztypen, Wrapperklassen und API. 9. November 2009 CoMa I WS 08/09 1/15

Übersicht. Schleifen. Schleifeninvarianten. Referenztypen, Wrapperklassen und API. 9. November 2009 CoMa I WS 08/09 1/15 Übersicht Schleifen Schleifeninvarianten Referenztypen, Wrapperklassen und API CoMa I WS 08/09 1/15 CoMa I Programmierziele Linux bedienen Code umschreiben strukturierte Datentypen Anweisungen und Kontrollstrukturen

Mehr

Praktikum Informatik II Prof. Dr. Martin Trauth, Dr. Michael Männel

Praktikum Informatik II Prof. Dr. Martin Trauth, Dr. Michael Männel Praktikum Informatik II Prof. Dr. Martin Trauth, Dr. Michael Männel FB Physikalische Technik Musterlösungen Teil 4 Aufgabe 1 package teil4; import javax.swing.*; public class Ei { int haltung, ident; String

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 Aufgabe (1/1) Lösung Aufgabe

Mehr

Kontrollstrukturen MySQL Funktionen. MySQL 4, 5. Kapitel 20a: PHP Teil 2. Marcel Noe

Kontrollstrukturen MySQL Funktionen. MySQL 4, 5. Kapitel 20a: PHP Teil 2. Marcel Noe MySQL 4, 5 Kapitel 20a: PHP Teil 2 Gliederung 1 2 Gliederung 1 2 Die ermöglicht ein Bedingtes Ausführen von Code-Abschnitten. Nur wenn die Bedingung erfüllt ist wird der Block hinter if ausgeführt. Ist

Mehr

zu große Programme (Bildschirmseite!) zerlegen in (weitgehend) unabhängige Einheiten: Unterprogramme

zu große Programme (Bildschirmseite!) zerlegen in (weitgehend) unabhängige Einheiten: Unterprogramme Bisher Datentypen: einfach Zahlen, Wahrheitswerte, Zeichenketten zusammengesetzt Arrays (Felder) zur Verwaltung mehrerer zusammengehörender Daten desselben Datentypes eindimensional, mehrdimensional, Array-Grenzen

Mehr

Kapitel 7 Algorithmem Seite 1

Kapitel 7 Algorithmem Seite 1 Kapitel 7 Algorithmem Seite 1 7 Algorithmen In diesem Kapitel will ich einige einfache Algorithmen mit ihren Kontrollstrukturen in Java besprechen. Zum Nachschlagen steht am Ende dieses Kapitels eine Zusammenfassung

Mehr

HEUTE. Effizienzbeispiel: bekannte Version (Übung 04.11.04) Mathematik: Was ist Effizienz? vollständige Induktion

HEUTE. Effizienzbeispiel: bekannte Version (Übung 04.11.04) Mathematik: Was ist Effizienz? vollständige Induktion 17.11.04 1 HEUTE 17.11.04 3 Effizienzbeispiel: bekannte Version (Übung 04.11.04) Mathematik: was ist Effizienz? vollständige Induktion JAVA: Arrays die for -Schleife die Sprunganweisungen break und continue

Mehr

THE GO PROGRAMMING LANGUAGE. Michael Karnutsch & Marko Sulejic

THE GO PROGRAMMING LANGUAGE. Michael Karnutsch & Marko Sulejic THE GO PROGRAMMING LANGUAGE Part 1: Michael Karnutsch & Marko Sulejic Gliederung Geschichte / Motivation Compiler Formatierung, Semikolons Variablen, eigene Typen Kontrollstrukturen Funktionen, Methoden

Mehr

4. Datentypen. Einleitung Eingebaute Datentypen. Konversion / Type-Cast. Operatoren. Übersicht Die Datentypen char, float und double Standardwerte

4. Datentypen. Einleitung Eingebaute Datentypen. Konversion / Type-Cast. Operatoren. Übersicht Die Datentypen char, float und double Standardwerte 4. Datentypen Einleitung Eingebaute Datentypen Übersicht Die Datentypen char, float und double Standardwerte Konversion / Type-Cast Datentyp von Literalen Operatoren Ausdrücke Allgemeine Informatik 2 SS09

Mehr

Primitive Datentypen und Felder (Arrays)

Primitive Datentypen und Felder (Arrays) Primitive Datentypen und Felder (rrays) Primitive Datentypen Java stellt (genau wie Haskell) primitive Datentypen für Boolesche Werte, Zeichen, ganze Zahlen und Gleitkommazahlen zur Verfügung. Der wichtigste

Mehr

Informatik II Musterlösung

Informatik II Musterlösung Ludwig-Maximilians-Universität München SS 2006 Institut für Informatik Übungsblatt 4 Prof. Dr. M. Wirsing, M. Hammer, A. Rauschmayer Informatik II Musterlösung Zu jeder Aufgabe ist eine Datei abzugeben,

Mehr

Die Algorithmenbeschreibungssprache Jana

Die Algorithmenbeschreibungssprache Jana Jana 1 Die Algorithmenbeschreibungssprache Jana Günther Blaschek, Institut für Systemsoftware, JKU Linz Juni 2011 Jana (Java-based Abstract Notation for Algorithms) ist eine Beschreibungssprache zur Formulierung

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 28 Einstieg in die Informatik mit Java Algorithmen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 28 1 Überblick 2 Algorithmus 3 Grundalgorithmen in Java 4 Flussdiagramme

Mehr

Grundlagen der Programmierung Prof. H. Mössenböck. 3. Verzweigungen

Grundlagen der Programmierung Prof. H. Mössenböck. 3. Verzweigungen Grundlagen der Programmierung Prof. H. Mössenböck 3. Verzweigungen If-Anweisung n > 0? j n if (n > 0) x = x / n; ohne else-zweig x x / n j max x x > y? n max y if (x > y) max = x; else max = y; mit else-zweig

Mehr

Grundlagen der Programmierung Prof. H. Mössenböck. 10. Klassen

Grundlagen der Programmierung Prof. H. Mössenböck. 10. Klassen Grundlagen der Programmierung Prof. H. Mössenböck 10. Klassen Motivation Wie würde man ein Datum speichern (z.b. 13. November 2004)? 3 Variablen int da; String month; int ear; Unbequem, wenn man mehrere

Mehr

Modellierung und Programmierung 1

Modellierung und Programmierung 1 Modellierung und Programmierung 1 Prof. Dr. Sonja Prohaska Computational EvoDevo Group Institut für Informatik Universität Leipzig 19. November 2015 Gültigkeitsbereich (Scope) von Variablen { int m; {

Mehr

Übersicht. C Ein-/Ausgabe und Kontrollanweisungen. I/O-Funktionen aus stdio. printf() Ein-/Ausgabe. Kontrollanweisungen.

Übersicht. C Ein-/Ausgabe und Kontrollanweisungen. I/O-Funktionen aus stdio. printf() Ein-/Ausgabe. Kontrollanweisungen. Übersicht Ein-/Ausgabe C Ein-/Ausgabe und Kontrollanweisungen Kontrollanweisungen 1 2 I/O-Funktionen aus stdio printf() printf() - zum formatierten Ausgaben #include scanf() - zum formatierten

Mehr

Klausur C-Programmierung / 15.02.2014 / Klingebiel / 60 Minuten / 60 Punkte

Klausur C-Programmierung / 15.02.2014 / Klingebiel / 60 Minuten / 60 Punkte Klausur C-Programmierung / 15.02.2014 / Klingebiel / 60 Minuten / 60 Punkte Musterlösung 1. Aufgabe (5 Punkte) Im folgenden Programmcode sind einige Fehler enthalten. Finden und markieren Sie mindestens

Mehr

Datenbankanwendungsprogrammierung Crashkurs Java

Datenbankanwendungsprogrammierung Crashkurs Java Datenbankanwendungsprogrammierung Crashkurs Java Denny Priebe Datenbankanwendungsprogrammierung p. Unterschiede zu C, C++ typedefs, Präprozessor Strukturen, Unions globale Funktionen Mehrfachvererbung

Mehr

Entwurf von Algorithmen - Kontrollstrukturen

Entwurf von Algorithmen - Kontrollstrukturen Entwurf von Algorithmen - Kontrollstrukturen Eine wichtige Phase in der Entwicklung von Computerprogrammen ist der Entwurf von Algorithmen. Dieser Arbeitsschritt vor dem Schreiben des Programmes in einer

Mehr

Übungen zu C++ Kapitel 1

Übungen zu C++ Kapitel 1 Übungen zu C++ Kapitel 1 Aufgabe 1 Ergänze den Text. a) Die sechs logischen Einheiten eines Computers sind Eingabe-Einheit, Ausgabe-Einheit, RAM, ALU, CPU, Plattenspeicher. b) Die Programme, welche Hochsprachenprogramme

Mehr

Das erste Programm soll einen Text zum Bildschirm schicken. Es kann mit jedem beliebigen Texteditor erstellt werden.

Das erste Programm soll einen Text zum Bildschirm schicken. Es kann mit jedem beliebigen Texteditor erstellt werden. Einfache Ein- und Ausgabe mit Java 1. Hallo-Welt! Das erste Programm soll einen Text zum Bildschirm schicken. Es kann mit jedem beliebigen Texteditor erstellt werden. /** Die Klasse hello sendet einen

Mehr

Übung Grundlagen der Programmierung. Übung 05: Arrays. Abgabetermin: xx.xx.xxxx. Java-Programm Testplan Testergebnisse

Übung Grundlagen der Programmierung. Übung 05: Arrays. Abgabetermin: xx.xx.xxxx. Java-Programm Testplan Testergebnisse Übung 05: Arrays Abgabetermin: xx.xx.xxxx Name: Name, Vorname Matrikelnummer: 0XXXXXX Gruppe: G1 (Prähofer) G2 (Wolfinger) G3 (Wolfinger) Aufgabe Punkte gelöst abzugeben schriftlich abzugeben elektronisch

Mehr

Ein erstes Java-Programm

Ein erstes Java-Programm Ein erstes Java-Programm public class Rechnung { public static void main (String [] arguments) { int x, y; x = 10; y = -1 + 23 * 33 + 3 * 7 * (5 + 6); System.out.print ("Das Resultat ist "); System.out.println

Mehr

Herzlich Willkommen. Über mich Termine Literatur Über PHP

Herzlich Willkommen. Über mich Termine Literatur Über PHP Über mich Termine Literatur Über PHP Herzlich Willkommen Über mich Termine Literatur Über PHP Wer ist das da vorne? Mario Lipinski Über mich Termine Literatur Über PHP Wer ist das da vorne? Mario Lipinski

Mehr

C/C++ Programmierung

C/C++ Programmierung 1 C/C++ Programmierung Grundlagen: Anweisungen Sebastian Hack Christoph Mallon (hack mallon)@cs.uni-sb.de Fachbereich Informatik Universität des Saarlandes Wintersemester 2009/2010 2 Anweisungen (Statements)

Mehr

Informatik Repetitorium SS 2009. Volker Jaedicke Volker.Jaedicke@web.de 0179 1322692

Informatik Repetitorium SS 2009. Volker Jaedicke Volker.Jaedicke@web.de 0179 1322692 Informatik Repetitorium SS 2009 Volker Jaedicke Volker.Jaedicke@web.de 0179 1322692 Operatoren und Datentypen Beispiel: Anweisungen Variable int a float b int c a= a % (int) (++b-1/4) Vorher 36 3.5 c=b

Mehr

Syntaxanalyse Ausgangspunkt und Ziel

Syntaxanalyse Ausgangspunkt und Ziel Syntaxanalyse Ausgangspunkt und Ziel Ausgangspunkt: Kontextfreie Grammatik Im Normalfall BNF, manchmal EBNF BNF = Backus-Naur-Form = Produktionsregeln EBNF = erweiterte BNF (+ reguläre Ausdrücke) Prüfung

Mehr

ALP I Einführung in Haskell

ALP I Einführung in Haskell ALP I Einführung in Haskell WS 2012/2013 Was ist Haskell? Haskell ist eine rein Funktionale Programmiersprache mit einer nach Bedarf Auswertung-Strategie oder "Lazy Evaluation". Was bedeutet rein funktional?

Mehr