3. Java - Sprachkonstrukte I

Größe: px
Ab Seite anzeigen:

Download "3. Java - Sprachkonstrukte I"

Transkript

1 61 3. Java - Sprachkonstrukte I Namen und Bezeichner, Variablen, Zuweisungen, Konstanten, Datentypen, Operationen, Auswerten von Ausdrücken, Typkonversionen

2 Namen und Bezeichner 62 Ein Programm (also Klasse) braucht einen Namen public class SudokuSolver {...

3 Namen und Bezeichner 62 Ein Programm (also Klasse) braucht einen Namen public class SudokuSolver {... Konvention für Klassennamen: CamelCase benützen Wörter sind zusammengeschrieben mit jeweils einem Grossbuchstaben

4 62 Namen und Bezeichner Ein Programm (also Klasse) braucht einen Namen public class SudokuSolver {... Konvention für Klassennamen: CamelCase benützen Wörter sind zusammengeschrieben mit jeweils einem Grossbuchstaben Erlaubte Namen für Entitäten im Programm: Namen beginnen mit einem Buchstaben oder _ oder $ Danach Folge von Buchstaben, Zahlen oder _ oder $

5 Namen - was ist erlaubt 63 _myname AN$WE4_1S_42 TheCure strictfp side-swipe me@home 49ers $bling$ Ph.D s

6 Namen - was ist erlaubt 63 _myname AN$WE4_1S_42 TheCure strictfp side-swipe me@home 49ers $bling$ Ph.D s

7 Namen - was ist erlaubt 63 _myname AN$WE4_1S_42 TheCure side-swipe me@home strictfp?! 49ers $bling$ Ph.D s

8 Schlüsselwörter 64 Folgende Wörter werden von der Sprache bereits benützt und können deshalb nicht als Namen benützt werden: abstract continue for new switch assert default goto package synchronized boolean do if private this break double implements protected throw byte else import public throws case enum instanceof return transient catch extends int short try char final interface static void class finally long strictfp volatile const float native super while

9 65 Variablen und Konstanten Variablen sind Behälter für einen Wert Haben einen Datentyp und einen Namen Der Datentyp bestimmt, welche Art von Werten in der Variable erlaubt sind x y f c

10 65 Variablen und Konstanten Variablen sind Behälter für einen Wert Haben einen Datentyp und einen Namen Der Datentyp bestimmt, welche Art von Werten in der Variable erlaubt sind int x int y float f char c

11 65 Variablen und Konstanten Variablen sind Behälter für einen Wert Haben einen Datentyp und einen Namen Der Datentyp bestimmt, welche Art von Werten in der Variable erlaubt sind int x int y float f char c f a

12 65 Variablen und Konstanten Variablen sind Behälter für einen Wert Haben einen Datentyp und einen Namen Der Datentyp bestimmt, welche Art von Werten in der Variable erlaubt sind int x int y float f char c Deklaration in Java: f a int x = 23, y = 42; float f; char c = a ;

13 65 Variablen und Konstanten Variablen sind Behälter für einen Wert Haben einen Datentyp und einen Namen Der Datentyp bestimmt, welche Art von Werten in der Variable erlaubt sind int x int y float f char c Deklaration in Java: f a int x = 23, y = 42; float f; char c = a ; Initialisierung

14 66 Konstanten Schlüsselwort final Der Wert der Variable kann genau einmal gesetzt werden Beispiel final int maxsize = 100; Tip: Benützen Sie final immer, es sei denn der Wert muss tatsächlich veränderlich sein.

15 Standardtypen 67 Datentyp Definition Wertebereich Initialwert byte 8-bit Ganzzahl 128,..., short 16-bit Ganzzahl ,..., int 32-bit Ganzzahl 2 31,..., long 64-bit Ganzzahl 2 63,..., L float 32-bit Fliesskommazahl ±1.4E 45,..., ±3.4E f double 64-bit Fliesskommazahl ±4.9E 324,..., ±1.7E d boolean Wahrheitswert true, false false char Unicode-16 Zeichen \u0000,..., a, b,..., \uffff \u0000 String Zeichenkette null

16 Typen und Speicherbelegung Zur Erinnerung: Speicherzellen enthalten 1 Byte = 8 bit

17 Typen und Speicherbelegung Zur Erinnerung: Speicherzellen enthalten 1 Byte = 8 bit byte

18 Typen und Speicherbelegung Zur Erinnerung: Speicherzellen enthalten 1 Byte = 8 bit boolean byte

19 Typen und Speicherbelegung Zur Erinnerung: Speicherzellen enthalten 1 Byte = 8 bit boolean byte short

20 Typen und Speicherbelegung Zur Erinnerung: Speicherzellen enthalten 1 Byte = 8 bit boolean byte short, char

21 Typen und Speicherbelegung Zur Erinnerung: Speicherzellen enthalten 1 Byte = 8 bit boolean byte short, char int, float

22 Typen und Speicherbelegung 68 Zur Erinnerung: Speicherzellen enthalten 1 Byte = 8 bit boolean byte short, char int, float long, double

23 Literale: Ganzzahlen 69 Typ int (oder short, byte) 12 : Wert 12-3 : Wert 3

24 Literale: Ganzzahlen 69 Typ int (oder short, byte) 12 : Wert 12-3 : Wert 3 Typ long 25_872_224L : Wert

25 Literale: Ganzzahlen 69 Typ int (oder short, byte) 12 : Wert 12-3 : Wert 3 Typ long 25_872_224L : Wert Tip: Unterstriche zwischen Zahlen sind erlaubt!

26 Literale: Fliesskommazahlen 70 unterscheiden sich von Ganzzahlliteralen 1 ganzzahliger Teil

27 Literale: Fliesskommazahlen 70 unterscheiden sich von Ganzzahlliteralen durch Angabe von Dezimalkomma 1.0 : Typ double, Wert ganzzahliger Teil fraktionaler Teil

28 Literale: Fliesskommazahlen 70 unterscheiden sich von Ganzzahlliteralen durch Angabe von Dezimalkomma 1.0 : Typ double, Wert 1 1 e-7 oder Exponent. 1e3 : Typ double, Wert 1000 ganzzahliger Teil Exponent

29 Literale: Fliesskommazahlen 70 unterscheiden sich von Ganzzahlliteralen durch Angabe von Dezimalkomma 1.0 : Typ double, Wert 1 und / oder Exponent. 1e3 : Typ double, Wert 1000 ganzzahliger Teil 1.23e-7 fraktionaler Teil Exponent 1.23e-7 : Typ double, Wert

30 Literale: Fliesskommazahlen unterscheiden sich von Ganzzahlliteralen durch Angabe von Dezimalkomma 1.0 : Typ double, Wert f : Typ float, Wert 1.27 und / oder Exponent. 1e3 : Typ double, Wert 1000 ganzzahliger Teil 1.23e-7f fraktionaler Teil Exponent 1.23e-7 : Typ double, Wert e-7f : Typ float, Wert

31 Literale: Zeichen und Zeichenketten 71 Einzelne Zeichen: a : Typ char, Wert 97

32 Literale: Zeichen und Zeichenketten 71 Einzelne Zeichen: a : Typ char, Wert 97 Zeichenketten: "Hello There!" : Typ String

33 Literale: Zeichen und Zeichenketten 71 Einzelne Zeichen: a : Typ char, Wert 97 Zeichenketten: "Hello There!" : Typ String "a" : Typ String

34 Literale: Zeichen und Zeichenketten 71 Einzelne Zeichen: a : Typ char, Wert 97 Zeichenketten: "Hello There!" : Typ String "a" : Typ String Achtung: Zeichen und Zeichenketten sind zwei unterschiedliche Dinge!

35 Zeichen: In ASCII Tabelle 72

36 Wertzuweisungen 73 Kopiert einen Wert in die Variable x In Pseudocode: x Wert In Java: x = Wert x (Kopie) Wert

37 Wertzuweisungen 73 Kopiert einen Wert in die Variable x In Pseudocode: x Wert In Java: x = Wert x Wert Wert

38 Wertzuweisungen 73 Kopiert einen Wert in die Variable x In Pseudocode: x Wert In Java: x = Wert x Wert Wert = ist der Zuweisungsoperator und nicht ein Vergleich! int y = 42 ist also Deklaration + Wertzuweisung in einem.

39 Wertzuweisungen 74 Beispiele int a = 3; double b; b = 3.141; int c = a = 0; String name = "Inf";

40 Wertzuweisungen 74 Beispiele int a = 3; double b; b = 3.141; int c = a = 0; Eine verschachtelte Zuweisung: Der Ausdruck a = 0 speichert den Wert 0 in Variable a. und gibt den Wert danach zurück String name = "Inf";

41 Arithmetische Binäre Operatoren 75 Infix Notation: x op y mit folgenden Operatoren op: + / % Modulo

42 75 Arithmetische Binäre Operatoren Infix Notation: x op y mit folgenden Operatoren op: + / % Modulo Präzedenz: Punkt (und Modulo) vor Strich Assoziativität: Auswertung von Links nach Rechts

43 Arithmetische Binäre Operatoren 76 Division x / y: Ganzzahldivision falls x und y Ganzzahlen sind.

44 76 Arithmetische Binäre Operatoren Division x / y: Ganzzahldivision falls x und y Ganzzahlen sind. Division x / y: Fliesskommadivision falls x oder y eine Fliesskommazahl ist.

45 76 Arithmetische Binäre Operatoren Division x / y: Ganzzahldivision falls x und y Ganzzahlen sind. Division x / y: Fliesskommadivision falls x oder y eine Fliesskommazahl ist. Beispiele Ganzzahldivision und Modulo 5 / 3 ergibt 1 5 / 3 ergibt 1 5 % 3 ergibt 2 5 % 3 ergibt 2

46 Arithmetische Zuweisung 77 x = x + y x += y Analog für,, /, %

47 Arithmetische Zuweisung 77 x = x + y x += y Beispiele: x = 3; // x = x 3 name += "x" // name = name + "x" num = 2; // num = num 2 Analog für,, /, %

48 Arithmetische Unäre Operatoren 78 Prefix Notation: + x oder x

49 Arithmetische Unäre Operatoren 78 Prefix Notation: + x oder x Präzedenz: Unäre Operatoren binden stärker als binäre.

50 Arithmetische Unäre Operatoren 78 Prefix Notation: + x oder x Präzedenz: Unäre Operatoren binden stärker als binäre. Beispiele Angenommen x ist 3 2 x ergibt 6 x +1 ergibt 4

51 Inkrement/Dekrement Operatoren 79 Inkrement Operatoren ++x und x++ haben den gleichen Effekt: x x + 1.Aber unterschiedliche Rückgabewerte:

52 Inkrement/Dekrement Operatoren 79 Inkrement Operatoren ++x und x++ haben den gleichen Effekt: x x + 1.Aber unterschiedliche Rückgabewerte: Präfixoperator ++x gibt neuen Wert zurück: a = ++x; x = x + 1; a = x;

53 79 Inkrement/Dekrement Operatoren Inkrement Operatoren ++x und x++ haben den gleichen Effekt: x x + 1.Aber unterschiedliche Rückgabewerte: Präfixoperator ++x gibt neuen Wert zurück: a = ++x; x = x + 1; a = x; Postfixoperator x++ gibt den alten Wert zurück: a = x++; temp = x; x = x + 1; a= temp;

54 79 Inkrement/Dekrement Operatoren Inkrement Operatoren ++x und x++ haben den gleichen Effekt: x x + 1.Aber unterschiedliche Rückgabewerte: Präfixoperator ++x gibt neuen Wert zurück: a = ++x; x = x + 1; a = x; Postfixoperator x++ gibt den alten Wert zurück: a = x++; temp = x; x = x + 1; a= temp; Präzedenz: Inkrement und Dekrement binden stärker als unäre Operatoren.

55 79 Inkrement/Dekrement Operatoren Inkrement Operatoren ++x und x++ haben den gleichen Effekt: x x + 1.Aber unterschiedliche Rückgabewerte: Präfixoperator ++x gibt neuen Wert zurück: a = ++x; x = x + 1; a = x; Postfixoperator x++ gibt den alten Wert zurück: a = x++; temp = x; x = x + 1; a= temp; Präzedenz: Inkrement und Dekrement binden stärker als unäre Operatoren. Analog für x und x.

56 Inkrement/Dekrement Operatoren 80 Beispiele Angenommen x ist initial 2 y = ++x 3 y = x++ 3

57 Inkrement/Dekrement Operatoren 80 Beispiele Angenommen x ist initial 2 y = ++x 3 ergibt: x ist 3 und y ist 9 y = x++ 3

58 Inkrement/Dekrement Operatoren 80 Beispiele Angenommen x ist initial 2 y = ++x 3 ergibt: x ist 3 und y ist 9 y = x++ 3 ergibt: x ist 3 und y ist 6

59 81 Ausdrücke (Expressions) repräsentieren Berechnungen sind entweder primär oder zusammengesetzt aus anderen Ausdrücken, mit Hilfe von Operatoren sind statisch typisiert Analogie: Baukasten

60 Ausdrücke (Expressions) 82 Beispiele primär: 4.1d oder x oder "Hi" zusammengesetzt: x + y oder f 2.1f Der Typ von f ist float

61 Celsius zu Fahrenheit 83 public class Main { } public static void main(string[] args) { Out.print("Celsius: "); int celsius = In.readInt(); float fahrenheit = 9 * celsius / ; Out.println("Fahrenheit: " + fahrenheit); }

62 Celsius zu Fahrenheit 83 public class Main { } public static void main(string[] args) { Out.print("Celsius: "); int celsius = In.readInt(); float fahrenheit = 9 * celsius / ; Out.println("Fahrenheit: " + fahrenheit); } Beispiel: 15 Celsius sind 59 Fahrenheit

63 Celsius zu Fahrenheit - Analye 84 9 * celsius / Arithmetischer Ausdruck,

64 Celsius zu Fahrenheit - Analye 84 9 * celsius / Arithmetischer Ausdruck, drei Literale, eine Variable, drei Operatorsymbole

65 Celsius zu Fahrenheit - Analye 84 9 * celsius / Arithmetischer Ausdruck, drei Literale, eine Variable, drei Operatorsymbole

66 Celsius zu Fahrenheit - Analye 84 9 * celsius / Arithmetischer Ausdruck, drei Literale, eine Variable, drei Operatorsymbole

67 Celsius zu Fahrenheit - Analye 84 9 * celsius / Arithmetischer Ausdruck, drei Literale, eine Variable, drei Operatorsymbole Wie ist der Ausdruck geklammert?

68 Regel 1: Präzedenz 85 Multiplikative Operatoren (*, /, %) haben höhere Präzedenz ("binden stärker") als additive Operatoren (+, -).

69 Regel 1: Präzedenz 85 Multiplikative Operatoren (*, /, %) haben höhere Präzedenz ("binden stärker") als additive Operatoren (+, -). Beipsiel 9 * celsius / bedeutet (9 * celsius / 5) + 32

70 Regel 2: Assoziativität 86 Arithmetische Operatoren (*, /, %, +, -) sind linksassoziativ: bei gleicher Präzedenz erfolgt Auswertung von links nach rechts.

71 Regel 2: Assoziativität 86 Arithmetische Operatoren (*, /, %, +, -) sind linksassoziativ: bei gleicher Präzedenz erfolgt Auswertung von links nach rechts. Beispiel 9 * celsius / bedeutet ((9 * celsius) / 5) + 32

72 Regel 3: Stelligkeit 87 Unäre Operatoren +, - vor binären +, -.

73 Regel 3: Stelligkeit 87 Unäre Operatoren +, - vor binären +, -. Beispiel 9 * celsius / bedeutet 9 * celsius / (+5) + 32

74 Klammerung 88 Jeder Ausdruck kann mit Hilfe der Assoziativitäten Präzedenzen Stelligkeiten der beteiligten Operatoren eindeutig geklammert werden.

75 Ausdrucksbäume 89 Klammerung ergibt Ausdrucksbaum 9 * celsius / celsius 5 32 * / +

76 Ausdrucksbäume 89 Klammerung ergibt Ausdrucksbaum (9 * celsius) / celsius 5 32 * / +

77 Ausdrucksbäume 89 Klammerung ergibt Ausdrucksbaum ((9 * celsius) / 5) celsius 5 32 * / +

78 Ausdrucksbäume 89 Klammerung ergibt Ausdrucksbaum (((9 * celsius) / 5) + 32) 9 celsius 5 32 * / +

79 Auswertungsreihenfolge 90 "Von den Blättern zur Wurzel" im Ausdrucksbaum 9 * celsius / celsius 5 32 * / +

80 Auswertungsreihenfolge 90 "Von den Blättern zur Wurzel" im Ausdrucksbaum 9 * celsius / celsius 5 32 * / +

81 Auswertungsreihenfolge 90 "Von den Blättern zur Wurzel" im Ausdrucksbaum 9 * celsius / celsius 5 32 * / +

82 Auswertungsreihenfolge 90 "Von den Blättern zur Wurzel" im Ausdrucksbaum 9 * celsius / celsius 5 32 * / +

83 Auswertungsreihenfolge 90 "Von den Blättern zur Wurzel" im Ausdrucksbaum 9 * celsius / celsius 5 32 * / +

84 Auswertungsreihenfolge 90 "Von den Blättern zur Wurzel" im Ausdrucksbaum 9 * celsius / celsius 5 32 * / +

85 Auswertungsreihenfolge 90 "Von den Blättern zur Wurzel" im Ausdrucksbaum 9 * celsius / celsius 5 32 * / +

86 Auswertungsreihenfolge 90 "Von den Blättern zur Wurzel" im Ausdrucksbaum 9 * celsius / celsius 5 32 * / +

87 Ausdrucksbäume Notation 91 Üblichere Notation: Wurzel oben 9 * celsius / / 32 * 5 9 celsius

88 92 Typsystem Java hat ein statisches Typsystem: Alle Typen müssen deklariert werden Wenn möglich wird die Typisierung vom Compiler geprüft ansonsten zur Laufzeit Vorteil eines statischen Typsystems Fail-fast Fehler im Programm werden oft schon vom Compiler gefunden Verständlicher Code

89 Typfehler 93 Beispiel int pi_ish; float pi = 3.14f; pi_ish = pi; Compiler Fehler:./Root/Main.java:12: error: incompatible types: possible lossy conversion from float to int pi_ish = pi; ^

90 Explizite Typkonvertierung 94 Beispiel int pi_ish; float pi = 3.14f; pi_ish = pi;

91 Explizite Typkonvertierung 94 Beispiel int pi_ish; float pi = 3.14f; pi_ish = (int) pi; Explizite Typkonvertierung mit Typecasting: (typ)

92 Explizite Typkonvertierung Beispiel int pi_ish; float pi = 3.14f; pi_ish = (int) pi; Explizite Typkonvertierung mit Typecasting: (typ) Statisch typkorrekt, Compiler happy Laufzeitverhalten: Je nach Situation Hier: Genauigkeitsverlust: Kann das Programm zur Laufzeit zum Absturz bringen! 94

93 Typ Konvertierung - Anschaulich für Ganzzahlen 95 Expliziter Cast byte short int long Potentieller Informationsverlust bei explizitem Cast, da weniger Speicher zur Verfügung. Implizite Konversion

94 96 Gemischte Ausdrücke, Konversion Fliesskommazahlen sind allgemeiner als ganzzahlige Typen. In gemischten Ausdrücken werden ganze Zahlen zu Fliesskommazahlen konvertiert.

95 96 Gemischte Ausdrücke, Konversion Fliesskommazahlen sind allgemeiner als ganzzahlige Typen. In gemischten Ausdrücken werden ganze Zahlen zu Fliesskommazahlen konvertiert.

96 96 Gemischte Ausdrücke, Konversion Fliesskommazahlen sind allgemeiner als ganzzahlige Typen. In gemischten Ausdrücken werden ganze Zahlen zu Fliesskommazahlen konvertiert. 9 * celsius /

97 96 Gemischte Ausdrücke, Konversion Fliesskommazahlen sind allgemeiner als ganzzahlige Typen. In gemischten Ausdrücken werden ganze Zahlen zu Fliesskommazahlen konvertiert. 9 * celsius / Typ float, Wert 28

98 96 Gemischte Ausdrücke, Konversion Fliesskommazahlen sind allgemeiner als ganzzahlige Typen. In gemischten Ausdrücken werden ganze Zahlen zu Fliesskommazahlen konvertiert. 9 * 28.0f /

99 96 Gemischte Ausdrücke, Konversion Fliesskommazahlen sind allgemeiner als ganzzahlige Typen. In gemischten Ausdrücken werden ganze Zahlen zu Fliesskommazahlen konvertiert. 9 * 28.0f / wird zu float konvertiert: 9.0f

100 96 Gemischte Ausdrücke, Konversion Fliesskommazahlen sind allgemeiner als ganzzahlige Typen. In gemischten Ausdrücken werden ganze Zahlen zu Fliesskommazahlen konvertiert f / wird zu float konvertiert: 5.0f

101 96 Gemischte Ausdrücke, Konversion Fliesskommazahlen sind allgemeiner als ganzzahlige Typen. In gemischten Ausdrücken werden ganze Zahlen zu Fliesskommazahlen konvertiert. 50.4f + 32 wird zu float konvertiert: 32.0f

102 96 Gemischte Ausdrücke, Konversion Fliesskommazahlen sind allgemeiner als ganzzahlige Typen. In gemischten Ausdrücken werden ganze Zahlen zu Fliesskommazahlen konvertiert. 82.4f

103 Typkonversion bei binären Operationen 97 Bei einer binären Operation mit numerischen Operanden werden die Operanden nach folgenden Regeln konvertiert: Haben beide Operanden denselben Typ, findet keine Konversion statt Ist einer der Operanden double, so wird der andere nach double konvertiert Ist einer der Operanden float, so wird der andere nach float konvertiert Ist einer der Operanden long, so wird der andere nach long konvertiert Ansonsten: Beide Operanden werden nach int konvertiert

104 98 4. Effizienz von Algorithmen Effizienz von Algorithmen, Random Access Machine Modell, Funktionenwachstum, Asymptotik [Cormen et al, Kap. 2.2,3, Ottman/Widmayer, Kap. 1.1]

105 99 Effizienz von Algorithmen Ziele Laufzeitverhalten eines Algorithmus maschinenunabhängig quantifizieren. Effizienz von Algorithmen vergleichen. Abhängigkeit von der Eingabegrösse verstehen.

106 Technologiemodell 100 Random Access Machine (RAM) Ausführungsmodell: Instruktionen werden der Reihe nach (auf einem Prozessorkern) ausgeführt.

107 100 Technologiemodell Random Access Machine (RAM) Ausführungsmodell: Instruktionen werden der Reihe nach (auf einem Prozessorkern) ausgeführt. Speichermodell: Konstante Zugriffszeit.

108 100 Technologiemodell Random Access Machine (RAM) Ausführungsmodell: Instruktionen werden der Reihe nach (auf einem Prozessorkern) ausgeführt. Speichermodell: Konstante Zugriffszeit. Elementare Operationen: Rechenoperation (+,,,...), Vergleichsoperationen, Zuweisung / Kopieroperation, Flusskontrolle (Sprünge)

109 100 Technologiemodell Random Access Machine (RAM) Ausführungsmodell: Instruktionen werden der Reihe nach (auf einem Prozessorkern) ausgeführt. Speichermodell: Konstante Zugriffszeit. Elementare Operationen: Rechenoperation (+,,,...), Vergleichsoperationen, Zuweisung / Kopieroperation, Flusskontrolle (Sprünge) Einheitskostenmodell: elementare Operation hat Kosten 1.

110 100 Technologiemodell Random Access Machine (RAM) Ausführungsmodell: Instruktionen werden der Reihe nach (auf einem Prozessorkern) ausgeführt. Speichermodell: Konstante Zugriffszeit. Elementare Operationen: Rechenoperation (+,,,...), Vergleichsoperationen, Zuweisung / Kopieroperation, Flusskontrolle (Sprünge) Einheitskostenmodell: elementare Operation hat Kosten 1. Datentypen: Fundamentaltypen wie grössenbeschränkte Ganzzahl oder Fliesskommazahl.

111 Grösse der Eingabedaten 101 Typisch: Anzahl Eingabeobjekte (von fundamentalem Typ). Oftmals: Anzahl Bits für eine vernünftige / kostengünstige Repräsentation der Daten.

112 102 Asymptotisches Verhalten Genaue Laufzeit lässt sich selbst für kleine Eingabedaten kaum voraussagen. Betrachten das asymptotische Verhalten eines Algorithmus. Ignorieren alle konstanten Faktoren. Beispiel Eine Operation mit Kosten 20 ist genauso gut wie eine mit Kosten 1. Lineares Wachstum mit Steigung 5 ist genauso gut wie lineares Wachstum mit Steigung 1.

113 Funktionenwachstum O, Θ, Ω [Cormen et al, Kap. 3; Ottman/Widmayer, Kap. 1.1]

114 Oberflächlich 104 Verwende die asymptotische Notation zur Kennzeichnung der Laufzeit von Algorithmen Wir schreiben Θ(n 2 ) und meinen, dass der Algorithmus sich für grosse n wie n 2 verhält: verdoppelt sich die Problemgrösse, so vervierfacht sich die Laufzeit.

115 Genauer: Asymptotische obere Schranke 105 Gegeben: Funktion g : N R. Definition: O(g) = {f : N R c > 0, n 0 N : 0 f(n) c g(n) n n 0 } Schreibweise: O(g(n)) := O(g( )) = O(g).

116 Anschauung n g(n) = n 2 f O(g)

117 Anschauung 106 g(n) = n 2 f O(g) h O(g)

118 Beispiele 107 O(g) = {f : N R c > 0, n 0 N : 0 f(n) c g(n) n n 0 } f(n) f O(?) Beispiel 3n + 4 2n n n n + n

119 Beispiele 107 O(g) = {f : N R c > 0, n 0 N : 0 f(n) c g(n) n n 0 } f(n) f O(?) Beispiel 3n + 4 O(n) c = 4, n 0 = 4 2n n n n + n

120 Beispiele 107 O(g) = {f : N R c > 0, n 0 N : 0 f(n) c g(n) n n 0 } f(n) f O(?) Beispiel 3n + 4 O(n) c = 4, n 0 = 4 2n O(n) c = 2, n 0 = 0 n n n + n

121 Beispiele 107 O(g) = {f : N R c > 0, n 0 N : 0 f(n) c g(n) n n 0 } f(n) f O(?) Beispiel 3n + 4 O(n) c = 4, n 0 = 4 2n O(n) c = 2, n 0 = 0 n n O(n 2 ) n + n c = 2, n 0 = 100

122 Beispiele 107 O(g) = {f : N R c > 0, n 0 N : 0 f(n) c g(n) n n 0 } f(n) f O(?) Beispiel 3n + 4 O(n) c = 4, n 0 = 4 2n O(n) c = 2, n 0 = 0 n n O(n 2 ) c = 2, n 0 = 100 n + n O(n) c = 2, n 0 = 1

123 Eigenschaft 108 f 1 O(g), f 2 O(g) f 1 + f 2 O(g)

124 Umkehrung: Asymptotische untere Schranke 109 Gegeben: Funktion g : N R. Definition: Ω(g) = {f : N R c > 0, n 0 N : 0 c g(n) f(n) n n 0 }

125 Beispiel 110 f Ω(g) g(n) = n n 0

126 Beispiel 110 h Ω(g) f Ω(g) g(n) = n n 0

127 Asymptotisch scharfe Schranke 111 Gegeben Funktion g : N R. Definition: Θ(g) := Ω(g) O(g). Einfache, geschlossene Form: Übung.

128 Beispiel 112 g(n) = n 2 f Θ(n 2 ) h(n) = 0.5 n 2

129 Wachstumsbezeichnungen 113 O(1) beschränkt Array-Zugriff O(log log n) doppelt logarithmisch Binäre sortierte Suche interpoliert O(log n) logarithmisch Binäre sortierte Suche O( n) wie die Wurzelfunktion Primzahltest (naiv) O(n) linear Unsortierte naive Suche O(n log n) superlinear / loglinear Gute Sortieralgorithmen O(n 2 ) quadratisch Einfache Sortieralgorithmen O(n c ) polynomial Matrixmultiplikation O(2 n ) exponentiell Travelling Salesman Dynamic Programming O(n!) faktoriell Travelling Salesman naiv

130 Kleine n 60 n 4 2 n 40 n 2 20 n ln n

131 Grössere n n n 4 n 2 log n

132 Grosse n n n 4 n log n

133 Logarithmen! 117 1,000 n n 3/2 n log n n log n

134 Zeitbedarf 118 Annahme: 1 Operation = 1µs. Problemgrösse log 2 n 1µs n 1µs n log 2 n 1µs n 2 1µs 2 n 1µs

135 Zeitbedarf 118 Annahme: 1 Operation = 1µs. Problemgrösse log 2 n 1µs 7µs 13µs 20µs 30µs n 1µs n log 2 n 1µs n 2 1µs 2 n 1µs

136 Zeitbedarf 118 Annahme: 1 Operation = 1µs. Problemgrösse log 2 n 1µs 7µs 13µs 20µs 30µs n 1µs 100µs 1/100s 1s 17 Minuten n log 2 n 1µs n 2 1µs 2 n 1µs

137 Zeitbedarf 118 Annahme: 1 Operation = 1µs. Problemgrösse log 2 n 1µs 7µs 13µs 20µs 30µs n 1µs 100µs 1/100s 1s 17 Minuten n log 2 n 1µs 700µs 13/100µs 20s 8.5 Stunden n 2 1µs 2 n 1µs

138 Zeitbedarf 118 Annahme: 1 Operation = 1µs. Problemgrösse log 2 n 1µs 7µs 13µs 20µs 30µs n 1µs 100µs 1/100s 1s 17 Minuten n log 2 n 1µs 700µs 13/100µs 20s 8.5 Stunden n 2 1µs 1/100s 1.7 Minuten 11.5 Tage 317 Jahrhund. 2 n 1µs

139 Zeitbedarf 118 Annahme: 1 Operation = 1µs. Problemgrösse log 2 n 1µs 7µs 13µs 20µs 30µs n 1µs 100µs 1/100s 1s 17 Minuten n log 2 n 1µs 700µs 13/100µs 20s 8.5 Stunden n 2 1µs 1/100s 1.7 Minuten 11.5 Tage 317 Jahrhund. 2 n 1µs Jahrh.

140 Eine gute Strategie? dann kaufe ich mir eben eine neue Maschine!

141 Eine gute Strategie? dann kaufe ich mir eben eine neue Maschine! Wenn ich heute ein Problem der Grösse n lösen kann, dann kann ich mit einer 10 oder 100 mal so schnellen Maschine... Komplexität (speed 10) (speed 100) log 2 n n n 2 2 n

142 Eine gute Strategie? dann kaufe ich mir eben eine neue Maschine! Wenn ich heute ein Problem der Grösse n lösen kann, dann kann ich mit einer 10 oder 100 mal so schnellen Maschine... Komplexität (speed 10) (speed 100) log 2 n n n 10 n n 100 n n 2 2 n

143 Eine gute Strategie? dann kaufe ich mir eben eine neue Maschine! Wenn ich heute ein Problem der Grösse n lösen kann, dann kann ich mit einer 10 oder 100 mal so schnellen Maschine... Komplexität (speed 10) (speed 100) log 2 n n n 10 n n 100 n n 10 n n 100 n n 2 2 n

144 Eine gute Strategie? dann kaufe ich mir eben eine neue Maschine! Wenn ich heute ein Problem der Grösse n lösen kann, dann kann ich mit einer 10 oder 100 mal so schnellen Maschine... Komplexität (speed 10) (speed 100) log 2 n n n 10 n n 100 n n 10 n n 100 n n 2 n 3.16 n n 10 n 2 n

145 Eine gute Strategie? dann kaufe ich mir eben eine neue Maschine! Wenn ich heute ein Problem der Grösse n lösen kann, dann kann ich mit einer 10 oder 100 mal so schnellen Maschine... Komplexität (speed 10) (speed 100) log 2 n n n 10 n n 100 n n 10 n n 100 n n 2 n 3.16 n n 10 n 2 n n n n n

146 Beispiele 120

147 Beispiele 120 n O(n 2 )

148 Beispiele 120 n O(n 2 ) korrekt, aber ungenau:

149 Beispiele 120 n O(n 2 ) korrekt, aber ungenau: n O(n) und sogar n Θ(n).

150 Beispiele 120 n O(n 2 ) korrekt, aber ungenau: n O(n) und sogar n Θ(n).

151 Beispiele 120 n O(n 2 ) korrekt, aber ungenau: n O(n) und sogar n Θ(n). 3n 2 O(2n 2 )

152 Beispiele 120 n O(n 2 ) korrekt, aber ungenau: n O(n) und sogar n Θ(n). 3n 2 O(2n 2 ) korrekt, aber unüblich:

153 Beispiele 120 n O(n 2 ) korrekt, aber ungenau: n O(n) und sogar n Θ(n). 3n 2 O(2n 2 ) korrekt, aber unüblich: Konstanten weglasssen: 3n 2 O(n 2 ).

154 Beispiele 120 n O(n 2 ) korrekt, aber ungenau: n O(n) und sogar n Θ(n). 3n 2 O(2n 2 ) korrekt, aber unüblich: Konstanten weglasssen: 3n 2 O(n 2 ).

155 120 Beispiele n O(n 2 ) korrekt, aber ungenau: n O(n) und sogar n Θ(n). 3n 2 O(2n 2 ) korrekt, aber unüblich: Konstanten weglasssen: 3n 2 O(n 2 ). 2n 2 O(n)

156 120 Beispiele n O(n 2 ) korrekt, aber ungenau: n O(n) und sogar n Θ(n). 3n 2 O(2n 2 ) korrekt, aber unüblich: Konstanten weglasssen: 3n 2 O(n 2 ). 2n 2 O(n) ist falsch:

157 120 Beispiele n O(n 2 ) korrekt, aber ungenau: n O(n) und sogar n Θ(n). 3n 2 O(2n 2 ) korrekt, aber unüblich: Konstanten weglasssen: 3n 2 O(n 2 ). 2n 2 O(n) ist falsch: 2n2 cn = 2 c n n!

158 120 Beispiele n O(n 2 ) korrekt, aber ungenau: n O(n) und sogar n Θ(n). 3n 2 O(2n 2 ) korrekt, aber unüblich: Konstanten weglasssen: 3n 2 O(n 2 ). 2n 2 O(n) ist falsch: 2n2 cn = 2 c n n!

159 120 Beispiele n O(n 2 ) korrekt, aber ungenau: n O(n) und sogar n Θ(n). 3n 2 O(2n 2 ) korrekt, aber unüblich: Konstanten weglasssen: 3n 2 O(n 2 ). 2n 2 O(n) ist falsch: 2n2 cn O(n) O(n 2 ) = 2 c n n!

160 120 Beispiele n O(n 2 ) korrekt, aber ungenau: n O(n) und sogar n Θ(n). 3n 2 O(2n 2 ) korrekt, aber unüblich: Konstanten weglasssen: 3n 2 O(n 2 ). 2n 2 O(n) ist falsch: 2n2 cn O(n) O(n 2 ) ist korrekt = 2 c n n!

161 120 Beispiele n O(n 2 ) korrekt, aber ungenau: n O(n) und sogar n Θ(n). 3n 2 O(2n 2 ) korrekt, aber unüblich: Konstanten weglasssen: 3n 2 O(n 2 ). 2n 2 O(n) ist falsch: 2n2 cn O(n) O(n 2 ) ist korrekt = 2 c n n!

162 120 Beispiele n O(n 2 ) korrekt, aber ungenau: n O(n) und sogar n Θ(n). 3n 2 O(2n 2 ) korrekt, aber unüblich: Konstanten weglasssen: 3n 2 O(n 2 ). 2n 2 O(n) ist falsch: 2n2 cn O(n) O(n 2 ) ist korrekt Θ(n) Θ(n 2 ) = 2 c n n!

163 120 Beispiele n O(n 2 ) korrekt, aber ungenau: n O(n) und sogar n Θ(n). 3n 2 O(2n 2 ) korrekt, aber unüblich: Konstanten weglasssen: 3n 2 O(n 2 ). 2n 2 O(n) ist falsch: 2n2 cn O(n) O(n 2 ) ist korrekt Θ(n) Θ(n 2 ) ist falsch: = 2 c n n!

164 Beispiele 120 n O(n 2 ) korrekt, aber ungenau: n O(n) und sogar n Θ(n). 3n 2 O(2n 2 ) korrekt, aber unüblich: Konstanten weglasssen: 3n 2 O(n 2 ). 2n 2 O(n) ist falsch: 2n2 cn = 2 c n n! O(n) O(n 2 ) ist korrekt Θ(n) Θ(n 2 ) ist falsch: n Ω(n 2 ) Θ(n 2 )

165 Nützliches 121 Theorem Seien f, g : N R + zwei Funktionen. Dann gilt: f(n) 1 lim n g(n) f(n) 2 lim n g(n) 3 f(n) g(n) = 0 f O(g), O(f) O(g). = C > 0 (C konstant) f Θ(g). n g O(f), O(g) O(f).

166 122 Zur Notation Übliche Schreibweise f = O(g) ist zu verstehen als f O(g). Es gilt nämlich f 1 = O(g), f 2 = O(g) f 1 = f 2! Beispiel n = O(n 2 ), n 2 = O(n 2 ) aber natürlich n n 2.

167 123 Algorithmen, Programme und Laufzeit Programm: Konkrete Implementation eines Algorithmus. Laufzeit des Programmes: messbarer Wert auf einer konkreten Maschine. Kann sowohl nach oben, wie auch nach unten abgeschätzt werden. Beispiel Rechner mit 3 GHz. Maximale Anzahl Operationen pro Taktzyklus (z.b. 8). untere Schranke. Einzelne Operation dauert mit Sicherheit nie länger als ein Tag obere Schranke. Asymptotisch gesehen stimmen die Schranken überein.

168 Komplexität 124 Komplexität eines Problems P : minimale (asymptotische) Kosten über alle Algorithmen A, die P lösen.

169 Komplexität 124 Komplexität eines Problems P : minimale (asymptotische) Kosten über alle Algorithmen A, die P lösen. Komplexität der Elementarmultiplikation zweier Zahlen der Länge n ist Ω(n) und O(n log 3 2 ) (Karatsuba Ofman).

170 Komplexität Exemplarisch: Problem Komplexität O(n) O(n) O(n 2 ) Algorithmus Kosten 2 3n 4 O(n) Θ(n 2 ) Programm Laufzeit Θ(n) O(n) Θ(n 2 ) 2 Anzahl Elementaroperationen 124

3. Java - Sprachkonstrukte I

3. Java - Sprachkonstrukte I 84 3. Java - Sprachkonstrukte I Namen und Bezeichner, Variablen, Zuweisungen, Konstanten, Datentypen, Operationen, Auswerten von Ausdrücken, Typkonversionen Namen und Bezeichner 85 Ein Programm (also Klasse)

Mehr

3. Java - Sprachkonstrukte I

3. Java - Sprachkonstrukte I Namen und Bezeichner Ein Programm (also Klasse) braucht einen Namen 3. Java - Sprachkonstrukte I Namen und Bezeichner, Variablen, Zuweisungen, Konstanten, Datentypen, Operationen, Auswerten von Ausdrücken,

Mehr

3. Java - Sprachkonstrukte I

3. Java - Sprachkonstrukte I Lernziele 3. Java - Sprachkonstrukte I Namen und Bezeichner, Variablen, Zuweisungen, Konstanten, Datentypen, Operationen, Auswerten von Ausdrücken, Typkonversionen Sie kennen die grundlegensten Bausteine

Mehr

3. Java - Sprachkonstrukte I

3. Java - Sprachkonstrukte I Namen und Bezeichner Ein Programm (also Klasse) braucht einen Namen 3. Java - Sprachkonstrukte I Namen und Bezeichner, Variablen, Zuweisungen, Konstanten, Datentypen, Operationen, Auswerten von Ausdrücken,

Mehr

Programmieren und Problemlösen Java-Sprachkonstrukte. Java-Sprachkonstrukte. Übung Altersberechner. Namen und Bezeichner. Namen und Bezeichner

Programmieren und Problemlösen Java-Sprachkonstrukte. Java-Sprachkonstrukte. Übung Altersberechner. Namen und Bezeichner. Namen und Bezeichner Übung Altersberechner Dennis Komm Programmieren und Problemlösen public class AgeCalc { public static void main(string[] args) { Out.print("Enter your year of birth: ")... } } Ausgabe: "In 2020, you will

Mehr

2. Effizienz von Algorithmen

2. Effizienz von Algorithmen Effizienz von Algorithmen 2. Effizienz von Algorithmen Effizienz von Algorithmen, Random Access Machine Modell, Funktionenwachstum, Asymptotik [Cormen et al, Kap. 2.2,3,4.2-4.4 Ottman/Widmayer, Kap. 1.1]

Mehr

4. Effizienz von Algorithmen

4. Effizienz von Algorithmen Effizienz von Algorithmen 4. Effizienz von Algorithmen Effizienz von Algorithmen, Random Access Machine Modell, Funktionenwachstum, Asymptotik [Cormen et al, Kap. 2.2,3,4.2-4.4 Ottman/Widmayer, Kap. 1.1]

Mehr

Programmieren und Problemlösen

Programmieren und Problemlösen Dennis Komm Programmieren und Problemlösen Komplexität von Algorithmen Frühling 2019 27. Februar 2019 Komplexität von Algorithmen Aufgabe Primzahltest Schreibe ein Programm, das eine ganze Zahl x als Eingabe

Mehr

3. Java Einführung. Erstes Java Programm. Der euklidische Algorithmus in Java. Java Klassen

3. Java Einführung. Erstes Java Programm. Der euklidische Algorithmus in Java. Java Klassen Erstes Java Programm public class Hello { Klasse: Ein Programm Methode: benannte Folge von en. 3. Java Einführung Moderner Euklid Algorithmus in Java, Ein- und Ausgabe in Java public static void main (String[]

Mehr

Informatik II. Vorlesung am D-BAUG der ETH Zürich. Felix Friedrich & Hermann Lehner FS 2018

Informatik II. Vorlesung am D-BAUG der ETH Zürich. Felix Friedrich & Hermann Lehner FS 2018 1 Informatik II Vorlesung am D-BAUG der ETH Zürich Felix Friedrich & Hermann Lehner FS 2018 23 1. Einführung Algorithmen und Datenstrukturen, erstes Beispiel 24 Ziele der Vorlesung Verständnis des Entwurfs

Mehr

Informatik II. 1. Einführung. Ziele der Vorlesung. Inhalte der Vorlesung. Vorlesung am D-BAUG der ETH Zürich

Informatik II. 1. Einführung. Ziele der Vorlesung. Inhalte der Vorlesung. Vorlesung am D-BAUG der ETH Zürich Informatik II Vorlesung am D-BAUG der ETH Zürich 1. Einführung Felix Friedrich & Hermann Lehner Algorithmen und Datenstrukturen, erstes Beispiel FS 2018 1 23 Ziele der Vorlesung Inhalte der Vorlesung Verständnis

Mehr

Informatik II. 1. Einführung. Inhalte der Vorlesung. Ziele der Vorlesung. Vorlesung am D-BAUG der ETH Zürich

Informatik II. 1. Einführung. Inhalte der Vorlesung. Ziele der Vorlesung. Vorlesung am D-BAUG der ETH Zürich Informatik II Vorlesung am D-BAUG der ETH Zürich 1. Einführung Felix Friedrich & Hermann Lehner Algorithmen und Datenstrukturen, Korrektheit, erstes Beispiel FS 2019 1 2 Ziele der Vorlesung Inhalte der

Mehr

Datenstrukturen und Algorithmen

Datenstrukturen und Algorithmen Datenstrukturen und Algorithmen Vorlesung am D-Math (CSE) der ETH Zürich 1. Einführung Felix Friedrich Überblick, Algorithmen und Datenstrukturen, Korrektheit, erstes FS 2019 1 19 Ziele des Kurses Verständnis

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 22 Einstieg in die Informatik mit Java Grundlagen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 22 1 Kommentare 2 Bezeichner für Klassen, Methoden, Variablen 3 White

Mehr

Einstieg in die Informatik mit Java

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

Mehr

Grundlagen der Modellierung und Programmierung, Übung

Grundlagen der Modellierung und Programmierung, Übung Grundlagen der Modellierung und Programmierung Übung Prof. Wolfram Amme LS Softwaretechnik Prof. Klaus Küspert LS Datenbanksysteme Prof. Birgitta König-Ries LS Verteilte Systeme Prof. Dr. Wilhelm Rossak

Mehr

Teil 5 - Java. Programmstruktur Operatoren Schlüsselwörter Datentypen

Teil 5 - Java. Programmstruktur Operatoren Schlüsselwörter Datentypen Teil 5 - Java Programmstruktur Operatoren Schlüsselwörter Datentypen 1 Kommentare in Java In Java gibt es drei Möglichkeiten zur Kommentierung: // Kommentar Alle Zeichen nach dem // werden ignoriert. für

Mehr

Namen und Bezeichner. Ein Programm braucht einen Namen. Bezeichner: Ein Name für "Objekte" im Programm.

Namen und Bezeichner. Ein Programm braucht einen Namen. Bezeichner: Ein Name für Objekte im Programm. Namen und Bezeichner, Variablen, Zuweisungen, Konstanten, Datentypen, Operationen,Auswertung von Ausdrücken, Konversion, Kontrollfluss: if..then, while, do.. while, for, Klassen und statische Methoden

Mehr

Java I Vorlesung Imperatives Programmieren

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

Mehr

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

Einführung in die Programmierung WS 2009/10. Übungsblatt 5: Typen, Variablen und einfache Methoden in Java

Einführung in die Programmierung WS 2009/10. Übungsblatt 5: Typen, Variablen und einfache Methoden in Java Ludwig-Maximilians-Universität München München, 20.11.2009 Institut für Informatik Prof. Dr. Christian Böhm Annahita Oswald, Bianca Wackersreuther Einführung in die Programmierung WS 2009/10 Übungsblatt

Mehr

Vorkurs Informatik WiSe 17/18

Vorkurs Informatik WiSe 17/18 Java Ausdrücke und Variablen Dr. Werner Struckmann / Stephan Mielke, Nicole Naczk, 05.10.2017 Technische Universität Braunschweig, IPS Überblick Ausdrücke, Datentypen und Variablen Kontrollstrukturen 05.10.2017

Mehr

Ganze Zahlen. Die Typen int, unsigned int; Auswertung arithmetischer Ausdrücke, arithmetische Operatoren

Ganze Zahlen. Die Typen int, unsigned int; Auswertung arithmetischer Ausdrücke, arithmetische Operatoren Ganze Zahlen Die Typen int, unsigned int; Auswertung arithmetischer Ausdrücke, arithmetische Operatoren Celsius to Fahrenheit // Program: fahrenheit.cpp // Convert temperatures from Celsius to Fahrenheit.

Mehr

Nino Simunic M.A. Computerlinguistik, Campus DU

Nino Simunic M.A. Computerlinguistik, Campus DU Vorlesung 3. Sitzung Grundlegende Programmiertechniken Wintersemester 2007/2008 Dozent Nino Simunic M.A. Computerlinguistik, Campus DU Grundlegende Programmiertechniken, WS 2007/2008 Ausdrücke, Operatoren

Mehr

2. Ganze Zahlen int unsigned int

2. Ganze Zahlen int unsigned int 99 2. Ganze Zahlen Auswertung arithmetischer Ausdrücke, Assoziativität und Präzedenz, arithmetische Operatoren, Wertebereich der Typen int, unsigned int Celsius to Fahrenheit // Program: fahrenheit.cpp

Mehr

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

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

Mehr

Martin Unold INFORMATIK. Geoinformatik und Vermessung

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

Mehr

2. Ganze Zahlen. Auswertung arithmetischer Ausdrücke, Assoziativität und Präzedenz, arithmetische Operatoren, Wertebereich der Typen int, unsigned int

2. Ganze Zahlen. Auswertung arithmetischer Ausdrücke, Assoziativität und Präzedenz, arithmetische Operatoren, Wertebereich der Typen int, unsigned int 74 2. Ganze Zahlen Auswertung arithmetischer Ausdrücke, Assoziativität und Präzedenz, arithmetische Operatoren, Wertebereich der Typen int, unsigned int Celsius to Fahrenheit 75 // Program: fahrenheit.cpp

Mehr

Einführung in die Programmierung I. 2.0 Einfache Java Programme. Thomas R. Gross. Department Informatik ETH Zürich

Einführung in die Programmierung I. 2.0 Einfache Java Programme. Thomas R. Gross. Department Informatik ETH Zürich 252-0027 Einführung in die Programmierung I 2.0 Einfache Java Programme Thomas R. Gross Department Informatik ETH Zürich Uebersicht 2.0 Einfache Java Programme Struktur Namen Output 2 Graphische Darstellung

Mehr

Vorkurs Informatik WiSe 16/17

Vorkurs Informatik WiSe 16/17 Java Ausdrücke und Variablen Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe, 05.10.2016 Technische Universität Braunschweig, IPS Überblick Ausdrücke, Datentypen und Variablen Kontrollstrukturen 05.10.2016

Mehr

5.3 Auswertung von Ausdrücken

5.3 Auswertung von Ausdrücken 5.3 Auswertung von Ausdrücken Funktionen in Java bekommen Parameter/Argumente als Input, und liefern als Output den Wert eines vorbestimmten Typs. Zum Beispiel könnte man eine Funktion i n t min ( i n

Mehr

Schwerpunkte. 8. Ausdrücke, Operatoren (einfache Typen) Beispiel: Schaltjahr Test. Einführendes Beispiel: Grundprobleme

Schwerpunkte. 8. Ausdrücke, Operatoren (einfache Typen) Beispiel: Schaltjahr Test. Einführendes Beispiel: Grundprobleme Schwerpunkte Vollständige und unvollständige Auswertung 8. Ausdrücke, Operatoren (einfache Typen) Teil 1 Seiteneffekte Overloading: Überladung von Operatoren Implizite und explizite (cast) Typumwandlung

Mehr

Programmiervorkurs Einführung in Java Tag 1

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

Mehr

Kapitel 4. Programmierkurs. Datentypen. Arten von Datentypen. Wiederholung Kapitel 4. Birgit Engels, Anna Schulze WS 07/08

Kapitel 4. Programmierkurs. Datentypen. Arten von Datentypen. Wiederholung Kapitel 4. Birgit Engels, Anna Schulze WS 07/08 Kapitel 4 Programmierkurs Birgit Engels, Anna Schulze Wiederholung Kapitel 4 ZAIK Universität zu Köln WS 07/08 1 / 23 2 Datentypen Arten von Datentypen Bei der Deklaration einer Variablen(=Behälter für

Mehr

Ganze Zahlen. Die Typen int, unsigned int; Auswertung arithmetischer Ausdrücke, arithmetische Operatoren

Ganze Zahlen. Die Typen int, unsigned int; Auswertung arithmetischer Ausdrücke, arithmetische Operatoren Ganze Zahlen Die Typen int, unsigned int; Auswertung arithmetischer Ausdrücke, arithmetische Operatoren Celsius to Fahrenheit // Program: fahrenheit.cpp // Convert temperatures from Celsius to Fahrenheit.

Mehr

Kostenmodell. Daniel Graf, Tobias Pröger. 22. September 2016 (aktualisierte Fassung 5 vom 9. Oktober 2016)

Kostenmodell. Daniel Graf, Tobias Pröger. 22. September 2016 (aktualisierte Fassung 5 vom 9. Oktober 2016) Kostenmodell Daniel Graf, Tobias Pröger 22. September 2016 (aktualisierte Fassung 5 vom 9. Oktober 2016) Erklärung: Diese Mitschrift ist als Ergänzung zur Vorlesung gedacht. Wir erheben keinen Anspruch

Mehr

Java - Zahlen, Wahrheitswerte und Zeichen. Leibniz Universität IT Services Anja Aue

Java - Zahlen, Wahrheitswerte und Zeichen. Leibniz Universität IT Services Anja Aue Java - Zahlen, Wahrheitswerte und Zeichen Leibniz Universität Anja Aue Kommentare Hilfe für den Entwickler. Wer hat wann welche Änderung vorgenommen? Warum werden diese Anweisungen hier ausgeführt? Bei

Mehr

Java Lexikalische Struktur

Java Lexikalische Struktur Informatik 1 für Nebenfachstudierende Grundmodul Java Lexikalische Struktur Kai-Steffen Hielscher Folienversion: 19. Dezember 2017 Informatik 7 Rechnernetze und Kommunikationssysteme Inhaltsübersicht Kapitel

Mehr

Gedächtnis. Während der Abarbeitung eines Algorithmus müssen sich Dinge gemerkt werden bzw. auf Dingen wird gerechnet. Zugriff.

Gedächtnis. Während der Abarbeitung eines Algorithmus müssen sich Dinge gemerkt werden bzw. auf Dingen wird gerechnet. Zugriff. Gedächtnis Während der Abarbeitung eines Algorithmus müssen sich Dinge gemerkt werden bzw. auf Dingen wird gerechnet Hauptspeicher 38265 Telefon CPU Gedächtnis Vorlesender Zugriff Verarbeitungseinheit

Mehr

Wo sind wir? Übersicht lexikale Struktur von Java

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

Mehr

1. Ganze Zahlen. 9 * celsius / Celsius to Fahrenheit. (9 * celsius / 5) + 32

1. Ganze Zahlen. 9 * celsius / Celsius to Fahrenheit. (9 * celsius / 5) + 32 1. Ganze Zahlen Auswertung arithmetischer Ausdrücke, Assoziativität und Präzedenz, arithmetische Operatoren, Wertebereich der Typen int, unsigned int 1 Celsius to Fahrenheit // Program: fahrenheit.cpp

Mehr

Javakurs FSS Lehrstuhl Stuckenschmidt. Tag 1 - Variablen und Kontrollstrukturen

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

Mehr

2 Programmieren in Java I noch ohne Nachbearbeitung

2 Programmieren in Java I noch ohne Nachbearbeitung 1 2 Programmieren in Java I noch ohne Nachbearbeitung 2.1 Was sind Programme? Eingabe = Verarbeitung = Ausgabe Die Eingabe kann sein Konstanten im Quelltext; Kommandozeilenparameter oder interaktive Eingabe

Mehr

Sprachkonstrukte. Einführung in Java. Folie 1 von Mai Ivo Kronenberg

Sprachkonstrukte. Einführung in Java. Folie 1 von Mai Ivo Kronenberg Sprachkonstrukte Einführung in Java Folie 1 von 20 12. Mai 2011 Ivo Kronenberg Inhalt Kommentare Identifier (Bezeichner) Variablen Numerische Ausdrücke und Typen Kontrollstrukturen Verzweigungen Bedingungen

Mehr

2. Ganze Zahlen int unsigned int

2. Ganze Zahlen int unsigned int 88 2. Ganze Zahlen Auswertung arithmetischer Ausdrücke, Assoziativität und Präzedenz, arithmetische Operatoren, Wertebereich der Typen int, unsigned int Celsius to Fahrenheit // Program: fahrenheit.cpp

Mehr

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

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

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java Vorlesung vom 5.11.07, Weitere Ausdrücke Übersicht 1 Vergleichsoperatoren 2 Kombinierte Zuweisungsoperatoren 3 Logische Operatoren 4 Weitere Operatoren 5 Klassifizierung von Operatoren 6 Typumwandlungen

Mehr

Elementare Konzepte von

Elementare Konzepte von Elementare Konzepte von Programmiersprachen Teil 1: Bezeichner, Elementare Datentypen, Variablen, Referenzen, Zuweisungen, Ausdrücke Kapitel 6.3 bis 6.7 in Küchlin/Weber: Einführung in die Informatik Bezeichner

Mehr

Operatoren in C. Gastvorlesung Andreas Textor

Operatoren in C. Gastvorlesung Andreas Textor Operatoren in C Gastvorlesung - 11.01.10 Andreas Textor andreas.textor@hs-rm.de Terminologie Operand 4 + 2 Operand Operator Unterscheidung nach Anzahl Operanden Unäre, Binäre und Ternäre Operatoren Z.B.:!x;

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 29 Einstieg in die Informatik mit Java Weitere Ausdrücke Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 29 1 Überblick 2 Kombinierte Zuweisungsoperatoren 3 Vergleichsoperatoren

Mehr

3. Ganze Zahlen int unsigned int

3. Ganze Zahlen int unsigned int 110 3. Ganze Zahlen Auswertung arithmetischer Ausdrücke, Assoziativität und Präzedenz, arithmetische Operatoren, Wertebereich der Typen int, unsigned int Celsius to Fahrenheit // Program: fahrenheit.cpp

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

Prof. Dr. Oliver Haase Karl Martin Kern Achim Bitzer. Programmiertechnik Operatoren, Kommentare, Ein-/Ausgabe

Prof. Dr. Oliver Haase Karl Martin Kern Achim Bitzer. Programmiertechnik Operatoren, Kommentare, Ein-/Ausgabe Prof. Dr. Oliver Haase Karl Martin Kern Achim Bitzer Programmiertechnik Operatoren, Kommentare, Ein-/Ausgabe Was sind Operatoren Ein Operator ist eine in die Programmiersprache eingebaute Funktion, die

Mehr

Kapitel 2: Grundelemente der Programmierung

Kapitel 2: Grundelemente der Programmierung Kapitel 2: Grundelemente der Programmierung Variablen Variablen sind Speicherbereiche im Arbeitsspeicher Anhand eines Namens kann man Werte hineinschreiben und auch wieder auslesen Variablen besitzen ein

Mehr

Informatik II. Woche 15, Giuseppe Accaputo

Informatik II. Woche 15, Giuseppe Accaputo Informatik II Woche 15, 13.04.2017 Giuseppe Accaputo g@accaputo.ch 1 Themenübersicht Repetition: Pass by Value & Referenzen allgemein Repetition: Asymptotische Komplexität Live-Programmierung Aufgabe 7.1

Mehr

Java für Anfänger Teil 2: Java-Syntax. Programmierkurs Manfred Jackel

Java für Anfänger Teil 2: Java-Syntax. Programmierkurs Manfred Jackel Java für Anfänger Teil 2: Java-Syntax Programmierkurs 11.-15.10.2010 Manfred Jackel 1 Syntax für die Sprache Java public class Welcome { } Schlüsselworte Reservierte Worte Keywords Wortsymbol Syntax: griech.

Mehr

Arbeitsblätter für die Lehrveranstaltung OOP JAVA 1

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

Mehr

Repetitorium Programmieren I + II

Repetitorium Programmieren I + II Repetitorium Programmieren I + II Stephan Gimbel Johanna Mensik Michael Roth 6. März 2012 Agenda 1 Operatoren 2 Datentypen Gleitpunkt Zahl Typkonvertierung 3 Strommanipulatoren 4 Bedingungen if-else switch-case

Mehr

Java Datentypen und Variablen

Java Datentypen und Variablen Informatik 1 für Nebenfachstudierende Grundmodul Java Datentypen und Variablen Kai-Steffen Hielscher Folienversion: 24. Januar 2017 Informatik 7 Rechnernetze und Kommunikationssysteme Inhaltsübersicht

Mehr

Angewandte Mathematik und Programmierung

Angewandte Mathematik und Programmierung Angewandte Mathematik und Programmierung Einführung in das Konzept der objektorientierten Anwendungen zu mathematischen Rechnens WS 2013/14 Operatoren Operatoren führen Aktionen mit Operanden aus. Der

Mehr

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

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

Mehr

Werkzeuge zur Programmentwicklung

Werkzeuge zur Programmentwicklung Werkzeuge zur Programmentwicklung B-15 Bibliothek Modulschnittstellen vorübersetzte Module Eingabe Editor Übersetzer (Compiler) Binder (Linker) Rechner mit Systemsoftware Quellmodul (Source) Zielmodul

Mehr

Martin Unold INFORMATIK. Geoinformatik und Vermessung

Martin Unold INFORMATIK. Geoinformatik und Vermessung Zusammenfassung Was ist eine Programmiersprache? Eine Sprache, die Formal eindeutig in Maschinenbefehle übersetzbar ist Für Menschen einfacher verständlich ist als Bytecode Zur Formulierung von Datenstrukturen

Mehr

Martin Unold INFORMATIK. Geoinformatik und Vermessung

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

Mehr

8. Ausdrücke, Operatoren (einfache Typen)

8. Ausdrücke, Operatoren (einfache Typen) 8. Ausdrücke, Operatoren (einfache Typen) Typumwandlung Cast-Operator Teil 2 Java-Beispiel: Unicode.java Version: 16. Nov. 2015 Unterschiedliche Typen Typumwandlung: Übersicht Zuweisung x = y; Ausdruck

Mehr

Java - Programmierung - Prozedurale Programmierung 1

Java - Programmierung - Prozedurale Programmierung 1 Java - Programmierung - Prozedurale Programmierung 1 // elementare Datentypen public class el_dt public static void main(string args []) byte b = 127; short s = 32767; int i = 2147483647; long l = 9223372036854775807L,

Mehr

Informatik II Prüfungsvorbereitungskurs

Informatik II Prüfungsvorbereitungskurs Informatik II Prüfungsvorbereitungskurs Tag 1, 20.6.2016 Giuseppe Accaputo g@accaputo.ch 1 Über mich Giuseppe Accaputo 3. Semester RW/CSE Master E-Mail: g@accaputo.ch Homepage: http://accaputo.ch Informatik

Mehr

Einfache Datentypen in JAVA

Einfache Datentypen in JAVA 5.4.1. Einfache Datentypen in JAVA Ganzzahlige Datentypen byte 8 bits -128

Mehr

1 Bedingte Anweisungen. 2 Vergleiche und logische Operatoren. 3 Fallunterscheidungen. 4 Zeichen und Zeichenketten. 5 Schleifen.

1 Bedingte Anweisungen. 2 Vergleiche und logische Operatoren. 3 Fallunterscheidungen. 4 Zeichen und Zeichenketten. 5 Schleifen. Themen der Übung Kontrollstrukturen, Pseudocode und Modulo-Rechnung CoMa-Übung III TU Berlin 9.10.01 1 Bedingte Anweisungen Vergleiche und logische Operatoren 3 Fallunterscheidungen 4 Zeichen und Zeichenketten

Mehr

Einführung in die Programmierung

Einführung in die Programmierung Einführung in die Programmierung by André Karge Übung - Operatoren, Methoden, Primitives 25. Oktober 2018 Einführung in die Programmierung WS18/19 André Karge 1/29 Notizen Standard Linux Befehle: http://images.linoxide.com/linux-cheat-sheet.pdf

Mehr

Grunddatentypen, Ausdrücke und Variablen

Grunddatentypen, Ausdrücke und Variablen Grunddatentypen, Ausdrücke und Variablen Zentralübung zur Vorlesung Einführung in die Informatik http://www.pst.ifi.lmu.de/lehre/wise-11-12/infoeinf WS11/12 Vorlesung heute: Grunddatentypen Ausdrücke Variablen

Mehr

Programmierung. Grundlagen. Tina Wegener, Ralph Steyer. 2. Ausgabe, 1. Aktualisierung, April 2014

Programmierung. Grundlagen. Tina Wegener, Ralph Steyer. 2. Ausgabe, 1. Aktualisierung, April 2014 Programmierung Tina Wegener, Ralph Steyer 2. Ausgabe, 1. Aktualisierung, April 2014 Grundlagen PG 6 Programmierung - Grundlagen 6 Grundlegende Sprachelemente In diesem Kapitel erfahren Sie was Syntax und

Mehr

Variablen. CoMa-Übung VIII TU Berlin. CoMa-Übung VIII (TU Berlin) Variablen / 15

Variablen. CoMa-Übung VIII TU Berlin. CoMa-Übung VIII (TU Berlin) Variablen / 15 Variablen CoMa-Übung VIII TU Berlin 4.12.2013 CoMa-Übung VIII (TU Berlin) Variablen 4.12.2013 1 / 15 Themen der Übung 1 Typanpassungen 2 Operatoren 3 Variablen-Gültigkeit CoMa-Übung VIII (TU Berlin) Variablen

Mehr

2. Ganze Zahlen. 9 * celsius / Celsius to Fahrenheit. (9 * celsius / 5) + 32

2. Ganze Zahlen. 9 * celsius / Celsius to Fahrenheit. (9 * celsius / 5) + 32 Celsius to Fahrenheit // Program: fahrenheit.cpp // Convert temperatures from Celsius to Fahrenheit. #include 2. Ganze Zahlen Auswertung arithmetischer Ausdrücke, Assoziativität und Präzedenz,

Mehr

Informatik Vorkurs - Vorlesung 2

Informatik Vorkurs - Vorlesung 2 Informatik Vorkurs - Vorlesung 2 Variablen, Arrays, Zahlensysteme Torben Achilles, 9. Oktober 2018 Inhalt Variablen & Datentypen Arrays Zahlensysteme 9. Oktober 2018 Torben Achilles Informatik Vorkurs

Mehr

5 Grundlagen der Java-Syntax

5 Grundlagen der Java-Syntax 5 Grundlagen der Java-Syntax Es sollen nun einige Grundregeln besprechen, die in jeder Java-Programmdatei berücksichtigt werden müssen. 5.1 Grundsätzliches zur Syntax von Java Programmen Zunächst sollten

Mehr

Java ist statisch typisiert, d.h., Variablen, Ergebnisse von Ausdrücken, etc. haben einen Datentyp, der schon bei der Kompilierung festgelegt wird.

Java ist statisch typisiert, d.h., Variablen, Ergebnisse von Ausdrücken, etc. haben einen Datentyp, der schon bei der Kompilierung festgelegt wird. 5 Mehr Java Java ist statisch typisiert, d.h., Variablen, Ergebnisse von Ausdrücken, etc. haben einen Datentyp, der schon bei der Kompilierung festgelegt wird. Java unterscheidet zwei Arten von Typen:

Mehr

Grundsymbole. Kapitel 2: Einfache Programme. Liste aller Java-Schlüsselwörter. Schlüsselwörter und Struktursymbole. Lexikalische Einheiten

Grundsymbole. Kapitel 2: Einfache Programme. Liste aller Java-Schlüsselwörter. Schlüsselwörter und Struktursymbole. Lexikalische Einheiten Universität München, Hans-Peter Kriegel und Thomas Seidl Informatik II - 42 Universität München, Hans-Peter Kriegel und Thomas Seidl Informatik II - 43 Kapitel 2: Einfache Programme Grundsymbole Grundsymbole

Mehr

Informatik I Komplexität von Algorithmen

Informatik I Komplexität von Algorithmen Leistungsverhalten von Algorithmen Informatik I Komplexität von Algorithmen G. Zachmann Clausthal University, Germany zach@in.tu-clausthal.de Speicherplatzkomplexität: Wird primärer & sekundärer Speicherplatz

Mehr

Algorithmen und Datenstrukturen (für ET/IT)

Algorithmen und Datenstrukturen (für ET/IT) Algorithmen und Datenstrukturen (für ET/IT) Sommersemester 2017 Dr. Stefanie Demirci Computer Aided Medical Procedures Technische Universität München Programm heute 1 Einführung 2 Grundlagen von Algorithmen

Mehr

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 12/13. Kapitel 3. Grunddatentypen, Ausdrücke und Variable

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 12/13. Kapitel 3. Grunddatentypen, Ausdrücke und Variable 1 Kapitel 3 Grunddatentypen, Ausdrücke und Variable 2 Eine Datenstruktur besteht aus Grunddatentypen in Java einer Menge von Daten (Werten) charakteristischen Operationen Datenstrukturen werden mit einem

Mehr

4. Zahlendarstellungen

4. Zahlendarstellungen 121 4. Zahlendarstellungen Wertebereich der Typen int, float und double Gemischte Ausdrücke und Konversionen; Löcher im Wertebereich; Fliesskommazahlensysteme; IEEE Standard; Grenzen der Fliesskommaarithmetik;

Mehr

Algorithmen als systematische Vorgehensweisen zur Lösung eines formal definierten Problems

Algorithmen als systematische Vorgehensweisen zur Lösung eines formal definierten Problems 4. Algorithmen Motivation Algorithmen als systematische Vorgehensweisen zur Lösung eines formal definierten Problems Der Begriff Algorithmus geht auf den Gelehrten Muhammad al-chwarizmi zurück, der um

Mehr

Grundlagen der Informatik Ergänzungen WS 2007/2008 Prof. Dr. Rainer Lütticke

Grundlagen der Informatik Ergänzungen WS 2007/2008 Prof. Dr. Rainer Lütticke Grundlagen der Informatik Ergänzungen WS 2007/2008 Prof. Dr. Rainer Lütticke 1 Links Stellenwertsysteme mit Links zu Zahlensysteme: http://de.wikipedia.org/wiki/stellenwertsystem ASCII-Code: http://de.wikipedia.org/wiki/ascii

Mehr

Programmieren in Java

Programmieren in Java Einführung in die (imperative) Programmierung 2 Wiederholung: Allgemein Hohe Programmiersprache Compiler Interpreter Maschinensprache Zielsystem 3 Wiederholung: Java Java Compiler Bytecode JRE Just-In-Time

Mehr

RO-Tutorien 3 / 6 / 12

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

Mehr

2. Ganze Zahlen. Beispiel: power8.cpp. Terminologie: L-Werte und R-Werte. Terminologie: L-Werte und R-Werte

2. Ganze Zahlen. Beispiel: power8.cpp. Terminologie: L-Werte und R-Werte. Terminologie: L-Werte und R-Werte 90 Beispiel: power8.cpp 91 2. Ganze Zahlen int a; // Input int r; // Result std::cout > a; Auswertung arithmetischer Ausdrücke, Assoziativität und Präzedenz, arithmetische

Mehr

Java - Zahlen, Wahrheitswerte und Zeichen. Leibniz Universität IT Services Anja Aue

Java - Zahlen, Wahrheitswerte und Zeichen. Leibniz Universität IT Services Anja Aue Java - Zahlen, Wahrheitswerte und Zeichen Leibniz Universität IT Services Anja Aue Kommentare Hilfe für den Entwickler. Wer hat wann welche Änderung vorgenommen? Warum werden diese Anweisungen hier ausgeführt?

Mehr

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

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

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java Vorlesung vom 25.4.07, Ausdrücke Übersicht 1 Die wichtigsten arithmetischen Ausdrücke Arithmetische Operatoren Inkrement und Dekrementoperatoren Zuweisungsoperator Mathematische Standardfunktionen Vergleichsoperatoren

Mehr

Algorithmen als systematische Vorgehensweisen zur Lösung eines formal definierten Problems

Algorithmen als systematische Vorgehensweisen zur Lösung eines formal definierten Problems 4. Algorithmen Motivation Algorithmen als systematische Vorgehensweisen zur Lösung eines formal definierten Problems Der Begriff Algorithmus geht auf den Gelehrten Muhammad al-chwarizmi zurück, der um

Mehr

8. Ausdrücke, Operatoren (einfache Typen)

8. Ausdrücke, Operatoren (einfache Typen) 8. Ausdrücke, Operatoren (einfache Typen) Teil 2 Java-Beispiel: Unicode.java K. Bothe, Institut für Informatik, HU Berlin, GdP, WS 2015/16 Version: 16. Nov. 2015 2 Typumwandlung Cast-Operator 3 Unterschiedliche

Mehr

Einführung in die Informatik

Einführung in die Informatik Einführung in die Informatik Jochen Hoenicke Software Engineering Albert-Ludwigs-University Freiburg Sommersemester 2014 Jochen Hoenicke (Software Engineering) Einführung in die Informatik Sommersemester

Mehr