1 Programmiersprachen

Größe: px
Ab Seite anzeigen:

Download "1 Programmiersprachen"

Transkript

1 1 Programmiersprachen Um einen Algorithmus in einer von einer Maschine ausführbaren Form beschreiben zu können, verwenden wir eine formale Sprache. formale Beschreibung des Aufbaus der Worte und Sätze, die zur Sprache gehören Anfällig gegenüber Mehrdeutigkeit, Veränderungen und Spontanität Eine Beschreibung eines Algorithmus in einer formalen (formal beschriebenen) Sprache heisst ein Programm, die formale Sprache eine Programmiersprache 1

2 Programmiersprache vs. natürliche Sprache Eine natürliche Sprache ist ein komplexes System aus Lauten und Zeichen Historisch gewachsen Ständig im Wandel Robust, Mehrdeutig, Ungenau Verwendung willkürlicher gesprochener Symbole mit festgelegter Bedeutung (Wörterbücher, Rechtschreibregeln, Trennungsregeln, Grammatikregeln, Ausnahme-Listen, Sprach- Gefühl ) 2

3 Eine Programmiersprache soll: Datenstrukturen anbieten zum Speichern und effizienten Bearbeitung von Daten Operationen auf Daten erlauben Kontrollstrukturen zur Ablaufsteuerung bereitstellen. 3

4 In dieser Vorlesung diskutieren wir Imperative Programmiersprachen, die eng mit dem von Neumann schen Maschinenmodell verknüpft sind. Ein imperatives Programm beschreibt eine Berechnung durch eine Folge von Anweisungen, die den Programmstatus (Speicherzellen, Programmzähler) verändern. Der Programmzähler der CPU arbeitet Anweisung nach Anweisung sequentiell ab (der Programmierer hat seine Anweisungen explizit aufzureihen und Wiederholungen/Sprünge zu kodieren) Der Speicher der Maschine dient zur Zustandsprotokollierung (der Zustand eines Algorithmus wird durch Variablenzuweisung bzw. -auslesen explizit kontrolliert) Diese Vorgehensweise ist unterschiedlich zur Programmierung in einer ( funktionalen Programmiersprache) 4

5 1.1 Java - eine Programmiersprache 5

6 Ein erstes Java-Programm: public class Hello { public static void main ( String[] args ) { int zahl, quadrat; zahl = 4; quadrat = zahl * zahl; // offensichtlich eine Operation String text = "Das Quadrat von "; } } System.out.println(text + zahl + " ist " + quadrat); 6

7 Erläuterungen: Jedes Programm hat einen Namen (hier: Hello). Der Name steht hinter dem Schlüsselwort class (was eine Klasse, was public ist, lernen wir später. Der Name der Datei, die den Programmtext speichert, muss zum Namen des Programms passen, d.h. in diesem Fall Hello.java heißen. Das Programm ist der Rumpf des Hauptprogramms, d.h. der Funktion main(). Die Programm-Ausführung eines Java-Programms startet stets mit einem Aufruf von dieser Funktion main(). 7

8 Jedes Programm sollte Kommentare enthalten, damit man sich selbst später noch darin zurecht findet! Ein Kommentar in Java hat etwa die Form: // Das ist ein Kommentar!!! Wenn er sich über mehrere Zeilen erstrecken soll, kann er auch so aussehen: /* Dieser Kommentar geht über mehrere Zeilen! */ 8

9 Der Edit-Compile-Run -Zyklus: Erstellen (Editieren) des Programms mit einem Text-Editor z.b. Editor, Emacs, Word, etc. Speichern des Programms als Textdatei Übersetzen (Kompilieren) des Programms in eine maschinennnahe Sprache Ausführen des übersetzten Programms 9

10 Java Programm Übersetzung: Stufe 1: Übersetzen des Quelltextes duch den Java-Compiler javac in Bytecode c net.de/tutorials/java/notes/chap05/ch05_3.html 10

11 Java Programm Übersetzung: Stufe 2: Der Java-Interpreter java führt den Code aus Interpreter und CPU bilden eine Java Virtual Machine (JVM) c net.de/tutorials/java/notes/chap05/ch05_4.html 11

12 1.2 Variablen Um Daten zu speichern und auf gespeicherte Daten zugreifen zu können, stellt Java Variablen zur Verfügung. Variablen beziehen sich auf Speicherstellen im Hauptspeicher, die Daten eines ganz bestimmten Typs speichern können. Variablen müssen erst einmal eingeführt, d.h. deklariert werden. 12

13 Beispiel: int zahl, quadrat; String text = "Das Quadrat von "; Diese Deklaration führt die drei Variablen mit den Namen zahl, quadrat und text ein. 13

14 Erklärung: Das Schlüsselwort int besagt, dass diese Variablen ganze Zahlen ( Integers ) der Typ der Variablen speichern sollen. Das Schlüsselwort String besagt, dass diese Variable Zeichenketten speichern soll. Variablen können dann benutzt werden, um anzugeben, auf welche Daten Operationen angewendet werden sollen. Variablen in einer Aufzählung sind durch Kommas, getrennt. Am Ende steht ein Semikolon ;. 14

15 Java-Datentypen In Java können unterschiedliche Arten von Datentypen verwendet werden: Primitive Datentypen Ganzzahlige numerische Datentypen: short, int, long,... Logischer Datentyp: boolean Rationale numerische Datentypen: float, double,... Alphanumerischer Datentyp: char Vordefinierte Datentypen (z.b. : String, BufferedReader, InputStreamReader) Selbstdefinierte Datentypen 15

16 Java-Basistypen Der Typ int gehört zu den Basistypen (primitive Datentypen), die von Java bereitgestellt werden. Zu jedem Basistyp gibt es eine Menge möglicher Werte. Jeder Wert eines Basistyps benötigt die gleiche Menge Platz, um ihn im Rechner zu repräsentieren. Der Platz wird in Bit gemessen. (Wie viele Werte kann man mit n Bit darstellen?) 16

17 Es gibt vier primitive Datentypen für ganze Zahlen: Typ Platz kleinster Wert größter Wert byte short int long Die Benutzung kleinerer Typen wie byte oder short spart Platz. 17

18 Es gibt zwei primitive Datentypen für Gleitkommazahlen: Typ Platz kleinster Wert größter Wert float 32 ca. -3.4e+38 ca. 3.4e+38 7 signifikante Stellen double 64 ca. -1.7e+308 ca. 1.7e signifikante Stellen Für die Auswahl des geeigneten Typs sollte die gewünschte Genauigkeit des Ergebnisses berücksichtigt werden. Eine Konstante gilt als Gleitkommazahl, wenn sie einen Dezimalpunkt oder einen Exponenten (durch E oder e eingeleitet) enthält (z.b.: 2.34, 1.7e+308, 3.2E-2). Durch Anhängen von f oder F bzw. d oder D werden Gleitkomma-Konstanten als float- bzw. double-werte kenntlich gemacht (z.b.: 2.34f, 1.7e8D). Ohne Zusatz werden Konstanten als double interpretiert. 18

19 ... weitere Basistypen: Typ Platz Werte boolean 1 true, false char 16 alle Unicode-Zeichen Unicode ist ein Zeichensatz, der alle irgendwo auf der Welt gängigen Alphabete umfasst, also zum Beispiel: die Zeichen unserer Tastatur (inklusive Umlaute); die chinesischen Schriftzeichen; die ägyptischen Hieroglyphen... char-konstanten schreibt man mit Hochkommas: 'A', ';', '\n'. 19

20 Weitere Java-Datentypen Der Datentyp String für Wörter ist kein Basistyp, sondern eine Klasse (dazu kommen wir später...) Hier behandeln wir nur zwei Eigenschaften: Man kann Wörter in Variablen vom Typ String abspeichern. String-Konstanten haben die Form "Hello World!"; Man kann Wörter mithilfe des Operators + konkatenieren. 20

21 Beispiel: String s0 = ""; String s1 = "Hel"; String s2 = "lo Wo"; String s3 = "rld!"; System.out.println(s0 + s1 + s2 + s3);... schreibt Hello World! auf die Ausgabe 21

22 1.3 Operationen Die Operationen sollen es gestatten, die Werte von Variablen zu modifizieren. Operationen auf ganzen Zahlen: Negation - Addition, Subtraktion, Multiplikation +, -, * Ganzzahlige Division /, Modulo (Divisionsrest) % Gleichheit, Ungleichheit ==,!= Größer, größer gleich, kleiner, kleiner gleich >, >=, <, <= Bitoperationen (später) 22

23 Operationen auf Gleitkommazahlen: Negation - Addition, Subtraktion, Multiplikation +, -, * Division /, Modulo (Divisionsrest) % Gleichheit, Ungleichheit ==,!= Größer, größer gleich, kleiner, kleiner gleich >, >=, <, <= 23

24 Operationen auf Variablen vom Typ boolean: Kann bei Zuweisungen von logischen Ausdrücken verwendet werden und wird implizit bei Kontrollstrukturen verwendet. Logische Operatoren: logische Negation:! logisches UND: && (a && b) ist nur dann wahr, wenn a und b beide wahr sind. logisches ODER: (a b) ist nur dann falsch, wenn a und b beide falsch sind. Beachte: Das Ergebniss einer Vergleichsoperation auf Ganz- oder Gleitkommazahlen liefert einen booleschen Wert. 24

25 Eine wichtige Operation ist die Zuweisung. Die Zuweisung weist der Variablen auf der linken Seite den Wert des Ausdrucks auf der rechten Seite zu. Ein Ausdruck ist eine Kombination von Literalen Zeichen, die einen Wert darstellen, z.b.: 3.456, Operatoren Symbole, wie + oder *, die Operationen auf Operanden darstellen, Variablen Klammern ( und ), die verwendet wird, um einen Wert zu berechnen. 25

26 Beispiele: x = 7; Die Variable x erhält den Wert 7. result = x; Der Wert der Variablen x wird ermittelt und der Variablen result zugewiesen. result = x + 19; Der Wert der Variablen x wird ermittelt, 19 dazu gezählt und dann das Ergebnis der Variablen result zugewiesen. 26

27 result = x - 5; Der Wert der Variablen x wird ermittelt, 5 abgezogen und dann das Ergebnis der Variablen result zugewiesen. result = (x - 5) * (x + 3) + -x; Beachte die richtige Klammerung und die Unterscheidung zwischen unären und binären Operatoren. 27

28 Inkrementieren und Dekrementieren Die unären Operatoren ++ und - inkrementieren bzw. dekrementieren eine Ganz- oder Gleikommazahl um und - können vor (prefix) oder nach (postfix) dem Operanden stehen. Wird die Prefix-Version in einem Ausdruck verwendet, so wird der bereits inkrementierte/dekrementierte Wert verwendet. Wird die Postfix-Version in einem Ausdruck verwendet, so wird der initiale Wert verwendet. Die Operation wird erst nach der Ausdrucksauswertung durchgeführt. 28

29 Beispiel class PrePostDemo { public static void main(string[] args){ } } int i = 3; i++; System.out.println(i); // "4" ++i; System.out.println(i); // "5" System.out.println(++i); // "6" System.out.println(i++); // "6" System.out.println(i); // "7" 29

30 Präzedenz (Auswertereihenfolge) der Operatoren Unäre Operatoren ++, -, +, - binäre arithmetische Operatoren *, /, +, - Vergleichsoperatoren <, <=, >, >=, ==!= Logische Operatoren &&, Zuweisungs-Operator = 30

31 Achtung: Java warnt nicht vor Überlauf/Unterlauf!! Beispiel: int x; x = ; // grösstes int x = x+1;... setzt x auf

32 Achtung: Java bezeichnet die Zuweisung mit = anstelle von := (Erbschaft von C...) Jede Zuweisung wird mit einem Semikolon ; beendet. In der Zuweisung x = x + 1; greift das x auf der rechten Seite auf den Wert vor der Zuweisung zu. Zuweisung können auch direkt bei der Variablendeklaration durchgeführt werden, z.b.: String name = Hello World!; Konstanten ändern ihren Wert während der Laufzeit des Programms nicht, z.b.: final float PI = ; 32

33 1.4 Typen und Casts Werden die Operatoren +, -, *, /, % auf ein Paar von Argumenten verschiedenen Typs angewendet, wird automatisch vorher der speziellere in den allgemeineren umgewandelt (implizite Typumwandlung oder implicit Type Cast) a a 33

34 float double Gleitkomma-Zahlen long short int ganze Zahlen byte char 34

35 Implizite Typumwandlung: Eine Variable wird einer anderen von anderem, erlaubten Typ zugewiesen oder eine Operation eines solchen Typs auf sie angwandt. Beispiel: short s = 123; int i; int j = 1024; i = s; i = j + s; 35

36 Beispiel: short xs = 1; int x = ; (x + xs) liefert den int-wert float xs = 1.0f; int x = ; (x + xs) liefert den float-wert 1.0E9 36

37 Achtung: Das Ergebnis einer Operation auf float kann aus dem Bereich von float herausführen. Dann ergibt sich der Wert Infinity oder -Infinity. Das gleiche gilt für double. Das Ergebnis einer Operation auf Basistypen, die in int enthalten sind (außer char), liefern ein int. Wird das Ergebnis einer Variablen zugewiesen, sollte deren Typ dies zulassen Mithilfe von expliziten Type Casts lässt sich das (evt. unter Verlust von Information) stets bewerkstelligen. Java lässt keine Konvertierung von boolean zu anderen Datentypen zu. 37

38 Beispiel: int i, j; double d;... i = j + d; i = (int) (j+d); // Fehler: i ist int, aber j + d ist double /* Korrekt: aber Verluste bei der Konversion werden in Kauf genommen */ 38

39 Beispiel: byte x = 1;... x++; // Korrekt: x ist nun 2 x = x + 1; 39

40 Beispiel: byte x = 1;... x++; // Korrekt: x ist nun 2 x = x + 1; // Fehler: Auswertung von x+1 liefert int-wert 40

41 Beispiele: (float) 1.7e+308 liefert Infinity (long) 1.7e+308 liefert (d.h. den größten long-wert) (int) 1.7e+308 liefert (d.h. den größten int-wert) (short) 1.7e+308 liefert -1 (int) 1.0e9 liefert (int) 1.11 liefert 1 (int) liefert -2 41

42 Beachte: Jeder Wert in Java hat eine Darstellung als String. Wird der Operator + auf einen Wert vom Typ String und einen anderen Wert x angewendet, wird x automatisch in seine String-Darstellung konvertiert... ==... liefert einfache Methode, um float oder double auszugeben!!! Beispiel: double x = -0.55e13; System.out.println("Eine Gleitkommazahl: " + x);... schreibt Eine Gleitkommazahl: -0.55E13 auf die Ausgabe 42

43 1.5 Java-IO (Input/Output) Sehr häufig benötigen wir Operationen, um Daten (Zahlen) einlesen bzw. ausgeben zu können. System.out.println(Meine Ausgabe); Diese Operation schreibt den Text Meine Ausgabe auf die Ausgabe. System.out.println(42); Diese Operation schreibt 42 auf die Ausgabe. System.out.println(result); Diese Operation bestimmt den Wert der Variablen result und schreibt dann diesen auf die Ausgabe. 43

44 Das Einlesen von Daten ist komplizierter! 44

45 import java.io.*; class ReadMe { public static void main (String[] args) throws IOException { // Catch me if you can BufferedReader stdin = new BufferedReader (new InputStreamReader(System.in)); String indata; indata = stdin.readline(); } } // indata in int konvertieren int zahl = Integer.parseInt(inData); 45

46 Online-Tutorial Java IO 46

47 Bemerkung Zur Vereinfachung werden wir im Folgenden oft zum Lesen von Daten die Funktion read() und zum Schreiben des Wertes einer Variablen die Funktion write(varname) oder write(literal)verwenden. Beide Funktionen sind nicht Bestandteil von Java und werden nur zur Vereinfachung eingeführt! 47

48 1.6 Kontrollstrukturen Sequenz: int x, y, result; x = read(); y = read(); result = x + y; write(result); 48

49 Zu jedem Zeitpunkt wird nur eine Anweisung (Statement) ausgeführt. Jede Anweisung wird genau einmal ausgeführt. Keine wird wiederholt, keine ausgelassen. Die Reihenfolge, in der die Anweisungen ausgeführt werden, ist die gleiche, in der sie im Programm stehen (d.h. nacheinander). Mit Beendigung der letzten Anweisung endet die Programm-Ausführung. == Sequenz alleine erlaubt nur sehr einfache Programme. 49

50 Selektion (bedingte Auswahl): Allgemein: if ( cond ) stmt else stmt 50

51 Selektion (bedingte Auswahl): int x, y, result; x = read(); y = read(); if (x > y) else result = x - y; result = y - x; System.out.println(result); Zuerst wird die Bedingung ausgewertet. Ist sie erfüllt, wird die nächste Anweisung ausgeführt. Ist sie nicht erfüllt, wird die Anweisung nach dem else ausgeführt. 51

52 Beachte: Anweisungen können selbst wieder aus Selektionen bestehen: int x; x = read(); if (x == 0) write(0); else if (x < 0) write(-1); else write(+1); 52

53 ... oder aus (geklammerten) Folgen von Anweisungen: int x, y; x = read(); if (x!= 0) { y = read(); if (x > y) write(x); else write(y); } else write(0); 53

54 Beachte: ein else bezieht sich immer auf das zuletzt öffnende if im selben Block if (x > 0) if (x < 10) write("aaa"); else write("bbb"); 54

55 Beachte: durch Klammerung wird ein seprater Block definiert if (x > 0) { if (x < 10) write("aaa"); } else write("bbb"); 55

56 Iteration (wiederholte Ausführung): Auch mit Sequenz und Selektion kann noch nicht viel berechnet werden... oder wie sollten sich wiederholende Aktionen mit sich ändernden Werten durchgeführt werden? Allgemein: while ( cond ) stmt 56

57 Iteration (wiederholte Ausführung): int x, y; x = read(); y = read(); while (x!= y) if (x < y) y = y - x; else x = x - y; write(x); 57

58 Zuerst wird die Bedingung ausgewertet. Ist sie erfüllt, wird der Rumpf des while-statements ausgeführt. der Rumpf besteht aus einer Anweisung oder aus einer geklammerten Sequenz von Anweisungen Nach Ausführung des Rumpfs wird das gesamte while-statement erneut ausgeführt. Ist die Bedingung nicht erfüllt, fährt die Programm-Ausführung hinter dem while-statement fort. 58

59 Jede (partielle) Funktion auf ganzen Zahlen, die überhaupt berechenbar ist, läßt sich mit Selektion, Sequenz, Iteration, berechnen Beweis: Berechenbarkeitstheorie. Idee: Eine Turing-Maschine kann alles berechnen... Versuche, eine Turing-Maschine zu simulieren! 59

60 Und nun der Euklidische Algorithmus in Java import java.io.*; public class GGT { public static void main (String[] args) throws IOException { BufferedReader stdin = new BufferedReader (new InputStreamReader(System.in)); } } int x, y; String indata = stdin.readline(); x = Integer.parseInt(inData); indata = stdin.readline(); y = Integer.parseInt(inData); while (x!= y) if (x < y) y = y - x; else x = x - y; System.out.println(x); 60

61 2 Mehr Java Oft müssen viele Werte gleichen Typs gespeichert werden. Idee: Lege sie konsekutiv ab! Greife auf einzelne Werte über ihren Index zu! Feld: Index:

62 Beispiel: Einlesen eines Felds int[] a; // Deklaration int n = read(); a = new int[n]; // Anlegen des Felds int i = 0; while (i < n) { a[i] = read(); i = i+1; } 62

63 type [] name ; deklariert eine Variable für ein Feld (array), dessen Elemente vom Typ type sind. Alternative Schreibweise: type name []; Das Kommando new legt ein Feld einer gegebenen Größe an und liefert einen Verweis darauf zurück: a a = new int[6]; a 63

64 Der Wert einer Feld-Variable ist also ein Verweis. int[] b = a; kopiert den Verweis der Variablen a in die Variable b: a int[] b = a; a b 64

65 Die Elemente eines Felds sind von 0 an durchnumeriert. Die Anzahl der Elemente des Felds name ist name.length. Auf das i-te Element des Felds name greift man mittels name[i] zu. Bei jedem Zugriff wird überprüft, ob der Index erlaubt ist, d.h. im Intervall {0,..., name.length-1} liegt. Liegt der Index außerhalb des Intervalls, wird die ArrayIndexOutofBoundsException ausgelöst ( Exceptions). 65

66 Mehrdimensionale Felder Java unterstützt direkt nur ein-dimensionale Felder. Ein zwei-dimensionales Feld ist ein Feld von Feldern a a 66

67 a a = new int[5][6]; a 67

68 2.1 Mehr Kontrollstrukturen Typische Form der Iteration über Felder: Initialisierung des Laufindex; while-schleife mit Eintrittsbedingung für den Rumpf; Modifizierung des Laufindex am Ende des Rumpfs. 68

69 Beispiel (Forts.): Bestimmung des Minimums int result = a[0]; int i = 1; // Initialisierung while (i < a.length) { if (a[i] < result) result = a[i]; i = i+1; // Modifizierung } write(result); 69

70 Mithilfe des for-statements: int result = a[0]; for (int i = 1; i < a.length; ++i) if (a[i] < result) result = a[i]; write(result); 70

71 Allgemein: for ( init; cond; modify ) stmt... entspricht: { init ; while ( cond ) { stmt modify ;} }... wobei ++i äquivalent ist zu i = i+1 71

72 Warnung: Die Zuweisung x = x+1 ist in Wahrheit ein Ausdruck. Der Wert ist der Wert der rechten Seite. Die Modifizierung der Variable x erfolgt als Seiteneffekt. Der Semikolon ; hinter einem Ausdruck wirft nur den Wert weg... ==... fatal für Fehler in Bedingungen... boolean x = false; if (x = true) write("sorry! This must be an error..."); 72

73 Die Operatoranwendungen ++x und x++ inkrementieren beide den Wert der Variablen x. ++x tut das, bevor der Wert des Ausdrucks ermittelt wird (Pre-Increment). x++ tut das, nachdem der Wert ermittelt wurde (Post-Increment). a[x++] = 7; entspricht: a[x] = 7; x = x+1; a[++x] = 7; entspricht: x = x+1; a[x] = 7; 73

5.1 Mehr Basistypen. (Wie viele Werte kann man mit n Bit darstellen?)

5.1 Mehr Basistypen. (Wie viele Werte kann man mit n Bit darstellen?) 5.1 Mehr Basistypen Außer int, stellt Java weitere Basistypen zur Verfügung. Zu jedem Basistyp gibt es eine Menge möglicher Werte. Jeder Wert eines Basistyps benötigt die gleiche Menge Platz, um ihn im

Mehr

4 Kontrollfluss-Diagramme

4 Kontrollfluss-Diagramme 4 Kontrollfluss-Diagramme In welcher Weise die Operationen eines Programms nacheinander ausgeführt werden, läßt sich anschaulich mithilfe von Kontrollfluss-Diagrammen darstellen. Ingredienzien: Start Stop

Mehr

2 Eine einfache Programmiersprache

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

Mehr

2 Eine einfache Programmiersprache

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

Mehr

2 Eine einfache Programmiersprache

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

Mehr

2 Eine einfache Programmiersprache

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

Mehr

2 Eine einfache Programmiersprache. Variablen. Operationen Zuweisung. Variablen

2 Eine einfache Programmiersprache. Variablen. Operationen Zuweisung. Variablen Variablen Eine Programmiersprache soll Datenstrukturen anbieten Operationen auf Daten erlauben Kontrollstrukturen zur Ablaufsteuerung bereitstellen Variablen dienen zur Speicherung von Daten. Um Variablen

Mehr

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

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

Mehr

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

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

Mehr

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

Informatik 1. Sommersemester Helmut Seidl. Institut für Informatik TU München

Informatik 1. Sommersemester Helmut Seidl. Institut für Informatik TU München Informatik 1 Sommersemester 2011 Helmut Seidl Institut für Informatik TU München 1 0 Allgemeines Inhalt dieser Vorlesung: Einführung in Grundkonzepte der Informatik; Einführung in Denkweisen der Informatik;

Mehr

Java Einführung Operatoren Kapitel 2 und 3

Java Einführung Operatoren Kapitel 2 und 3 Java Einführung Operatoren Kapitel 2 und 3 Inhalt dieser Einheit Operatoren (unär, binär, ternär) Rangfolge der Operatoren Zuweisungsoperatoren Vergleichsoperatoren Logische Operatoren 2 Operatoren Abhängig

Mehr

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

Mehr

Diana Lange. Generative Gestaltung Operatoren

Diana Lange. Generative Gestaltung Operatoren Diana Lange Generative Gestaltung Operatoren Begriffserklärung Verknüpfungsvorschrift im Rahmen logischer Kalküle. Quelle: google Operatoren sind Zeichen, die mit einer bestimmten Bedeutung versehen sind.

Mehr

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

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

Mehr

Programmiertechnik Operatoren, Kommentare, Ein-/Ausgabe

Programmiertechnik 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,

Mehr

Einführung in die Java- Programmierung

Einführung in die Java- Programmierung Einführung in die Java- Programmierung Dr. Volker Riediger Tassilo Horn riediger horn@uni-koblenz.de WiSe 2012/13 1 Wichtig... Mittags keine Pommes... Praktikum A 230 C 207 (Madeleine + Esma) F 112 F 113

Mehr

Vorkurs Informatik WiSe 15/16

Vorkurs Informatik WiSe 15/16 Java 1 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe, 12.10.2015 Technische Universität Braunschweig, IPS Überblick Organisatorisches Arbeitsablauf Hello! 12.10.2015 Dr. Werner Struckmann / Stephan

Mehr

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf http://informatik.swoke.de. Seite 1 von 16

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf http://informatik.swoke.de. Seite 1 von 16 Kapitel 5 Arithmetische Operatoren Seite 1 von 16 Arithmetische Operatoren - Man unterscheidet unäre und binäre Operatoren. - Je nachdem, ob sie auf einen Operanden wirken, oder eine Verknüpfung zweier

Mehr

Programmierkurs Java

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

Mehr

Beispiel: Start. Stop

Beispiel: Start. Stop Achtung: Zu jedem MiniJava-Programm lässt sich ein Kontrollfluss-Diagramm konstruieren :-) die umgekehrte Richtung gilt zwar ebenfalls, liegt aber nicht so auf der Hand. 107 Beispiel: Start no yes no yes

Mehr

Einführung in die C++ Programmierung für Ingenieure

Einfü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

Mehr

Primitive Datentypen

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

Mehr

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

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

Mehr

Übungsblatt 3: Algorithmen in Java & Grammatiken

Übungsblatt 3: Algorithmen in Java & Grammatiken Humboldt-Universität zu Berlin Grundlagen der Programmierung (Vorlesung von Prof. Bothe) Institut für Informatik WS 15/16 Übungsblatt 3: Algorithmen in Java & Grammatiken Abgabe: bis 9:00 Uhr am 30.11.2015

Mehr

Numerische Datentypen. Simon Weidmann

Numerische 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

Mehr

Tutorium Rechnerorganisation

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

Mehr

Programmieren. 10. Tutorium 4./ 5. Übungsblatt Referenzen

Programmieren. 10. Tutorium 4./ 5. Übungsblatt Referenzen Programmieren 10. Tutorium 4./ 5. Übungsblatt Inhalt I. Übungsblatt 4 II. III. - Rückgabe und Besprechung - Vorbereitung auf Wiederholung/ Nachtrag - Operatorpräzedenzen IV. Übungsblatt 5 - Vorstellung

Mehr

5 DATEN. 5.1. Variablen. Variablen können beliebige Werte zugewiesen und im Gegensatz zu

5 DATEN. 5.1. Variablen. Variablen können beliebige Werte zugewiesen und im Gegensatz zu Daten Makro + VBA effektiv 5 DATEN 5.1. Variablen Variablen können beliebige Werte zugewiesen und im Gegensatz zu Konstanten jederzeit im Programm verändert werden. Als Variablen können beliebige Zeichenketten

Mehr

Java Kurs für Anfänger Einheit 5 Methoden

Java Kurs für Anfänger Einheit 5 Methoden Java Kurs für Anfänger Einheit 5 Methoden Ludwig-Maximilians-Universität München (Institut für Informatik: Programmierung und Softwaretechnik von Prof.Wirsing) 22. Juni 2009 Inhaltsverzeichnis Methoden

Mehr

Programmieren in C. Felder, Schleifen und Fließkommaarithmetik. Prof. Dr. Nikolaus Wulff

Programmieren 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;

Mehr

2. Programmierung in C

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

Mehr

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

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

Mehr

2 Einfache Rechnungen

2 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,

Mehr

Datentypen. Agenda für heute, 4. März, 2010. Pascal ist eine streng typisierte Programmiersprache

Datentypen. Agenda für heute, 4. März, 2010. Pascal ist eine streng typisierte Programmiersprache Agenda für heute, 4. März, 2010 Zusammengesetzte if-then-else-anweisungen Datentypen Pascal ist eine streng typisierte Programmiersprache Für jeden Speicherplatz muss ein Datentyp t (Datenformat) t) definiert

Mehr

Einführung in die Programmierung

Einführung in die Programmierung : Inhalt Einführung in die Programmierung Wintersemester 2008/09 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund - mit / ohne Parameter - mit / ohne Rückgabewerte

Mehr

Einführung in Java. PING e.v. Weiterbildung Andreas Rossbacher 24. März 2005

Einführung in Java. PING e.v. Weiterbildung Andreas Rossbacher 24. März 2005 Einführung in Java PING e.v. Weiterbildung Andreas Rossbacher 24. März 2005 Gliederung 1. Was ist Java / Geschichte von Java 2. Prinzip der Plattformunabhängigkeit 3. Wie kommt man vom Quellcode zum Programm

Mehr

Java Kurs für Anfänger Einheit 4 Klassen und Objekte

Java Kurs für Anfänger Einheit 4 Klassen und Objekte Java Kurs für Anfänger Einheit 4 Klassen und Ludwig-Maximilians-Universität München (Institut für Informatik: Programmierung und Softwaretechnik von Prof.Wirsing) 13. Juni 2009 Inhaltsverzeichnis klasse

Mehr

Zuerst wird die Bedingung ausgewertet. Ist sie erfüllt, wird der Rumpf des while-statements ausgeführt. Nach Ausführung des Rumpfs wird das gesamte

Zuerst wird die Bedingung ausgewertet. Ist sie erfüllt, wird der Rumpf des while-statements ausgeführt. Nach Ausführung des Rumpfs wird das gesamte Zuerst wird die Bedingung ausgewertet. Ist sie erfüllt, wird der Rumpf des while-statements ausgeführt. Nach Ausführung des Rumpfs wird das gesamte while-statement erneut ausgeführt. Ist die Bedingung

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

Computeranwendung und Programmierung (CuP)

Computeranwendung 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

Mehr

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

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

Mehr

Übungen zu C++ Kapitel 1

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

Mehr

Ein erstes Java-Programm

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

Mehr

Übungen 19.01.2012 Programmieren 1 Felix Rohrer. Übungen

Übungen 19.01.2012 Programmieren 1 Felix Rohrer. Übungen Übungen if / else / else if... 2... 2 Aufgabe 2:... 2 Aufgabe 3:... 2 Aufgabe 4:... 2 Aufgabe 5:... 2 Aufgabe 6:... 2 Aufgabe 7:... 3 Aufgabe 8:... 3 Aufgabe 9:... 3 Aufgabe 10:... 3 switch... 4... 4 Aufgabe

Mehr

Programmiervorkurs. Organisation: Steffen Gebert, Alexander Wolff. Tutoren: Jürgen Zöller, Jonathan Stoll. Wintersemester 2012/2013

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

Mehr

1 Vom Problem zum Programm

1 Vom Problem zum Programm Hintergrundinformationen zur Vorlesung GRUNDLAGEN DER INFORMATIK I Studiengang Elektrotechnik WS 02/03 AG Betriebssysteme FB3 Kirsten Berkenkötter 1 Vom Problem zum Programm Aufgabenstellung analysieren

Mehr

Einfache Arrays. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung

Einfache 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"

Mehr

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

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

Mehr

Excel Funktionen durch eigene Funktionen erweitern.

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

Mehr

Überblick. Lineares Suchen

Überblick. Lineares Suchen Komplexität Was ist das? Die Komplexität eines Algorithmus sei hierbei die Abschätzung des Aufwandes seiner Realisierung bzw. Berechnung auf einem Computer. Sie wird daher auch rechnerische Komplexität

Mehr

Übung Grundlagen der Programmierung. Übung 03: Schleifen. Testplan Testergebnisse

Übung Grundlagen der Programmierung. Übung 03: Schleifen. Testplan Testergebnisse Übung 03: Schleifen Abgabetermin: xx.xx.xxxx Name: Matrikelnummer: Gruppe: G1 (Prähofer) G2 (Prähofer) G3 (Wolfinger) Aufgabe Punkte gelöst abzugeben schriftlich abzugeben elektronisch Aufgabe 03.1 12

Mehr

Tutorium Informatik 1. Aufgabe 2: Formatierte Ein- und Ausgabe

Tutorium Informatik 1. Aufgabe 2: Formatierte Ein- und Ausgabe Tutorium Informatik 1 Aufgabe 2: Formatierte Ein- und Ausgabe Fachbereich: Elektrotechnik Inhaltsverzeichnis 1 Aufgabe 1 2 Benötigte Funktionen und Schlüsselwörter 2 Robert Halas / FH Regensburg - 2003

Mehr

M. Graefenhan 2000-12-07. Übungen zu C. Blatt 3. Musterlösung

M. Graefenhan 2000-12-07. Übungen zu C. Blatt 3. Musterlösung M. Graefenhan 2000-12-07 Aufgabe Lösungsweg Übungen zu C Blatt 3 Musterlösung Schreiben Sie ein Programm, das die Häufigkeit von Zeichen in einem eingelesenen String feststellt. Benutzen Sie dazu ein zweidimensionales

Mehr

5. Tutorium zu Programmieren

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

Mehr

Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung: Lösungsvorschlag

Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung: Lösungsvorschlag Ludwig-Maximilians-Universität München WS 2015/16 Institut für Informatik Übungsblatt 9 Prof. Dr. R. Hennicker, A. Klarl Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung:

Mehr

Grundbegriffe der Informatik

Grundbegriffe der Informatik Grundbegriffe der Informatik Einheit 15: Reguläre Ausdrücke und rechtslineare Grammatiken Thomas Worsch Universität Karlsruhe, Fakultät für Informatik Wintersemester 2008/2009 1/25 Was kann man mit endlichen

Mehr

II.1.1. Erste Schritte - 1 -

II.1.1. Erste Schritte - 1 - ! 1. Grundelemente der Programmierung! 2. Objekte, Klassen und Methoden! 3. Rekursion und dynamische Datenstrukturen! 4. Erweiterung von Klassen und fortgeschrittene Konzepte II.1.1. Erste Schritte - 1

Mehr

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

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

Mehr

Einführung in die objektorientierte Programmierung mit Java. Klausur am 19. Oktober 2005

Einführung in die objektorientierte Programmierung mit Java. Klausur am 19. Oktober 2005 Einführung in die objektorientierte Programmierung mit Java Klausur am 19. Oktober 2005 Matrikelnummer: Nachname: Vorname: Semesteranzahl: Die Klausur besteht aus drei Frageblöcken zu den Inhalten der

Mehr

Einführung in die Programmierung

Einführung in die Programmierung Technische Universität München WS 2003/2004 Institut für Informatik Prof. Dr. Christoph Zenger Testklausur Einführung in die Programmierung Probeklausur Java (Lösungsvorschlag) 1 Die Klasse ArrayList In

Mehr

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf http://informatik.swoke.de. Seite 1 von 18

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf http://informatik.swoke.de. Seite 1 von 18 Kapitel 3 Datentypen und Variablen Seite 1 von 18 Datentypen - Einführung - Für jede Variable muss ein Datentyp festgelegt werden. - Hierdurch werden die Wertemenge und die verwendbaren Operatoren festgelegt.

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

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

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

Mehr

2. Negative Dualzahlen darstellen

2. Negative Dualzahlen darstellen 2.1 Subtraktion von Dualzahlen 2.1.1 Direkte Subtraktion (Tafelrechnung) siehe ARCOR T0IF Nachteil dieser Methode: Diese Form der Subtraktion kann nur sehr schwer von einer Elektronik (CPU) durchgeführt

Mehr

5.1 Basistypen. Wie viele Werte kann man mit n Bit darstellen? 30. Jan Felix Brandt, Harald Räcke 70/596

5.1 Basistypen. Wie viele Werte kann man mit n Bit darstellen? 30. Jan Felix Brandt, Harald Räcke 70/596 5.1 Basistypen Primitive Datentypen Zu jedem Basistypen gibt es eine Menge möglicher Werte. Jeder Wert eines Basistyps benötigt den gleichen Platz, um ihn im Rechner zu repräsentieren. Der Platz wird in

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

Grundlagen von Python

Grundlagen von Python Einführung in Python Grundlagen von Python Felix Döring, Felix Wittwer November 17, 2015 Scriptcharakter Programmierparadigmen Imperatives Programmieren Das Scoping Problem Objektorientiertes Programmieren

Mehr

Distributed Computing Group

Distributed Computing Group JAVA TUTORIAL Distributed Computing Group Vernetzte Systeme - SS 06 Übersicht Warum Java? Interoperabilität grosse und gut dokumentierte Library weit verbreitet Syntax sehr nahe an C Erfahrung: Java wird

Mehr

Grundlagen. Kapitel 1

Grundlagen. Kapitel 1 Grundlagen Dieses Kapitel umfasst grundlegende Fragen und Aufgaben zur Erstellung von C++-Programmen. Hierzu zählen auch das Inkludieren von Header-Dateien Eine Header-Datei beinhaltet Informationen, die

Mehr

Informationssysteme Gleitkommazahlen nach dem IEEE-Standard 754. Berechnung von Gleitkommazahlen aus Dezimalzahlen. HSLU T&A Informatik HS10

Informationssysteme Gleitkommazahlen nach dem IEEE-Standard 754. Berechnung von Gleitkommazahlen aus Dezimalzahlen. HSLU T&A Informatik HS10 Informationssysteme Gleitkommazahlen nach dem IEEE-Standard 754 Berechnung von Gleitkommazahlen aus Dezimalzahlen Die wissenschaftliche Darstellung einer Zahl ist wie folgt definiert: n = f * 10 e. f ist

Mehr

Computerarithmetik ( )

Computerarithmetik ( ) Anhang A Computerarithmetik ( ) A.1 Zahlendarstellung im Rechner und Computerarithmetik Prinzipiell ist die Menge der im Computer darstellbaren Zahlen endlich. Wie groß diese Menge ist, hängt von der Rechnerarchitektur

Mehr

Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen

Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen Binäre Bäume 1. Allgemeines Binäre Bäume werden grundsätzlich verwendet, um Zahlen der Größe nach, oder Wörter dem Alphabet nach zu sortieren. Dem einfacheren Verständnis zu Liebe werde ich mich hier besonders

Mehr

Objektorientierte Programmierung

Objektorientierte Programmierung Objektorientierte Programmierung 1 Geschichte Dahl, Nygaard: Simula 67 (Algol 60 + Objektorientierung) Kay et al.: Smalltalk (erste rein-objektorientierte Sprache) Object Pascal, Objective C, C++ (wiederum

Mehr

Prinzipielle Ausführungsvarianten I

Prinzipielle 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!

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

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

Mehr

Klausur zur Einführung in die objektorientierte Programmierung mit Java

Klausur zur Einführung in die objektorientierte Programmierung mit Java Klausur zur Einführung in die objektorientierte Programmierung mit Java im Studiengang Informationswissenschaft Prof. Dr. Christian Wolff Professur für Medieninformatik Institut für Medien-, Informations-

Mehr

Übung 9 - Lösungsvorschlag

Ü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

Mehr

Prof. Dr. Uwe Schmidt. 21. August 2007. Aufgaben zur Klausur Objektorientierte Programmierung im SS 2007 (IA 252)

Prof. Dr. Uwe Schmidt. 21. August 2007. Aufgaben zur Klausur Objektorientierte Programmierung im SS 2007 (IA 252) Prof. Dr. Uwe Schmidt 21. August 2007 Aufgaben zur Klausur Objektorientierte Programmierung im SS 2007 (IA 252) Zeit: 75 Minuten erlaubte Hilfsmittel: keine Bitte tragen Sie Ihre Antworten und fertigen

Mehr

Es sollte die MS-DOS Eingabeaufforderung starten. Geben Sie nun den Befehl javac ein.

Es sollte die MS-DOS Eingabeaufforderung starten. Geben Sie nun den Befehl javac ein. Schritt 1: Installation des Javacompilers JDK. Der erste Start mit Eclipse Bevor Sie den Java-Compiler installieren sollten Sie sich vergewissern, ob er eventuell schon installiert ist. Gehen sie wie folgt

Mehr

FB Informatik. Fehler. Testplan

FB Informatik. Fehler. Testplan Fehler #include int i,n,summe; int summe (int); cout 0) cin>n; i=summme(n); cout

Mehr

Modellierung und Programmierung 1

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

Mehr

Brainfuck. 1 Brainfuck. 1.1 Brainfuck Geschichte und Umfeld. 1.2 Esoterische Programmiersprachen

Brainfuck. 1 Brainfuck. 1.1 Brainfuck Geschichte und Umfeld. 1.2 Esoterische Programmiersprachen Brainfuck 1 Brainfuck 1.1 Brainfuck Geschichte und Umfeld Brainfuck ist eine sogenannte esoterische Programmiersprache. Sie wurde 1993 vom Schweizer Urban Müller entworfen mit dem Ziel, eine Sprache mit

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

Erwin Grüner 09.02.2006

Erwin 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

Mehr

Programmierung in C. Grundlagen. Stefan Kallerhoff

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

Mehr

Modul 122 VBA Scribt.docx

Modul 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

Mehr

Einführung in die Java- Programmierung

Einführung in die Java- Programmierung Einführung in die Java- Programmierung Dr. Volker Riediger Tassilo Horn riediger horn@uni-koblenz.de WiSe 2012/13 1 Wichtig... Mittags Pommes... Praktikum A 230 C 207 (Madeleine) F 112 F 113 (Kevin) E

Mehr

Gliederung Grundlagen Schlüsselworte try-catch Fehlerobjekte Fehlerklassen Schlüsselwort finally Schlüsselwort throws selbst erstellte Exceptions

Gliederung Grundlagen Schlüsselworte try-catch Fehlerobjekte Fehlerklassen Schlüsselwort finally Schlüsselwort throws selbst erstellte Exceptions try-catch Schlüsselworte try-catch e Schlüsselwort Schlüsselwort selbst erstellte ermöglichen die Behandlung von Fehlern, die zur Laufzeit entstehen. try-catch in C: Fehler führt immer zum Abbruch des

Mehr

Programmieren I. Prinzipieller Ablauf. Eigenschaften von JAVA. Source-Code Javac Bytecode. Java Virtual Machine (Java, Browser, Appletviewer)

Programmieren 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

Mehr

Anleitung über den Umgang mit Schildern

Anleitung über den Umgang mit Schildern Anleitung über den Umgang mit Schildern -Vorwort -Wo bekommt man Schilder? -Wo und wie speichert man die Schilder? -Wie füge ich die Schilder in meinen Track ein? -Welche Bauteile kann man noch für Schilder

Mehr

Programmierparadigmen. Programmierparadigmen. Imperatives vs. objektorientiertes Programmieren. Programmierparadigmen. Agenda für heute, 4.

Programmierparadigmen. Programmierparadigmen. Imperatives vs. objektorientiertes Programmieren. Programmierparadigmen. Agenda für heute, 4. Agenda für heute, 4. Mai, 2006 Programmierparadigmen Imperative Programmiersprachen In Prozeduren zusammengefasste, sequentiell ausgeführte Anweisungen Die Prozeduren werden ausgeführt, wenn sie als Teil

Mehr

Java-Programmierung mit NetBeans

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

Mehr

Stellen Sie bitte den Cursor in die Spalte B2 und rufen die Funktion Sverweis auf. Es öffnet sich folgendes Dialogfenster

Stellen Sie bitte den Cursor in die Spalte B2 und rufen die Funktion Sverweis auf. Es öffnet sich folgendes Dialogfenster Es gibt in Excel unter anderem die so genannten Suchfunktionen / Matrixfunktionen Damit können Sie Werte innerhalb eines bestimmten Bereichs suchen. Als Beispiel möchte ich die Funktion Sverweis zeigen.

Mehr

Zeichen bei Zahlen entschlüsseln

Zeichen bei Zahlen entschlüsseln Zeichen bei Zahlen entschlüsseln In diesem Kapitel... Verwendung des Zahlenstrahls Absolut richtige Bestimmung von absoluten Werten Operationen bei Zahlen mit Vorzeichen: Addieren, Subtrahieren, Multiplizieren

Mehr

1. LPC - Lehmanns Programmier Contest - Lehmanns Logo

1. LPC - Lehmanns Programmier Contest - Lehmanns Logo Aufgabe ist die Entwicklung einer vereinfachten Variante der beliebten Programmiersprache Logo. Die Aufgabe ist in drei Stufen zu erledigen, von der wir zunächst nur die erste Stufe bekannt geben. Die

Mehr

IT-Basics 2. DI Gerhard Fließ

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