Tag 3 Repetitorium Informatik (Java)
|
|
- Bernd Böhler
- vor 6 Jahren
- Abrufe
Transkript
1 Tag 3 Repetitorium Informatik (Java) Dozent: Marius Kamp Lehrstuhl für Informatik 2 (Programmiersysteme) Friedrich-Alexander-Universität Erlangen-Nürnberg Wintersemester 2017/2018
2 Übersicht Typkonvertierung Implizite Typkonvertierung Explizite Typkonvertierung Schleifen while-schleifen for-schleifen do-while-schleifen Sprünge in Schleifen: break/continue Endlosschleifen Informatik-Repetitorium Tag 3 WS 2017/2018 Lehrstuhl für Informatik 2 (Programmiersysteme) 2 / 35
3 Typkonvertierung
4 Typkonvertierung bekannt: in Java gibt es unterschiedliche Datentypen der Typ bestimmt die Repräsentation und Größe eines Datums im Speicher unterschiedliche Datentypen haben unterschiedliche Wertebereiche jetzt: Typkonvertierung (cast): Überführung eines Wertes eines Datentyps in den entsprechenden Wert eines anderen Datentyps von kleinerem zu größerem Typ: Typerweiterung von größerem zu kleinerem Typ: Typeinschränkung man unterscheidet zwei Arten der Typkonvertierung: implizite Typkonvertierung ( durch den Compiler ) explizite Typkonvertierung ( durch den Programmierer ) Informatik-Repetitorium Tag 3 WS 2017/2018 Lehrstuhl für Informatik 2 (Programmiersysteme) 4 / 35
5 Wiederholung: Zahlen-Datentypen Wertebereiche Wertebereiche der Datentypen sind unterschiedlich groß größere Datentypen enthalten Wertebereich von kleineren byte short int long float double Größe Beispiele Typkonvertierung von int nach long long hat größeren Wertebereich als int Typerweiterung Typkonvertierung von double nach int int hat kleineren Wertebereich als double Typeinschränkung Informatik-Repetitorium Tag 3 WS 2017/2018 Lehrstuhl für Informatik 2 (Programmiersysteme) 5 / 35
6 Implizite Typkonvertierung implizite Typkonvertierung: nicht direkt aus dem Quelltext des Programms ersichtlich automatisch durch den Compiler an den notwendigen Stellen eingefügt Voraussetzung: durch die Konvertierung entsteht kein Informationsverlust implizite Typkonvertierung nur im Falle einer Typerweiterung Beispiele int a = 13; double b = a; // implizite Typkonvertierung von int nach double double pi = f; // implizite Typkonvertierung von float nach // double ( f kennzeichnet float - Wert ) Informatik-Repetitorium Tag 3 WS 2017/2018 Lehrstuhl für Informatik 2 (Programmiersysteme) 6 / 35
7 Explizite Typkonvertierung Was ist, wenn der Ziel-Datentyp kleiner als der Quell-Datentyp ist? Typeinschränkung Informationsverlust! nur mittels expliziter Typkonvertierung durch den Programmierer So nicht... double a = 9.8; int b = a; // Informationsverlust ( possible loss of precision ) float pi = 3.141; // Informationsverlust ( possible loss of precision ) So schon double a = 9.8; int b = ( int ) a; // b = 9, Nachkommastellen abgeschnitten! float pi = ( float ) 3.141; // besser : f ( siehe oben ) Informatik-Repetitorium Tag 3 WS 2017/2018 Lehrstuhl für Informatik 2 (Programmiersysteme) 7 / 35
8 Achtung... (I) Möglicherweise unerwartetes Ergebnis int a = 13; double b = a / 2; // b = 6.0 Was ist denn hier passiert? der Compiler sieht bei der Division zwei ganzzahlige Operanden a als int deklariert ganzzahlig 2 ist int-wert ganzzahlig es wird eine Ganzzahl-Division durchgeführt Ergebnis ist der int-wert 6 erst danach sieht der Compiler, dass in eine double-variable geschrieben wird implizite Typkonvertierung von int nach double in diesem Moment sind die Nachkommastellen aber schon verloren Informatik-Repetitorium Tag 3 WS 2017/2018 Lehrstuhl für Informatik 2 (Programmiersysteme) 8 / 35
9 Achtung... (II) Wahrscheinlich erwünschtes Ergebnis int a = 13; double b = a / 2.0; // b = 6.5 // oder double b = (( double ) a) / 2; // b = 6.5 Warum funktioniert das jetzt? in beiden Fällen ist jetzt jeweils ein Operand vom Typ double es wird eine Fließkomma-Division durchgeführt Ergebnis ist der double-wert 6.5 Wert wird ohne weitere Konvertierung in die double-variable geschrieben Informatik-Repetitorium Tag 3 WS 2017/2018 Lehrstuhl für Informatik 2 (Programmiersysteme) 9 / 35
10 Schleifen
11 Schleifen: Motivation (I) Beobachtung Bisher wurden Anweisungen entweder einmal oder keinmal ausgeführt. Beispiel int a = 13; // einmal int b = 3; // einmal int absdiff ; // einmal if (a > b) { // einmal absdiff = a - b; // einmal else { absdiff = b - a; // keinmal Informatik-Repetitorium Tag 3 WS 2017/2018 Lehrstuhl für Informatik 2 (Programmiersysteme) 11 / 35
12 Schleifen: Motivation (II) Was tun, wenn Anweisungen mehrfach ausgeführt werden sollen? Beispiel: 10x Hallo Welt ausgeben Idee: Anweisungen einfach mehrfach hintereinder schreiben aufwändig und äußerst unschön klappt nicht, wenn man die Anzahl an Ausführungen vorher nicht kennt Lösung: Schleifen als weitere Kontrollstruktur wiederholte Ausführung von Anweisungen, solange Bedingung erfüllt ist Java kennt verschiedene Arten von Schleifen: while-schleife for-schleife do-while-schleife Informatik-Repetitorium Tag 3 WS 2017/2018 Lehrstuhl für Informatik 2 (Programmiersysteme) 12 / 35
13 while-schleife Syntax: while-schleife while ( Bedingung ) { // Schleifenkopf Anweisungen ; // Schleifenrumpf Hinweise der Schleifenrumpf besteht aus den zu wiederholenden Anweisungen die Bedingung ist ein beliebiger boolescher Ausdruck wird vor jedem Schleifendurchlauf ausgewertet falls true: Anweisungen im Schleifenrumpf werden ausgeführt falls false: Schleife wird beendet Informatik-Repetitorium Tag 3 WS 2017/2018 Lehrstuhl für Informatik 2 (Programmiersysteme) 13 / 35
14 Ablaufdiagramm der while-schleife Syntax: while-schleife AnweisungenDavor ; while ( Bedingung ) { RumpfAnweisungen ; AnweisungenDanach ; Ablaufdiagramm AnweisungenDavor Bedingung false true RumpfAnweisungen AnweisungenDanach Informatik-Repetitorium Tag 3 WS 2017/2018 Lehrstuhl für Informatik 2 (Programmiersysteme) 14 / 35
15 Beispiel: Ausgabe aller Quadratzahlen y (I) Aufgabe Gegeben sei eine positive, ganze Zahl y. Gesucht ist ein Algorithmus, der alle ganzzahligen Quadratzahlen y berechnet und ausgibt. Beispiel y = 42 1, 4, 9, 16, 25, 36 Überlegungen Berechnung der Quadratzahlen: eine Quadratzahl ist eine Zahl q = n n um die nächstgrößere Quadratzahl zu berechnen, wird n um eins inkrementiert Speicherung der Basis n, Berechnung der Quadratzahl q, Inkrementierung von n Bedingung für die zu schreibende Schleife: falls die nächste Quadratzahl größer als y ist: Berechnung abbrechen Rumpf ausführen, solange die nächste Quadratzahl y ist Informatik-Repetitorium Tag 3 WS 2017/2018 Lehrstuhl für Informatik 2 (Programmiersysteme) 15 / 35
16 Beispiel: Ausgabe aller Quadratzahlen y (II) Aufgabe Gegeben sei eine positive, ganze Zahl y. Gesucht ist ein Algorithmus, der alle ganzzahligen Quadratzahlen y berechnet und ausgibt. Mögliche Lösung int n = 1; // Basis while (n*n <= y) { int q = n* n; // Berechnung der aktuellen Quadratzahl System. out. println ( q); // Ausgabe der aktuellen Quadratzahl n = n + 1; // Inkrementierung der Basis n Tipp Eigene Programme immer auch mit Grenzwerten testen, hier z.b. für y {48, 49, 50. Informatik-Repetitorium Tag 3 WS 2017/2018 Lehrstuhl für Informatik 2 (Programmiersysteme) 16 / 35
17 Beispiel: Ausgabe aller Quadratzahlen y (III) Warum funktioniert das? int n = 1; // Basis while (n*n <= y) { int q = n* n; // Berechnung der aktuellen Quadratzahl System. out. println ( q); // Ausgabe der aktuellen Quadratzahl n = n + 1; // Inkrementierung der Basis n Variablenwerte y 7 (Beispiel!) n 1 q 1 Ausgabe Informatik-Repetitorium Tag 3 WS 2017/2018 Lehrstuhl für Informatik 2 (Programmiersysteme) 17 / 35
18 Beispiel: Ausgabe aller Quadratzahlen y (III) Warum funktioniert das? int n = 1; // Basis while (n*n <= y) { int q = n* n; // Berechnung der aktuellen Quadratzahl System. out. println ( q); // Ausgabe der aktuellen Quadratzahl n = n + 1; // Inkrementierung der Basis n Variablenwerte y 7 (Beispiel!) n 1 q 1 Ausgabe Informatik-Repetitorium Tag 3 WS 2017/2018 Lehrstuhl für Informatik 2 (Programmiersysteme) 17 / 35
19 Beispiel: Ausgabe aller Quadratzahlen y (III) Warum funktioniert das? int n = 1; // Basis while (n*n <= y) { int q = n* n; // Berechnung der aktuellen Quadratzahl System. out. println ( q); // Ausgabe der aktuellen Quadratzahl n = n + 1; // Inkrementierung der Basis n Variablenwerte y 7 (Beispiel!) n 1 q 1 Ausgabe Informatik-Repetitorium Tag 3 WS 2017/2018 Lehrstuhl für Informatik 2 (Programmiersysteme) 17 / 35
20 Beispiel: Ausgabe aller Quadratzahlen y (III) Warum funktioniert das? int n = 1; // Basis while (n*n <= y) { int q = n* n; // Berechnung der aktuellen Quadratzahl System. out. println ( q); // Ausgabe der aktuellen Quadratzahl n = n + 1; // Inkrementierung der Basis n Variablenwerte y 7 (Beispiel!) n 1 q 1 Ausgabe Informatik-Repetitorium Tag 3 WS 2017/2018 Lehrstuhl für Informatik 2 (Programmiersysteme) 17 / 35
21 Beispiel: Ausgabe aller Quadratzahlen y (III) Warum funktioniert das? int n = 1; // Basis 1*1 <= 7 Bedingung erfüllt Schleife wird betreten while (n*n <= y) { int q = n* n; // Berechnung der aktuellen Quadratzahl System. out. println ( q); // Ausgabe der aktuellen Quadratzahl n = n + 1; // Inkrementierung der Basis n Variablenwerte y 7 (Beispiel!) n 1 q 1 Ausgabe Informatik-Repetitorium Tag 3 WS 2017/2018 Lehrstuhl für Informatik 2 (Programmiersysteme) 17 / 35
22 Beispiel: Ausgabe aller Quadratzahlen y (III) Warum funktioniert das? int n = 1; // Basis while (n*n <= y) { int q = n* n; // Berechnung der aktuellen Quadratzahl System. out. println ( q); // Ausgabe der aktuellen Quadratzahl n = n + 1; // Inkrementierung der Basis n Variablenwerte y 7 (Beispiel!) n 1 q 1 Ausgabe Informatik-Repetitorium Tag 3 WS 2017/2018 Lehrstuhl für Informatik 2 (Programmiersysteme) 17 / 35
23 Beispiel: Ausgabe aller Quadratzahlen y (III) Warum funktioniert das? int n = 1; // Basis while (n*n <= y) { int q = n* n; // Berechnung der aktuellen Quadratzahl System. out. println ( q); // Ausgabe der aktuellen Quadratzahl n = n + 1; // Inkrementierung der Basis n Variablenwerte y 7 (Beispiel!) n 1 q 1 Ausgabe Informatik-Repetitorium Tag 3 WS 2017/2018 Lehrstuhl für Informatik 2 (Programmiersysteme) 17 / 35
24 Beispiel: Ausgabe aller Quadratzahlen y (III) Warum funktioniert das? int n = 1; // Basis while (n*n <= y) { int q = n* n; // Berechnung der aktuellen Quadratzahl System. out. println ( q); // Ausgabe der aktuellen Quadratzahl n = n + 1; // Inkrementierung der Basis n Variablenwerte y 7 (Beispiel!) n 1 q 1 Ausgabe Informatik-Repetitorium Tag 3 WS 2017/2018 Lehrstuhl für Informatik 2 (Programmiersysteme) 17 / 35
25 Beispiel: Ausgabe aller Quadratzahlen y (III) Warum funktioniert das? int n = 1; // Basis while (n*n <= y) { int q = n* n; // Berechnung der aktuellen Quadratzahl System. out. println ( q); // Ausgabe der aktuellen Quadratzahl n = n + 1; // Inkrementierung der Basis n Variablenwerte y 7 (Beispiel!) n 1 q 1 Ausgabe 1 Informatik-Repetitorium Tag 3 WS 2017/2018 Lehrstuhl für Informatik 2 (Programmiersysteme) 17 / 35
26 Beispiel: Ausgabe aller Quadratzahlen y (III) Warum funktioniert das? int n = 1; // Basis while (n*n <= y) { int q = n* n; // Berechnung der aktuellen Quadratzahl System. out. println ( q); // Ausgabe der aktuellen Quadratzahl n = n + 1; // Inkrementierung der Basis n Variablenwerte y 7 (Beispiel!) n 1 q 1 Ausgabe 1 Informatik-Repetitorium Tag 3 WS 2017/2018 Lehrstuhl für Informatik 2 (Programmiersysteme) 17 / 35
27 Beispiel: Ausgabe aller Quadratzahlen y (III) Warum funktioniert das? int n = 1; // Basis while (n*n <= y) { int q = n* n; // Berechnung der aktuellen Quadratzahl System. out. println ( q); // Ausgabe der aktuellen Quadratzahl n = n + 1; // Inkrementierung der Basis n Variablenwerte y 7 (Beispiel!) n 2 q 1 Ausgabe 1 Informatik-Repetitorium Tag 3 WS 2017/2018 Lehrstuhl für Informatik 2 (Programmiersysteme) 17 / 35
28 Beispiel: Ausgabe aller Quadratzahlen y (III) Warum funktioniert das? int n = 1; // Basis while (n*n <= y) { int q = n* n; // Berechnung der aktuellen Quadratzahl System. out. println ( q); // Ausgabe der aktuellen Quadratzahl n = n + 1; // Inkrementierung der Basis n Variablenwerte y 7 (Beispiel!) n 2 q 1 Ausgabe 1 Informatik-Repetitorium Tag 3 WS 2017/2018 Lehrstuhl für Informatik 2 (Programmiersysteme) 17 / 35
29 Beispiel: Ausgabe aller Quadratzahlen y (III) Warum funktioniert das? int n = 1; // Basis 2*2 <= 7 Bedingung erfüllt Schleife wird wiederholt while (n*n <= y) { int q = n* n; // Berechnung der aktuellen Quadratzahl System. out. println ( q); // Ausgabe der aktuellen Quadratzahl n = n + 1; // Inkrementierung der Basis n Variablenwerte y 7 (Beispiel!) n 2 q 1 Ausgabe 1 Informatik-Repetitorium Tag 3 WS 2017/2018 Lehrstuhl für Informatik 2 (Programmiersysteme) 17 / 35
30 Beispiel: Ausgabe aller Quadratzahlen y (III) Warum funktioniert das? int n = 1; // Basis while (n*n <= y) { int q = n* n; // Berechnung der aktuellen Quadratzahl System. out. println ( q); // Ausgabe der aktuellen Quadratzahl n = n + 1; // Inkrementierung der Basis n Variablenwerte y 7 (Beispiel!) n 2 q 1 Ausgabe 1 Informatik-Repetitorium Tag 3 WS 2017/2018 Lehrstuhl für Informatik 2 (Programmiersysteme) 17 / 35
31 Beispiel: Ausgabe aller Quadratzahlen y (III) Warum funktioniert das? int n = 1; // Basis while (n*n <= y) { int q = n* n; // Berechnung der aktuellen Quadratzahl System. out. println ( q); // Ausgabe der aktuellen Quadratzahl n = n + 1; // Inkrementierung der Basis n Variablenwerte y 7 (Beispiel!) n 2 q 4 Ausgabe 1 Informatik-Repetitorium Tag 3 WS 2017/2018 Lehrstuhl für Informatik 2 (Programmiersysteme) 17 / 35
32 Beispiel: Ausgabe aller Quadratzahlen y (III) Warum funktioniert das? int n = 1; // Basis while (n*n <= y) { int q = n* n; // Berechnung der aktuellen Quadratzahl System. out. println ( q); // Ausgabe der aktuellen Quadratzahl n = n + 1; // Inkrementierung der Basis n Variablenwerte y 7 (Beispiel!) n 2 q 4 Ausgabe 1 Informatik-Repetitorium Tag 3 WS 2017/2018 Lehrstuhl für Informatik 2 (Programmiersysteme) 17 / 35
33 Beispiel: Ausgabe aller Quadratzahlen y (III) Warum funktioniert das? int n = 1; // Basis while (n*n <= y) { int q = n* n; // Berechnung der aktuellen Quadratzahl System. out. println ( q); // Ausgabe der aktuellen Quadratzahl n = n + 1; // Inkrementierung der Basis n Variablenwerte y 7 (Beispiel!) n 2 q 4 Ausgabe 1 4 Informatik-Repetitorium Tag 3 WS 2017/2018 Lehrstuhl für Informatik 2 (Programmiersysteme) 17 / 35
34 Beispiel: Ausgabe aller Quadratzahlen y (III) Warum funktioniert das? int n = 1; // Basis while (n*n <= y) { int q = n* n; // Berechnung der aktuellen Quadratzahl System. out. println ( q); // Ausgabe der aktuellen Quadratzahl n = n + 1; // Inkrementierung der Basis n Variablenwerte y 7 (Beispiel!) n 2 q 4 Ausgabe 1 4 Informatik-Repetitorium Tag 3 WS 2017/2018 Lehrstuhl für Informatik 2 (Programmiersysteme) 17 / 35
35 Beispiel: Ausgabe aller Quadratzahlen y (III) Warum funktioniert das? int n = 1; // Basis while (n*n <= y) { int q = n* n; // Berechnung der aktuellen Quadratzahl System. out. println ( q); // Ausgabe der aktuellen Quadratzahl n = n + 1; // Inkrementierung der Basis n Variablenwerte y 7 (Beispiel!) n 3 q 4 Ausgabe 1 4 Informatik-Repetitorium Tag 3 WS 2017/2018 Lehrstuhl für Informatik 2 (Programmiersysteme) 17 / 35
36 Beispiel: Ausgabe aller Quadratzahlen y (III) Warum funktioniert das? int n = 1; // Basis while (n*n <= y) { int q = n* n; // Berechnung der aktuellen Quadratzahl System. out. println ( q); // Ausgabe der aktuellen Quadratzahl n = n + 1; // Inkrementierung der Basis n Variablenwerte y 7 (Beispiel!) n 3 q 4 Ausgabe 1 4 Informatik-Repetitorium Tag 3 WS 2017/2018 Lehrstuhl für Informatik 2 (Programmiersysteme) 17 / 35
37 Beispiel: Ausgabe aller Quadratzahlen y (III) Warum funktioniert das? int n = 1; // Basis 3*3 <= 7 Bedingung nicht erfüllt Schleife wird verlassen while (n*n <= y) { int q = n* n; // Berechnung der aktuellen Quadratzahl System. out. println ( q); // Ausgabe der aktuellen Quadratzahl n = n + 1; // Inkrementierung der Basis n Variablenwerte y 7 (Beispiel!) n 3 q 4 Ausgabe 1 4 Informatik-Repetitorium Tag 3 WS 2017/2018 Lehrstuhl für Informatik 2 (Programmiersysteme) 17 / 35
38 Beispiel: Ausgabe aller Quadratzahlen y (III) Warum funktioniert das? int n = 1; // Basis while (n*n <= y) { int q = n* n; // Berechnung der aktuellen Quadratzahl System. out. println ( q); // Ausgabe der aktuellen Quadratzahl n = n + 1; // Inkrementierung der Basis n Variablenwerte y 7 (Beispiel!) n 3 q 4 Ausgabe 1 4 Informatik-Repetitorium Tag 3 WS 2017/2018 Lehrstuhl für Informatik 2 (Programmiersysteme) 17 / 35
39 for-schleife Syntax: for-schleife for ( Initialisierung ; Bedingung ; Fortsetzung ) { // Schleifenkopf Anweisungen ; // Schleifenrumpf Hinweise Schleifenrumpf und Bedingung wie bei der while-schleife die Initialisierung wird einmalig vor Betreten der Schleife ausgeführt kann leer bleiben (Semikolon nicht vergessen!) die Fortsetzung wird nach jedem Schleifendurchlauf ausgeführt kann leer bleiben (Semikolon nicht vergessen!) Informatik-Repetitorium Tag 3 WS 2017/2018 Lehrstuhl für Informatik 2 (Programmiersysteme) 18 / 35
40 Ablaufdiagramm der for-schleife Syntax: for-schleife AnweisungenDavor ; for ( Init ; Bedingung ; Fortsetzung ) { RumpfAnweisungen ; AnweisungenDanach ; Ablaufdiagramm AnweisungenDavor Init Bedingung false true RumpfAnweisungen Fortsetzung AnweisungenDanach Informatik-Repetitorium Tag 3 WS 2017/2018 Lehrstuhl für Informatik 2 (Programmiersysteme) 19 / 35
41 Schleifenvariable, Laufvariable, Zählvariable die Bedingung hängt üblicherweise vom Wert einer ganzzahligen Variable ab Schleifenvariable oder Laufvariable oder Zählvariable eine solche Laufvariable wird üblicherweise in der Initialisierung deklariert und initialisiert... in der Fortsetzung inkrementiert oder dekrementiert Beispiel for ( int i = 1; i <= 3; ++ i) { System. out. println (i); Alternative (unschön!) int i = 1; // evtl. weitere Anweisungen... for ( ; i <= 3; ) { System. out. println (i); ++i; Informatik-Repetitorium Tag 3 WS 2017/2018 Lehrstuhl für Informatik 2 (Programmiersysteme) 20 / 35
42 Beispiel: Berechnung der n-ten Potenz (I) Aufgabe Gegeben seien zwei positive, ganze Zahlen x und n. Gesucht ist ein Algorithmus, der die n-te Potenz x n von x berechnet und ausgibt. Beispiel x = 3, n = 4 81 Überlegungen x n = x x x... x = 1 x x x... x in jeder Iteration eine Multiplikation mit x durchführen Variable, um das aktuelle Zwischenergebnis zu speichern Variable mit 1 initialisieren (neutrales Element der Multiplikation) wir brauchen n solcher Multiplikationen Laufvariable, die Anzahl an Iterationen mitzählt Bedingung, die die Schleife nach n Iterationen abbricht Informatik-Repetitorium Tag 3 WS 2017/2018 Lehrstuhl für Informatik 2 (Programmiersysteme) 21 / 35
43 Beispiel: Berechnung der n-ten Potenz (II) Aufgabe Gegeben seien zwei positive, ganze Zahlen x und n. Gesucht ist ein Algorithmus, der die n-te Potenz x n von x berechnet und ausgibt. Mögliche Lösung int potenz = 1; for ( int i = 1; i <= n; ++i) { potenz = potenz * x; System.out. println ( potenz ); Übliche Lösung int potenz = 1; for (int i = 0; i < n; ++i) { potenz = potenz * x; System. out. println ( potenz ); Laufvariablen beginnen üblicherweise bei 0 Informatik-Repetitorium Tag 3 WS 2017/2018 Lehrstuhl für Informatik 2 (Programmiersysteme) 22 / 35
44 Vergleich for-schleife while-schleife Beide Schleifen-Arten sind gleich mächtig und können ineinander umgewandelt werden. for-schleifen for-schleifen eignen sich insbesondere dann, wenn die Anzahl an Iterationen vor Betreten der Schleife bekannt bzw. berechenbar ist. while-schleifen while-schleifen eignen sich insbesondere dann, wenn die Anzahl an Iterationen vor Betreten der Schleife unbekannt bzw. nicht (einfach) berechenbar ist. Beispiel: for-schleife int potenz = 1; for ( int i = 0; i < n; ++i) { potenz = potenz * x; System.out. println ( potenz ); Beispiel: while-schleife int n = 1; while (n*n <= y) { int q = n*n; System. out. println (q); n = n + 1; Informatik-Repetitorium Tag 3 WS 2017/2018 Lehrstuhl für Informatik 2 (Programmiersysteme) 23 / 35
45 do-while-schleife: Motivation bisher (for, while): Überprüfung der Bedingung vor jedem Schleifendurchlauf auch vor dem ersten Schleifendurchlauf! Schleifenrumpf wird unter Umständen gar nicht ausgeführt sogenannte kopfgesteuerte oder abweisende Schleifen jetzt (do-while): Überprüfung der Bedingung nach jedem Schleifendurchlauf erstmalig nach dem ersten Schleifendurchlauf! Schleifenrumpf wird mindestens einmal ausgeführt sogenannte fußgesteuerte oder nicht-abweisende Schleife Informatik-Repetitorium Tag 3 WS 2017/2018 Lehrstuhl für Informatik 2 (Programmiersysteme) 24 / 35
46 do-while-schleife Syntax: do-while-schleife do { Anweisungen ; // Schleifenrumpf while ( Bedingung ); // " Schleifenfu ß" Hinweise Schleifenrumpf und Bedingung wie bei der while-schleife allerdings andere Auswertungsreihenfolge (siehe oben) Achtung! Semikolon hinter der Bedingung nicht vergessen! Informatik-Repetitorium Tag 3 WS 2017/2018 Lehrstuhl für Informatik 2 (Programmiersysteme) 25 / 35
47 Ablaufdiagramm der do-while-schleife Syntax: do-while-schleife AnweisungenDavor ; do { RumpfAnweisungen ; while ( Bedingung ); AnweisungenDanach ; Ablaufdiagramm AnweisungenDavor RumpfAnweisungen true Bedingung false AnweisungenDanach Informatik-Repetitorium Tag 3 WS 2017/2018 Lehrstuhl für Informatik 2 (Programmiersysteme) 26 / 35
48 Beispiel: Sechser würfeln (I) Aufgabe Gesucht ist ein Programm, das solange würfelt, bis eine 6 fällt. Hinweis Zufallszahl zwischen 1 und 6 erzeugen: 1 + (int)(math.random()*6) Überlegungen in jeder Iteration eine Zahl würfeln falls 6: Schleife abbrechen falls keine 6: Schleife erneut durchlaufen es muss mindestens einmal gewürfelt werden fußgesteuerte Schleife Informatik-Repetitorium Tag 3 WS 2017/2018 Lehrstuhl für Informatik 2 (Programmiersysteme) 27 / 35
49 Beispiel: Sechser würfeln (II) Aufgabe Gesucht ist ein Programm, das solange würfelt, bis eine 6 fällt. Mögliche Lösung int wuerfel ; do { wuerfel = 1 + (int )( Math. random ()*6); System. out. println ("es wurde eine " + wuerfel + " gew ü rfelt "); while ( wuerfel!= 6); Informatik-Repetitorium Tag 3 WS 2017/2018 Lehrstuhl für Informatik 2 (Programmiersysteme) 28 / 35
50 Komplexe Schleifenbedingungen für alle drei Schleifen-Arten gilt: Bedingung kann komplexer, zusammengesetzter boolescher Ausdruck sein Aufgabe Programm, das solange würfelt, bis eine 6 fällt, aber maximal 3 Mal. Mögliche Lösung int wuerfel ; int anzahl = 0; do { wuerfel = 1 + (int )( Math. random ()*6); System. out. println ("es wurde eine " + wuerfel + " gew ü rfelt "); anzahl = anzahl + 1; while (( wuerfel!= 6) && ( anzahl < 3)); Informatik-Repetitorium Tag 3 WS 2017/2018 Lehrstuhl für Informatik 2 (Programmiersysteme) 29 / 35
51 Sprünge in Schleifen: break/continue break-anweisung ganze Schleife abbrechen Beim Erreichen einer break-anweisung wird die Ausführung der gesamten Schleife frühzeitig abgebrochen. continue-anweisung aktuellen Durchlauf abbrechen Beim Erreichen einer continue-anweisung wird die Ausführung des aktuellen Schleifendurchlaufs frühzeitig abgebrochen und (falls Schleifenbedingung erfüllt) mit dem nächsten Durchlauf weitergemacht. Bei einer for-schleife wird die Fortsetzung ausgeführt. Schlechter Stil... Die Verwendung von break und continue gilt als schlechter Stil, wenn dadurch der reale Ablauf der Schleife schwer nachvollziehbar wird. Wenn möglich, sollte auf die Verwendung von break und continue verzichtet werden. Informatik-Repetitorium Tag 3 WS 2017/2018 Lehrstuhl für Informatik 2 (Programmiersysteme) 30 / 35
52 Beispiel zu break Aufgabe Zahlen von 1 bis 30 bis zur ersten durch 5 oder 7 teilbaren Zahl ausgeben. Mögliche Lösung (geht auch schöner ohne break!) for ( int i = 1; i <= 30; ++ i) { System. out. print (i + " "); if ((i % 5 == 0) (i % 7 == 0)) { break ; Ausgabe Informatik-Repetitorium Tag 3 WS 2017/2018 Lehrstuhl für Informatik 2 (Programmiersysteme) 31 / 35
53 Beispiel zu continue Aufgabe Zahlen von 1 bis 30 ausgeben, die nicht durch 5 oder 7 teilbar sind. Mögliche Lösung (geht auch schöner ohne continue!) for ( int i = 1; i <= 30; ++ i) { if ((i % 5 == 0) (i % 7 == 0)) { continue ; System. out. print (i + " "); Ausgabe Informatik-Repetitorium Tag 3 WS 2017/2018 Lehrstuhl für Informatik 2 (Programmiersysteme) 32 / 35
54 Endlosschleifen für alle Schleifen-Arten gilt: Ausführung des Schleifenrumpfes ist abhängig von einer Bedingung Wiederholung des Schleifenrumpfes solange die Bedingung erfüllt ist Abbruch der Schleife sobald die Bedingung nicht mehr erfüllt ist wenn die Bedingung immer erfüllt ist, also nie false wird: Schleifenrumpf wird unendlich oft ausgeführt Endlosschleife Unerwünschtes Verhalten Bei einer Endlosschleife terminiert das Programm nicht. In den allermeisten Fällen ist dieses Verhalten unerwünscht! Informatik-Repetitorium Tag 3 WS 2017/2018 Lehrstuhl für Informatik 2 (Programmiersysteme) 33 / 35
55 Beispiele für Endlosschleifen Offensichtliche Endlosschleife while ( true ) { System. out. println ("Hallo, Welt!"); Weniger offensichtliche Endlosschleife int i = 1; while (i <= 30) { if ((i % 5 == 0) (i % 7 == 0)) { continue ; System. out. print (i + " "); i = i + 1; Informatik-Repetitorium Tag 3 WS 2017/2018 Lehrstuhl für Informatik 2 (Programmiersysteme) 34 / 35
56 Fragen? Fragen! (hilft auch den anderen)
Einführung in die Programmierung
: Inhalt Einführung in die Programmierung Wintersemester 2010/11 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund Wiederholungen - while - do-while - for
MehrProgrammieren I. Kontrollstrukturen. Heusch 8 Ratz 4.5. www.kit.edu. Institut für Angewandte Informatik
Programmieren I Kontrollstrukturen Heusch 8 Ratz 4.5 KIT Universität des Landes Baden-Württemberg und nationales Großforschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu Arten von Kontrollstrukturen
MehrJava 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
MehrTutorium 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
MehrEinfü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Übersicht Programmablaufsteuerung
Übersicht Programmablaufsteuerung Konditionale Verzweigung: if - else switch-anweisung Schleifenkonstrukte: while, do - while for Schleife Sprung-Anweisungen: break, continue, goto, return Anweisungen
MehrModellierung 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; {
MehrGliederung. 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.
MehrAlgorithmische 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
MehrEinfache Rechenstrukturen und Kontrollfluss II
Einfache Rechenstrukturen und Kontrollfluss II Martin Wirsing in Zusammenarbeit mit Moritz Hammer und Axel Rauschmayer http://www.pst.informatik.uni-muenchen.de/lehre/ss06/infoii/ SS 06 Ziele Lernen imperative
MehrGliederung Programmiersprachen. Programmiersprachen Einführung in C. Kontrollstrukturen. Verzweigung mit IF. Beispiel: Zahlenklassifizieren
Programmiersprachen Einführung in C Teil 5: Prof. Dr. Jörg Schwenk Lehrstuhl für Netz- und Datensicherheit Gliederung Programmiersprachen 1. Von der Maschinensprache zu C 2. Die Struktur von C-Programmen
MehrPrimitive 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.
MehrNoch für heute: primitive Datentypen in JAVA. Primitive Datentypen. Pseudocode. Dezimal-, Binär- und Hexadezimalsystem. der logische Typ boolean
01.11.05 1 Noch für heute: 01.11.05 3 primitie Datentypen in JAVA Primitie Datentypen Pseudocode Name Speichergröße Wertgrenzen boolean 1 Byte false true char 2 Byte 0 65535 byte 1 Byte 128 127 short 2
MehrProgrammieren 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
MehrMIKROPROZESSOR PROGRAMMIERUNG 8. VORLESUNG. LV-Nr. 439.026 SS2007 1 INSTITUT FÜR ELEKTRONIK BIT
MIKROPROZESSOR PROGRAMMIERUNG 8. VORLESUNG BIT LV-Nr. 439.026 SS2007 1 Datendefinitionen b) Unterteilung nach Typen: (Teil 2) void leer Pointer 2/4 Bytes Adresse von Objekten Arrays bei allen Datentypen
MehrProgrammiervorkurs WS 2012/2013. Schleifen und Methoden
Programmiervorkurs WS 2012/2013 Schleifen und Methoden Ein Befehl soll mehrfach ausgeführt werden, z.b.: public class MyCounter { System.out.println(1); Ein Befehl soll mehrfach ausgeführt werden, z.b.:
MehrPrinzipielle Ausführungsvarianten I
Software Entwicklung 1 Annette Bieniusa / Arnd Poetzsch-Heffter Unser erstes Java Programm AG Softech FB Informatik TU Kaiserslautern Bieniusa/Poetzsch-Heffter Software Entwicklung 1 2/ 39 Hello World!
MehrJava-Vorkurs 2015. Wintersemester 15/16
Java-Vorkurs 2015 Wintersemester 15/16 Herzlich Willkommen! package de.unistuttgart.47.01.javavorkurs; public class WelcomeErstis { public static void main(string[] args){ System.out.println( Herzlich
Mehr620.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
MehrPython Programmieren. Variablen, Ausdrücke und Anweisungen
Python Programmieren Funktionen Module und Namensräume Datentypen in Python Was noch zu sagen bleibt... richard rascher-friesenhausen Programmierung SS 12 Daten: Wert und Typ Variablen Variablennamen und
MehrSteueranweisungen. Eike Schallehn Grundlagen der Informatik für Ingenieure Wintersemester 08/09 2 32
Steueranweisungen Bisher Programme mit Funktionen als einfache Folge von Befehlen Ablauf von Programmen darüber hinaus steuerbar über Bedingte Ausführung: Ausführung von Programmteilen (Befehlen oder Programmblöcken)
MehrInformatik. Studiengang Chemische Technologie. Michael Roth WS 2012/2013. michael.roth@h-da.de. Hochschule Darmstadt -Fachbereich Informatik-
Informatik Studiengang Chemische Technologie Michael Roth michael.roth@h-da.de Hochschule Darmstadt -Fachbereich Informatik- WS 2012/2013 Inhalt Teil VII Einstieg in Java I Michael Roth (h_da) Informatik
MehrSoftwareentwicklung 1. Übungsaufgabe 4 Kontrollstrukturen
Softwareentwicklung Übungsaufgabe 4 Kontrollstrukturen Wintersemester 2006/2007 Prof. Dr. rer.nat. Richard Alznauer Dipl.-Ing. (FH) Joachim Hampel Dipl.-Ing. (FH) Marc Jüttner Version.0.., 2. Dezember
MehrEntwurf 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
MehrAutor: Michael Spahn Version: 1.0 1/10 Vertraulichkeit: öffentlich Status: Final Metaways Infosystems GmbH
Java Einleitung - Handout Kurzbeschreibung: Eine kleine Einführung in die Programmierung mit Java. Dokument: Autor: Michael Spahn Version 1.0 Status: Final Datum: 23.10.2012 Vertraulichkeit: öffentlich
MehrPHP 5.4 ISBN 978-3-86249-327-2. Stephan Heller, Andreas Dittfurth 1. Ausgabe, September 2012. Grundlagen zur Erstellung dynamischer Webseiten GPHP54
PHP 5.4 Stephan Heller, Andreas Dittfurth 1. Ausgabe, September 2012 Grundlagen zur Erstellung dynamischer Webseiten ISBN 978-3-86249-327-2 GPHP54 5 PHP 5.4 - Grundlagen zur Erstellung dynamischer Webseiten
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 CoMa I WS 08/09 1/15 CoMa I Programmierziele Linux bedienen Code umschreiben strukturierte Datentypen Anweisungen und Kontrollstrukturen
Mehr5. 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
MehrJava-Programmierung mit NetBeans
Java-Programmierung mit NetBeans Steuerstrukturen Dr. Henry Herper Otto-von-Guericke-Universität Magdeburg - WS 2012/13 Steuerstrukturen Steuerstrukturen Verzweigungen Alternativen abweisende nichtabweisende
MehrAlgorithmen am Beispiel Java I www.java.com/de
Algorithmen am Beispiel Java I www.java.com/de Entwicklungsumgebung: JDK 6.1.0 empfohlener Editor : http://notepad-plus.sourceforge.net/de/site.htm Download Java SE Runtime Environment (deutsch): http://www.soft-ware.net/add.asp?url=http%3a%2f%2fjava-runtime-environment.software.net%2fdownload2.asp%3fcode%3djbibb%26pro%3dp02231
MehrSteuern des GSR-Interface mit QBasic
Steuern des GSR-Interface mit QBasic Erstellt von Jochen Sendler, Geschwister-Scholl-Realschule Mannheim Inhaltsverzeichnis 1. Die Programmiersprache QBasic 3 2. Starten von QBasic 3 3. Ansteuern einzelner
MehrLogische Verknüpfungen. while-schleifen. Zahlendarstellung auf dem Computer. Formatierung von Zahlen in MATLAB.
Logische Verknüpfungen. while-schleifen. Zahlarstellung auf dem Computer. Formatierung von Zahlen in MATLAB. Logische Verknüpfungen In der letzten Sitzung haben wir kennengelernt, wie wir Zahlen mit Operationen
MehrDr. 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
MehrComputergrundlagen Programmieren in C
Computergrundlagen Programmieren in C Axel Arnold Institut für Computerphysik Universität Stuttgart Wintersemester 2013/14 Die Sprache C D. M. Ritchie, 1941 2011 Entwickelt 1971-1973 aktueller Standard:
Mehr4. 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
MehrKontrollstrukturen, 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[E-1] Wolf, Jürgen: C von A bis Z. Galileo Computing, 3. Auflage, 2009 http://download2.galileo-press.de/openbook/galileocomputing_c_von_a_bis_z.
Literatur [E-1] Wolf, Jürgen: C von A bis Z. Galileo Computing, 3. Auflage, 2009 http://download2.galileo-press.de/openbook/galileocomputing_c_von_a_bis_z.zip [E-2] M.K. Johnson, E.W. Troan: Anwendungen
MehrDie Programmiersprache C
Die Programmiersprache C höhere Programmiersprache (mit einigen Assembler-ähnlichen Konstrukten) gut verständliche Kommandos muss von Compiler in maschinenlesbaren Code (Binärdatei) übersetzt werden universell,
MehrEinfache Arrays. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung
Annabelle Klarl Zentralübung zur Vorlesung Einführung in die Informatik: http://www.pst.ifi.lmu.de/lehre/wise-13-14/infoeinf WS13/14 Action required now 1. Smartphone: installiere die App "socrative student"
MehrJava 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
MehrHOCHSCHULE KONSTANZ TECHNIK, WIRTSCHAFT UND GESTALTUNG. Das Luzifer-Rätsel. Prof. Dr. Hartmut Plesske Wintersemester 2008/09. von.
HOCHSCHULE KONSTANZ TECHNIK, WIRTSCHAFT UND GESTALTUNG Fakultät Informatik Das Luzifer-Rätsel Prof. Dr. Hartmut Plesske Wintersemester 2008/09 von Max Nagl nagl@fh-konstanz.de Inhaltsverzeichnis Inhaltsverzeichnis
MehrErwin Grüner 09.02.2006
FB Psychologie Uni Marburg 09.02.2006 Themenübersicht Folgende Befehle stehen in R zur Verfügung: {}: Anweisungsblock if: Bedingte Anweisung switch: Fallunterscheidung repeat-schleife while-schleife for-schleife
MehrHello World. Javakurs 2014, 1. Vorlesung. Sebastian Schuck. basierend auf der Vorlage von Arne Kappen. wiki.freitagsrunde.org. 3.
Hello World Javakurs 2014, 1. Vorlesung Sebastian Schuck basierend auf der Vorlage von Arne Kappen wiki.freitagsrunde.org 3. März 2014 This work is licensed under the Creative Commons Attribution-ShareAlike
MehrHEUTE. 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
MehrC-Vorrangregeln. Version 1.3 6.7.2009. email: tb@ostc.de Web: www.ostc.de
C-Vorrangregeln Version 1.3 6.7.2009 email: tb@ostc.de Web: www.ostc.de Die Informationen in diesem Skript wurden mit größter Sorgfalt erarbeitet. Dennoch können Fehler nicht vollständig ausgeschlossen
MehrNumerische Datentypen. Simon Weidmann
Numerische Datentypen Simon Weidmann 08.05.2014 1 Ganzzahlige Typen 1.1 Generelles Bei Datentypen muss man immer zwei elementare Eigenschaften unterscheiden: Zuerst gibt es den Wertebereich, zweitens die
MehrSchleifenprogrammierung in C/C++, Fortran und Pascal
Schleifenprogrammierung in C/C++, Fortran und Pascal Stefan Ackermann Mathematisches Institut der Universität Leipzig 8. April 2009 1 Die kopfgesteuerte Schleife Bei der kopfgesteuerten Schleife steht
MehrEinführung in die Programmierung mehr Ein- und Ausgabe, Programmfluss, Funktionen. Arvid Terzibaschian
Einführung in die Programmierung Arvid Terzibaschian 1 Klausurtermine Abstimmung beendet: Einführung in die Programmierung Freitag, 28.2.2014, wahrscheinlich 11:00 Basiskonzepte des Rechnerbetriebs Freitag,
MehrEinführung in die Informatik für Hörer aller Fakultäten II. Andreas Podelski Stephan Diehl Uwe Waldmann
Einführung in die Informatik für Hörer aller Fakultäten II Andreas Podelski Stephan Diehl Uwe Waldmann 1 Einführung in die Informatik für Hörer aller Fakultäten II Andreas Podelski Stephan Diehl Uwe Waldmann
MehrIT-Basics 2. DI Gerhard Fließ
IT-Basics 2 DI Gerhard Fließ Wer bin ich? DI Gerhard Fließ Telematik Studium an der TU Graz Softwareentwickler XiTrust www.xitrust.com www.tugraz.at Worum geht es? Objektorientierte Programmierung Konzepte
MehrÜbungen zur Vorlesung Einführung in die Informatik Wintersemester 2010/11
Übungen zur Vorlesung Einführung in die Informatik Wintersemester 2010/11 Fakultät für Informatik Lehrstuhl 1 Dr. Lars Hildebrand Carla Delgado-Battenfeld Fatih Gedikli Tobias Marschall Benjamin Schowe
MehrAb 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
MehrC/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)
MehrEinfü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).
MehrPrinzipieller Grundaufbau eines einfachen C-Programmes
Prinzipieller Grundaufbau eines einfachen C-Programmes C unterscheidet zwischen Groß- und Kleinschreibung! Siehe zu den folgenden Erklärungen auch das Programm am Ende der nächsten Seite. Am Anfang aller
MehrPython Programmierung. Dipl.-Ing.(FH) Volker Schepper
Python Programmierung Kontaktdaten Homepage: http://wwwlehre.dhbw-stuttgart.de/~schepper/ Email: Volker. Schepper [A@T] yahoo.de Vorlesung Skriptsprachen Vorlesung: 06.03.2013 13.03.2013 20.03.2013 27.03.2013
MehrPraktikum 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
MehrProgrammiertechnik Operatoren, Kommentare, Ein-/Ausgabe
Programmiertechnik Operatoren, Kommentare, Ein-/Ausgabe Prof. Dr. Oliver Haase Oliver Haase Hochschule Konstanz 1 Was sind Operatoren? Ein Operator ist eine in die Programmiersprache eingebaute Funktion,
MehrInformatik für Schüler, Foliensatz 12 Pseudo-Zufallszahlen
rof. G. Kemnitz Institut für Informatik, Technische Universität Clausthal 14. April 2010 1/14 Informatik für Schüler, Foliensatz 12 Pseudo-Zufallszahlen Prof. G. Kemnitz Institut für Informatik, Technische
MehrP r o g r a m m a b l a u f s t e u e r u n g
Jede Programmiersprache braucht Konstrukte zur Steuerung des Programmablaufs. Grundsätzlich unterscheiden wir Verzweigungen und Schleifen. Schleifen dienen dazu, bestimmte Anweisungen wiederholt auszuführen,
MehrL6. Operatoren und Ausdrücke
L6. Operatoren und Ausdrücke 1. Arithmetische Operatoren: +, -, *, /, %, --, ++ 2. Zuweisung-Operatoren: =, +=, -=, *=, /= 3. Vergleichsoperatoren: =, ==,!= 4. Logische Operatoren:!, &&, 5.
MehrProgrammieren in C. Felder, Schleifen und Fließkommaarithmetik. Prof. Dr. Nikolaus Wulff
Programmieren in C Felder, Schleifen und Fließkommaarithmetik Prof. Dr. Nikolaus Wulff Addition von Zahlen 1 2 3 4 5 #include int main() { int x,y,z,sum; x = 1; y = 2; z = 4; sum = x + y + z;
MehrFallunterscheidung: 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
MehrEine 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,
MehrMultimedia im Netz Wintersemester 2011/12
Multimedia im Netz Wintersemester 2011/12 Übung 01 Betreuer: Verantwortlicher Professor: Sebastian Löhmann Prof. Dr. Heinrich Hussmann Organisatorisches 26.10.2011 MMN Übung 01 2 Inhalte der Übungen Vertiefung
Mehr2 Einfache Rechnungen
2 Einfache Rechnungen 2.1 Zahlen Computer, auch bekannt als Rechner, sind sinnvoller eingesetzt, wenn sie nicht nur feste Texte ausgeben, sondern eben auch rechnen. Um das Rechnen mit Zahlen zu verstehen,
MehrProgrammierkurs 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
MehrProgrammiersprachen Einführung in C. Unser erstes C-Programm. Unser erstes C-Programm. Unser erstes C-Programm. Unser erstes C-Programm
Programmiersprachen Einführung in C Teil 2: Prof. Dr. int main (int argc, char *argv[]) int sum = 0; for (i = 0; i
MehrVBA-Programmierung: Zusammenfassung
VBA-Programmierung: Zusammenfassung Programmiersprachen (Definition, Einordnung VBA) Softwareentwicklung-Phasen: 1. Spezifikation 2. Entwurf 3. Implementierung Datentypen (einfach, zusammengesetzt) Programmablaufsteuerung
MehrInhaltsverzeichnis. 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
MehrModul 122 VBA Scribt.docx
Modul 122 VBA-Scribt 1/5 1 Entwicklungsumgebung - ALT + F11 VBA-Entwicklungsumgebung öffnen 2 Prozeduren (Sub-Prozeduren) Eine Prozedur besteht aus folgenden Bestandteilen: [Private Public] Sub subname([byval
MehrEinführung in die C++ Programmierung für Ingenieure
Einführung in die C++ Programmierung für Ingenieure MATTHIAS WALTER / JENS KLUNKER Universität Rostock, Lehrstuhl für Modellierung und Simulation 14. November 2012 c 2012 UNIVERSITÄT ROSTOCK FACULTY OF
Mehr5.4 Klassen und Objekte
5.4 Klassen und Objekte Zusammenfassung: Projekt Figuren und Zeichner Figuren stellt Basisklassen für geometrische Figuren zur Verfügung Zeichner bietet eine übergeordnete Klasse Zeichner, welche die Dienstleistungen
MehrDer 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.
MehrTeil IV. Grundlagen der Programmierung
Teil IV Grundlagen der Programmierung Überblick 1 Einleitung zu C und C++ Aufbau von Programmen/Dateien Steueranweisungen Funktionen Mehr zu Datentypen: Felder, Zeiger und Strukturen Arbeit mit Dateien
Mehr1. Der Einstieg in Java. Was heißt Programmieren?
1. Der Einstieg in Java Lernziele: Am Ende dieses Kapitels sollen Sie wissen, aus welchen Bestandteilen ein Java-Programm besteht, Java-Programme übersetzen und ausführen können, Möglichkeiten der Kommentierung
MehrAndroid will doch nur spielen. Java Eine kurze Einführung
Android will doch nur spielen Java Eine kurze Einführung Agenda Einführung in Java Syntax und Semantik Komplexe Datenstrukturen OOP Weitere Java-Elemente 2 Einführung in Java Was ist Java? lt. Sun: einfach
MehrEinfü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)
MehrGrundlagen von C. Ausarbeitung von Jonas Gresens
Grundlagen von C Ausarbeitung von Jonas Gresens 1 Allgemein Proseminar C Grundlagen und Konzepte Arbeitsbereich Wissenschaftliches Rechnen Fachbereich Informatik Fakultät für Mathematik, Informatik und
MehrProgrammieren mit Python
Pete Moor Klasse 14r Programmieren mit Python In diesem Kurs lernen Sie:... nicht in erster Linie zu programmieren, denn dazu braucht es sehr viel know-how und jahrelange Routine. Sie erfahren jedoch,
MehrProgrammieren I. Prinzipieller Ablauf. Eigenschaften von JAVA. Source-Code Javac Bytecode. Java Virtual Machine (Java, Browser, Appletviewer)
Programmieren I Grundlagen von JAVA Dr. Klaus Höppner Hello World in JAVA Hochschule Darmstadt WS 2007/2008 Elementare Datentypen 1 / 17 2 / 17 Eigenschaften von JAVA Prinzipieller Ablauf Plattform-und
MehrProgrammierkurs Java
Programmierkurs Java Konstruktor, Statische Methoden Packages Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/fischer Initialisierung von Datenstrukturen
Mehr5. Abstrakte Klassen. Beispiel (3) Abstrakte Klasse. Beispiel (2) Angenommen, wir wollen die folgende Klassenhierarchie implementieren:
5. Abstrakte Klassen Beispiel 5. Abstrakte Klassen 5. Abstrakte Klassen Beispiel Beispiel (3) Angenommen, wir wollen die folgende Klassenhierarchie implementieren: Probleme des Implementierungsvorschlags:
MehrSprachbeschreibung und Erweiterung
Sprachbeschreibung und Erweiterung Worte, Sprachen, reguläre Ausdrücke, Automaten, BNF, Grammatik, Syntax- Diagramme, Spracherweiterungen do, for, break, switch Formale Beschreibung von Programmiersprachen
MehrNassi-Shneiderman-Diagramm - Wikipedia
Nassi-Shneiderman-Diagramm aus Wikipedia, der freien Enzyklopädie Ein Nassi-Shneiderman-Diagramm ist eine Entwurfsmethode für die strukturierte Programmierung, die 1972/73 von Dr. Isaac Nassi und Dr. Ben
MehrEinführung in die Java- Programmierung
Einführung in die Java- Programmierung Dr. Volker Riediger Der hat die früher handschriftlichen Folien lesbar gemacht. Tassilo Horn riediger horn@uni-koblenz.de WiSe 2012/13 1 Heutige Themen Hello World!
MehrEinheit Variablen in der Programmiersprache C Variablen-Modell, Variablen-Vereinbarungen
Einheit Variablen in der Programmiersprache C Variablen-Modell, Variablen-Vereinbarungen Kurs C/C++ Programmierung, WS 2008/2009 Dipl.Inform. R. Spurk Arbeitsgruppe Programmierung FR 6.2 Informatik R.
MehrReihungen. Martin Wirsing. in Zusammenarbeit mit Matthias Hölzl und Nora Koch 11/03
Reihungen Martin Wirsing in Zusammenarbeit mit Matthias Hölzl und Nora Koch 11/03 2 Ziele Die Datenstruktur der Reihungen verstehen: mathematisch und im Speicher Grundlegende Algorithmen auf Reihungen
MehrII. 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
MehrDAP2-Programmierpraktikum Einführung in C++ (Teil 1)
DAP2-Programmierpraktikum Einführung in C++ (Teil 1) Carsten Gutwenger 11. April 2008 Lehrstuhl 11 Algorithm Engineering Fakultät für Informatik, TU Dortmund Überblick Mein erstes C++-Programm Namensräume
MehrProgrammiervorkurs. Organisation: Steffen Gebert, Alexander Wolff. Tutoren: Jürgen Zöller, Jonathan Stoll. Wintersemester 2012/2013
Programmiervorkurs Wintersemester 2012/2013 Organisation: Steffen Gebert, Alexander Wolff Tutoren: Jürgen Zöller, Jonathan Stoll Kontakt (für Organisatorisches, Fehler auf Folien...): Steffen Gebert steffen.gebert@informatik.uni-wuerzburg.de
MehrRepetitorium Informatik (Java)
Repetitorium Informatik (Java) Tag 8 Lehrstuhl für Informatik 2 (Programmiersysteme) Übersicht 1 Vererbung Vererbung Statischer Typ Dynamischer Typ 2 Polymorphie Overloading: Methoden überladen Overriding:
MehrComputeranwendung und Programmierung (CuP)
Computeranwendung und Programmierung (CuP) VO: Peter Auer (Informationstechnologie) UE: Norbert Seifter (Angewandet Mathematik) Organisatorisches (Vorlesung) Vorlesungszeiten Montag 11:15 12:45 Freitag
MehrGrundlagen. 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
Mehr5. Abstrakte Klassen
5. Abstrakte Klassen Beispiel 5. Abstrakte Klassen Angenommen, wir wollen die folgende Klassenhierarchie implementieren: Vogel Amsel Drossel Fink Peter Becker, Programiersprache Java FH Bonn-Rhein-Sieg,
MehrKontrollstrukturen. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung
Annabelle Klarl Zentralübung zur Vorlesung Einführung in die Informatik: http://www.pst.ifi.lmu.de/lehre/wise-14-15/infoeinf WS14/15 Action required now 1. Smartphone: installiere die App "socrative student"
MehrÜbung 9 - Lösungsvorschlag
Universität Innsbruck - Institut für Informatik Datenbanken und Informationssysteme Prof. Günther Specht, Eva Zangerle Besprechung: 15.12.2008 Einführung in die Informatik Übung 9 - Lösungsvorschlag Aufgabe
MehrAngewandte 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
MehrKurzeinführung in C++
Kurzeinführung in C++ Johannes J. Schneider 27.10.2004 1 Einleitung C++ ist eine heutzutage in vielen Bereichen sehr häufig verwendete Programmiersprache, die auf der Programmiersprache C aufsetzt, aber
MehrInformatik 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