Folienpaket 5 Themenschwerpunkte: Referenztypen: Felder /2016 Dr. Daniel Haase - Vorkurse Informatik V3/V4

Größe: px
Ab Seite anzeigen:

Download "Folienpaket 5 Themenschwerpunkte: Referenztypen: Felder /2016 Dr. Daniel Haase - Vorkurse Informatik V3/V4"

Transkript

1 Folienpaket 5 Themenschwerpunkte: Referenztypen: Felder /2016 Dr. Daniel Haase - Vorkurse Informatik V3/V4

2 Wiederholung Schleifentypen In Java gibt es hauptsächlich drei Schleifentypen: while/do/for. Typische Übersetzungen aus mathematischen Formeln: Die Summe wird berechnet über y = b f (k) k=a double y = 0.0; for (int k = a; k <= b; k = k + 1) { y = y + f(k); } System.out.println(y); // Nicht in der Schleife /2016 Dr. Daniel Haase - Vorkurse Informatik V3/V4

3 Wiederholung Schleifentypen In Java gibt es drei Schleifentypen: while/do/for. Typische Suche über die natürlichen Zahlen: int n = 0; boolean gefunden; do { n = n + 1; gefunden = (Prüfung von n ); } while (gefunden == false); System.out.println("Gefunden wurde n = " + n); Bei Suchschleifen: Wiederholung solange Zielprüfung falsch ist /2016 Dr. Daniel Haase - Vorkurse Informatik V3/V4

4 Wiederholung Schleifentypen In Java gibt es drei Schleifentypen: while/do/for. Typische kontrollierte Benutzereingabe zur Berechnung von y = x: double x; do { System.out.print("Geben Sie eine nichtnegative Zahl ein: "); x = eingabe.nextdouble(); } while (x < 0); double y = Math.sqrt(x); Aber Hauptanwendung von Schleifen ist Bearbeitung von Feldvariablen /2016 Dr. Daniel Haase - Vorkurse Informatik V3/V4

5 Zusammengesetzte Datentypen Neben den elementaren gibt es auch zusammengesetzte Datentypen. Java kennt Felder und Klassen, sie werden aus elementaren Datentypen zusammengesetzt. Zusätzliche Symbole sind notwendig, um auf solche Variablen zuzugreifen: Bei Feldern: Eckige Klammern [ bzw. ] Bei Klassen und Objekten: Der Punkt. Zusammengesetzte Datentypen werden aus elementaren Datentypen aufgebaut: wir müssen Java irgendwie mitteilen, aus welchen und wieviele /2016 Dr. Daniel Haase - Vorkurse Informatik V3/V4

6 Zusammengesetzte Datentypen Zusammengesetzte Datentypen benötigen Speicherbereiche, diese müssen verwaltet werden. Dazu gibt es Referenzvariablen. Felder und Objekte können nur über Referenzen benutzt werden. Dazu sind mehrere Schritte notwendig: Eine Referenzvariable wird deklariert, das eigentliche Feld bzw. das Objekt wird im Speicher erzeugt, über die Referenzvariable wird auf die Inhalte zugegriffen /2016 Dr. Daniel Haase - Vorkurse Informatik V3/V4

7 Feldvariablen Der einfachste zusammengesetzte Datentyp ist das Feld (engl. array): Ein Feld ist eine Kette von Variablen gleichen Typs: a[0] a[1] a[2] a[3] a[4] a[n-1] Deklaration der Referenzvariablen: Datentyp [] Name ; Beispiel: boolean[] meinfeld; Erstellen: Name = new Datentyp [Anzahl ]; Beispiel: meinfeld = new boolean[10000]; Die Variable im Feldelement j bekommt man mit Name [j] Beispiel: meinfeld[300] = false; Feldelemente werden in Java von 0 bis n 1 gezählt, die Zahl in den eckigen Klammern ist der Index in das Feld /2016 Dr. Daniel Haase - Vorkurse Informatik V3/V4

8 Referenzen in Java Was genau wird im Speicher angelegt? double[] z; z = new double[5]; z[0] = 1; z[1] = -3.1; z[2] = 4; z[3] = 5.0/2.0; z[4] = z[2]; Wir haben hier zwei verschiedene Typen von Variablen: Die einzelnen Feldelemente z[0], z[1],..., z[4] enthalten elementare double-zahlenwerte. Die Variable z ohne Klammern enthält dagegen eine Referenz als Wert. Ihr einziger Zweck ist es, das Feld im Speicher zu verwalten. Die Referenz enthält die Position des Felds im Speicher, seine Länge, den Elementtyp und noch weitere Informationen /2016 Dr. Daniel Haase - Vorkurse Informatik V3/V4

9 Referenzen in Java Wir müssen genau unterscheiden zwischen Elementare Datentypen wie int, double,... Hier ist die Variable mit Ihrer Speicherzelle identisch. Zusammengesetzte Datentypen wie int[], double[],... Hier unterscheidet man zwischen der Referenzvariable und den Speicherzellen, auf die sie zeigt. Beachte: String ist kein elementarer Datentyp, aber auch kein Feld. Es ist ein Klassentyp ( = ein Datentyp mit Programmcode). Dazu kommen wir erst später /2016 Dr. Daniel Haase - Vorkurse Informatik V3/V4

10 Referenzen in Java Nach der Deklaration ist eine (lokale) Referenzvariable nicht initialisiert (es sei denn, sie wird mit dem Wert null initialisiert, das Literal mit der Bedeutung zeigt nirgends hin ). Durch den new-befehl wird ein neuer Speicherbereich angelegt (man sagt auch: reserviert), dann wird die Referenz auf diesen Bereich gesetzt. Dem new-befehl muss man mitteilen, welche Feldelemente und wieviele gebraucht werden /2016 Dr. Daniel Haase - Vorkurse Informatik V3/V4

11 Referenzen in Java Ein typisches Beispiel: Erzeuge 100 Zufallszahlen double[] zahlen; zahlen = new double[100]; for (int j = 0; j < 100; j = j + 1) { zahlen[j] = Math.random(); } Zugriff auf die erzeugten Zahlen erfolgt über die Referenz. Den Ausdruck zahlen[j] interpriert Java so: Gehe in den Speicherbereich auf den zahlen zeigt, und hole dort das j-te Element /2016 Dr. Daniel Haase - Vorkurse Informatik V3/V4

12 Intelligente Referenzen In Java kontrollieren Referenzen den Zugriffe auf ihr Feld: Der Index wird geprüft: double[] z = new double[10]; z[30] = 4; FEHLER: Letztes Element im Feld hat Index 9 z[-5] = 0; FEHLER: Felder starten beim Index 0 Der Feldtyp wird geprüft: int[] m = new int[10]; m[3] = 4.3; FEHLER: Falscher Feldtyp byte k = m[1]; FEHLER: Bitverlust Ist überhaupt ein Feld da? byte[] b; // Nur Referenz erzeugt b[3] = 1; FEHLER: b ist "null", kein Feld gefunden Mit dem Schlüsselwort length kann man die Länge des Felds ermitteln, z.b. hat z.length den Wert 10 im ersten Beispiel /2016 Dr. Daniel Haase - Vorkurse Informatik V3/V4

13 Sofortige Initialisierung Wie elementare Variablen können Felder sofort mit Werten belegt werden: Dabei ersetzt man new Datentyp [Anzahl ] durch die Auflistung { wert1, wert2,... }. Beispiel: int[] A = { 32, 5, -2, 12, 4 }; Bei einer sofortigen Initialisierung braucht man die Anzahl nicht anzugeben, Java zählt die Elemente schon selbst. Nachteil: Man muss die Elementwerte vorher schon kennen. Auch unschön: In der Mathematik ist {1, 2} = {2, 1}, in Java nicht! /2016 Dr. Daniel Haase - Vorkurse Informatik V3/V4

14 Sofortige Initialisierung Alle elementaren Werte können so initialisiert werden: String[] S = { "Mein", "kleines", "Programm"}; int[] A = { 4, 7, 4, 1, 2}; int[] I = { 1, 4, 3, A[3]+1, 3}; char[] C = { 'a', 'ö', '2', 'Σ' }; Deklaration und Initialisierung müssen gleichzeitig erfolgen: int[] A; A = { 4, 7, 4, 1, 2 }; Syntaxfehler Bei sofortiger Initialisierung muss Feldlänge/Inhalt zum Zeitpunkt der Programmerstellung bekannt sein, das ist in der Regel nicht der Fall /2016 Dr. Daniel Haase - Vorkurse Informatik V3/V4

15 Beispiel Die Feldlänge kann man mit Hilfe einer Variablen festlegen, dadurch werden Programme flexibel: System.out.println("Wieviele sollen es sein?"); int anzahl = eingabe.nextint(); double[] zahlen = new double[anzahl]; for (int j = 0; j < anzahl; j = j + 1) { zahlen[j] = Math.random(); } Besser: In der for-bedingung mit length abfragen, wieviele Elemente tatsächlich im Feld sind /2016 Dr. Daniel Haase - Vorkurse Informatik V3/V4

16 Aufgabe Schreiben Sie ein Programmstück, das prüft, ob die Werte in feld sortiert sind. Dazu muss jedes Feldelement kleiner oder gleich seinem Nachfolger sein: boolean sortiert = true; double[] feld = new. if (sortiert) System.out.println("Feld ist sortiert"); Tipp: Prüfen Sie, ob feld[j] kleinergleich feld[j + 1] ist /2016 Dr. Daniel Haase - Vorkurse Informatik V3/V4

17 Aufgabe Schreiben Sie ein Programmstück, das prüft, ob die Werte in feld sortiert sind. Dazu muss jedes Feldelement kleiner oder gleich seinem Nachfolger sein: boolean sortiert = true; double feld[] = new for (int j = 0; j < (feld.length - 1); j = j + 1) { if (feld[j] > feld[j + 1]) sortiert = false; } if (sortiert) System.out.println("Feld ist sortiert"); /2016 Dr. Daniel Haase - Vorkurse Informatik V3/V4

18 Referenzen in Java Der Unterschied Referenz/Wert ist kompliziert, hier eine Tauschaktion mit elementaren Variablen: // Zwei elementare Variablen deklarieren int a; int b; // Erste Variable beschreiben a = 1; // b auf a setzen und b modifizieren b = a; b = 1000; System.out.println(a); 1 Die Variablen a und b haben verschiedene Speicherzellen /2016 Dr. Daniel Haase - Vorkurse Informatik V3/V4

19 Referenzen in Java Das gleiche Spiel mit Referenzen: // Zwei Referenzen deklarieren int[] A; int[] B; // Erstes Feld anlegen, A ist Referenzvariable A = new int[4]; A[0] = 1; A[1] = 1; A[2] = 1; A[3] = 1; B = A; B[0] = 1000; System.out.println(A[0]); 1000 A und B sind verschiedene Referenzvariablen, aber beide Referenzen zeigen auf den gleichen Speicherbereich /2016 Dr. Daniel Haase - Vorkurse Informatik V3/V4

20 Aufgabe Angenommen feld ist ein Feld aus int-elementen. Erzeugen Sie eine Kopie dieses Felds /2016 Dr. Daniel Haase - Vorkurse Informatik V3/V4

21 Aufgabe Angenommen feld ist ein Feld aus int-elementen. Erzeugen Sie eine Kopie dieses Felds. int[] kopie; kopie = new int[feld.length]; for (int j = 0; j < feld.length; j = j + 1) { kopie[j] = feld[j]; } Bekommen Sie auch mit feld.clone() aus der Referenz. Die Zuweisung kopie = feld; erzeugt schon eine Kopie, aber nicht vom Feld sondern nur von der Referenz auf das gleiche Feld /2016 Dr. Daniel Haase - Vorkurse Informatik V3/V4

22 Felder verwalten Felder sind dynamisch, man kann die Referenzvariable jederzeit mit einem neuen Feld beschreiben, auch mit einer anderen Länge. Nur der elementare Datentyp muss gleich sein. int[] A = new int[200]; System.out.println(A.length); 200 A = new int[10]; System.out.println(A.length); 10 A = new double[10]; FEHLER: Falscher Typ Styleguide: Niemals Feldlängen als Zahlen in for-bedingungen schreiben, sondern length und das <-Zeichen benutzen: for (int j = 0; j < feld.length; j = j + 1) { Block } /2016 Dr. Daniel Haase - Vorkurse Informatik V3/V4

23 Referenzen und Zeiger Referenzen sind eine Eigenheit von Java: In klassischen Sprachen werden Felder durch Zeiger realisiert, ein Zeiger ist ein int, der einfach die Nummer der Speicherzelle angibt wo das Feld anfängt. Das Zeigerkonzept hat Vor- und Nachteile: Kein Verwaltungsaufwand, Abarbeiten der Feldelemente effizient machbar, aber kein Indexcheck möglich: Felder kennen ihre Länge nicht. Und keine Kontrolle, dass der Zeiger wirklich auf ein Feld zeigt. Die Sprache C ist gefürchtet (und bei Hackern geschätzt) für ungeprüfte Zeigerzugriffe, mit denen ein Programm theoretisch den gesamten Speicher und damit den Computer kontrollieren kann. Moores Gesetz: Felder mit int-zeigern sind keine gute Idee /2016 Dr. Daniel Haase - Vorkurse Informatik V3/V4

24 Referenzen und Zeiger In den 70ern: int s waren nur 16 Bit breit, wurde zum Problem als erste Computer mit Speicher >64Kb entwickelt wurden. Prozessorhersteller haben Problem bis in die 90er hinein überbrückt, indem der Speicher in getrennte Segmente eingeteilt wurde. MS-DOS konnte mit diesem Trick bis in die 90er hinein nur 640Kb Speicher verwalten, aufwendige Programme haben meist gleich beim Starten das Betriebssystem ausgehebelt und eine eigene Speicherkontrolle eingerichtet. 90er: MS-Betriebssysteme setzen erstmals systematisch 32Bit-ints ein. Moores Gesetz sagt voraus, dass damit 16 Verdopplungen, also = 288 Monate, sprich 24 Jahre Zeit erkauft wurden bis das Problem wieder auftritt. Heute: Umstellung auf 64Bit-Systeme, hält nach Moore bis Eine Referenz in Java ist grundsätzlich keine Zahl mehr, sondern ein ganzes Bündel an Informationen über das Feld /2016 Dr. Daniel Haase - Vorkurse Informatik V3/V4

25 Referenzen Die JVM (Java Virtual Machine) regelt im Hintergrund die Speicherverwaltung: Speicherbereiche werden permanent bewegt und optimiert, JVM betreibt Garbage Collection, wenn ein Speicherblock keine Referenz mehr hat wird er gelöscht: byte[] b = new byte[3]; b[2] = 1; b = new byte[5]; b[4] = 2; b = null; Verhindert die für Zeiger-Systeme typische Speicherfragmentierung, und verhindert die für C typischen Speicherlecks/Hacks. Optimal wenn viele kleine und sich oft ändernde Felder im Spiel sind. Java ist zur Verarbeitung großer statischer Datenmengen ungeeignet /2016 Dr. Daniel Haase - Vorkurse Informatik V3/V4

26 Referenzen in Java Was genau kann mit einer Referenz versehen werden? So ziemlich alles in Java! einzelne Variablen (Felder der Länge 1) Felder aus Variablen Felder aus Feldern Felder aus Feldern aus... allgemeine Objekte (Variablen+Programmcode, dazu später mehr) Beim Umgang mit Referenzen gilt stets: Unterschied Referenz und Speicherbereich beachten Die Feldelemente sind erst nach dem new-befehl vorhanden Vorher enthält die Referenzvariable den Wert null Zugriffe mit einer null-referenz geben eine Fehlermeldung /2016 Dr. Daniel Haase - Vorkurse Informatik V3/V4

27 Aufgabe Arbeiten Sie folgendes Programmstück ab. Zeichnen Sie schematisch den Speicher, sowie die Referenzen mit Pfeilen. Passen Sie in jedem Schritt den Speicher und die Pfeile an: int n = 4; byte[] V; V[0] = 1; V[1] = 1; V[2] = 1; V[3] = 1; byte[] X = V; V[0] = 2; V[1] = 2; V[2] = 2; V[3] = 2; V[0] = 3; V[1] = 3; V[2] = 3; V[3] = 3; /2016 Dr. Daniel Haase - Vorkurse Informatik V3/V4

28 Aufgabe:Lösung Arbeiten Sie folgendes Programmstück ab. Zeichnen Sie schematisch den Speicher, sowie die Referenzen mit Pfeilen. Passen Sie in jedem Schritt den Speicher und die Pfeile an: int n = 4; byte[] V; V[0] = 1; V[1] = 1; V[2] = 1; V[3] = 1; byte[] X = V; X[0] = 2; X[1] = 2; X[2] = 2; X[3] = 2; V[0] = 3; V[1] = 3; V[2] = 3; V[3] = 3; /2016 Dr. Daniel Haase - Vorkurse Informatik V3/V4

29 Aufgabe:Lösung Arbeiten Sie folgendes Programmstück ab. Zeichnen Sie schematisch den Speicher, sowie die Referenzen mit Pfeilen. Passen Sie in jedem Schritt den Speicher und die Pfeile an: int n = 4; byte[] V; V[0] = 1; V[1] = 1; V[2] = 1; V[3] = 1; byte[] X = V; X[0] = 2; X[1] = 2; X[2] = 2; X[3] = 2; V[0] = 3; V[1] = 3; V[2] = 3; V[3] = 3; /2016 Dr. Daniel Haase - Vorkurse Informatik V3/V4

30 Aufgabe:Lösung Arbeiten Sie folgendes Programmstück ab. Zeichnen Sie schematisch den Speicher, sowie die Referenzen mit Pfeilen. Passen Sie in jedem Schritt den Speicher und die Pfeile an: int n = 4; byte[] V; V[0] = 1; V[1] = 1; V[2] = 1; V[3] = 1; byte[] X = V; X[0] = 2; X[1] = 2; X[2] = 2; X[3] = 2; V[0] = 3; V[1] = 3; V[2] = 3; V[3] = 3; /2016 Dr. Daniel Haase - Vorkurse Informatik V3/V4

31 Aufgabe:Lösung Arbeiten Sie folgendes Programmstück ab. Zeichnen Sie schematisch den Speicher, sowie die Referenzen mit Pfeilen. Passen Sie in jedem Schritt den Speicher und die Pfeile an: int n = 4; byte[] V; V[0] = 1; V[1] = 1; V[2] = 1; V[3] = 1; byte[] X = V; X[0] = 2; X[1] = 2; X[2] = 2; X[3] = 2; V[0] = 3; V[1] = 3; V[2] = 3; V[3] = 3; /2016 Dr. Daniel Haase - Vorkurse Informatik V3/V4

32 Aufgabe:Lösung Arbeiten Sie folgendes Programmstück ab. Zeichnen Sie schematisch den Speicher, sowie die Referenzen mit Pfeilen. Passen Sie in jedem Schritt den Speicher und die Pfeile an: int n = 4; byte[] V; V[0] = 1; V[1] = 1; V[2] = 1; V[3] = 1; byte[] X = V; X[0] = 2; X[1] = 2; X[2] = 2; X[3] = 2; V[0] = 3; V[1] = 3; V[2] = 3; V[3] = 3; /2016 Dr. Daniel Haase - Vorkurse Informatik V3/V4

33 Aufgabe:Lösung Arbeiten Sie folgendes Programmstück ab. Zeichnen Sie schematisch den Speicher, sowie die Referenzen mit Pfeilen. Passen Sie in jedem Schritt den Speicher und die Pfeile an: int n = 4; byte[] V; V[0] = 1; V[1] = 1; V[2] = 1; V[3] = 1; byte[] X = V; X[0] = 2; X[1] = 2; X[2] = 2; X[3] = 2; V[0] = 3; V[1] = 3; V[2] = 3; V[3] = 3; /2016 Dr. Daniel Haase - Vorkurse Informatik V3/V4

34 Aufgabe:Lösung Arbeiten Sie folgendes Programmstück ab. Zeichnen Sie schematisch den Speicher, sowie die Referenzen mit Pfeilen. Passen Sie in jedem Schritt den Speicher und die Pfeile an: int n = 4; byte[] V; V[0] = 1; V[1] = 1; V[2] = 1; V[3] = 1; byte[] X = V; X[0] = 2; X[1] = 2; X[2] = 2; X[3] = 2; V[0] = 3; V[1] = 3; V[2] = 3; V[3] = 3; /2016 Dr. Daniel Haase - Vorkurse Informatik V3/V4

35 Aufgabe:Lösung Arbeiten Sie folgendes Programmstück ab. Zeichnen Sie schematisch den Speicher, sowie die Referenzen mit Pfeilen. Passen Sie in jedem Schritt den Speicher und die Pfeile an: int n = 4; byte[] V; V[0] = 1; V[1] = 1; V[2] = 1; V[3] = 1; byte[] X = V; X[0] = 2; X[1] = 2; X[2] = 2; X[3] = 2; V[0] = 3; V[1] = 3; V[2] = 3; V[3] = 3; /2016 Dr. Daniel Haase - Vorkurse Informatik V3/V4

36 Aufgabe:Lösung Arbeiten Sie folgendes Programmstück ab. Zeichnen Sie schematisch den Speicher, sowie die Referenzen mit Pfeilen. Passen Sie in jedem Schritt den Speicher und die Pfeile an: int n = 4; byte[] V; V[0] = 1; V[1] = 1; V[2] = 1; V[3] = 1; byte[] X = V; X[0] = 2; X[1] = 2; X[2] = 2; X[3] = 2; V[0] = 3; V[1] = 3; V[2] = 3; V[3] = 3; /2016 Dr. Daniel Haase - Vorkurse Informatik V3/V4

37 Aufgabe:Lösung Arbeiten Sie folgendes Programmstück ab. Zeichnen Sie schematisch den Speicher, sowie die Referenzen mit Pfeilen. Passen Sie in jedem Schritt den Speicher und die Pfeile an: int n = 4; byte[] V; V[0] = 1; V[1] = 1; V[2] = 1; V[3] = 1; byte[] X = V; X[0] = 2; X[1] = 2; X[2] = 2; X[3] = 2; V[0] = 3; V[1] = 3; V[2] = 3; V[3] = 3; /2016 Dr. Daniel Haase - Vorkurse Informatik V3/V4

38 Aufgabe:Lösung Arbeiten Sie folgendes Programmstück ab. Zeichnen Sie schematisch den Speicher, sowie die Referenzen mit Pfeilen. Passen Sie in jedem Schritt den Speicher und die Pfeile an: int n = 4; byte[] V; V[0] = 1; V[1] = 1; V[2] = 1; V[3] = 1; byte[] X = V; X[0] = 2; X[1] = 2; X[2] = 2; X[3] = 2; V[0] = 3; V[1] = 3; V[2] = 3; V[3] = 3; /2016 Dr. Daniel Haase - Vorkurse Informatik V3/V4

39 Aufgabe:Lösung Arbeiten Sie folgendes Programmstück ab. Zeichnen Sie schematisch den Speicher, sowie die Referenzen mit Pfeilen. Passen Sie in jedem Schritt den Speicher und die Pfeile an: int n = 4; byte[] V; V[0] = 1; V[1] = 1; V[2] = 1; V[3] = 1; byte[] X = V; X[0] = 2; X[1] = 2; X[2] = 2; X[3] = 2; V[0] = 3; V[1] = 3; V[2] = 3; V[3] = 3; /2016 Dr. Daniel Haase - Vorkurse Informatik V3/V4

40 Aufgabe:Lösung Arbeiten Sie folgendes Programmstück ab. Zeichnen Sie schematisch den Speicher, sowie die Referenzen mit Pfeilen. Passen Sie in jedem Schritt den Speicher und die Pfeile an: int n = 4; byte[] V; V[0] = 1; V[1] = 1; V[2] = 1; V[3] = 1; byte[] X = V; X[0] = 2; X[1] = 2; X[2] = 2; X[3] = 2; V[0] = 3; V[1] = 3; V[2] = 3; V[3] = 3; /2016 Dr. Daniel Haase - Vorkurse Informatik V3/V4

41 Aufgabe:Lösung Arbeiten Sie folgendes Programmstück ab. Zeichnen Sie schematisch den Speicher, sowie die Referenzen mit Pfeilen. Passen Sie in jedem Schritt den Speicher und die Pfeile an: int n = 4; byte[] V; V[0] = 1; V[1] = 1; V[2] = 1; V[3] = 1; byte[] X = V; X[0] = 2; X[1] = 2; X[2] = 2; X[3] = 2; V[0] = 3; V[1] = 3; V[2] = 3; V[3] = 3; /2016 Dr. Daniel Haase - Vorkurse Informatik V3/V4

42 Aufgabe:Lösung Arbeiten Sie folgendes Programmstück ab. Zeichnen Sie schematisch den Speicher, sowie die Referenzen mit Pfeilen. Passen Sie in jedem Schritt den Speicher und die Pfeile an: int n = 4; byte[] V; V[0] = 1; V[1] = 1; V[2] = 1; V[3] = 1; byte[] X = V; X[0] = 2; X[1] = 2; X[2] = 2; X[3] = 2; V[0] = 3; V[1] = 3; V[2] = 3; V[3] = 3; /2016 Dr. Daniel Haase - Vorkurse Informatik V3/V4

43 Aufgabe:Lösung Arbeiten Sie folgendes Programmstück ab. Zeichnen Sie schematisch den Speicher, sowie die Referenzen mit Pfeilen. Passen Sie in jedem Schritt den Speicher und die Pfeile an: int n = 4; byte[] V; V[0] = 1; V[1] = 1; V[2] = 1; V[3] = 1; byte[] X = V; X[0] = 2; X[1] = 2; X[2] = 2; X[3] = 2; V[0] = 3; V[1] = 3; V[2] = 3; V[3] = 3; /2016 Dr. Daniel Haase - Vorkurse Informatik V3/V4

44 Aufgabe:Lösung Arbeiten Sie folgendes Programmstück ab. Zeichnen Sie schematisch den Speicher, sowie die Referenzen mit Pfeilen. Passen Sie in jedem Schritt den Speicher und die Pfeile an: int n = 4; byte[] V; V[0] = 1; V[1] = 1; V[2] = 1; V[3] = 1; byte[] X = V; X[0] = 2; X[1] = 2; X[2] = 2; X[3] = 2; V[0] = 3; V[1] = 3; V[2] = 3; V[3] = 3; /2016 Dr. Daniel Haase - Vorkurse Informatik V3/V4

45 Aufgabe:Lösung Arbeiten Sie folgendes Programmstück ab. Zeichnen Sie schematisch den Speicher, sowie die Referenzen mit Pfeilen. Passen Sie in jedem Schritt den Speicher und die Pfeile an: int n = 4; byte[] V; V[0] = 1; V[1] = 1; V[2] = 1; V[3] = 1; byte[] X = V; X[0] = 2; X[1] = 2; X[2] = 2; X[3] = 2; V[0] = 3; V[1] = 3; V[2] = 3; V[3] = 3; /2016 Dr. Daniel Haase - Vorkurse Informatik V3/V4

Kapitel 3: Variablen

Kapitel 3: Variablen Kapitel 3: Variablen Thema: Programmieren Seite: 1 Kapitel 3: Variablen Im letzten Kapitel haben wir gelernt, bestimmte Ereignisse zu wiederholen solange eine Bedingung erfüllt ist. Nun möchten wir aber

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 26 Einstieg in die Informatik mit Java Felder Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 26 1 Was sind Felder? 2 Vereinbarung von Feldern 3 Erzeugen von Feldern

Mehr

JAVA-Datentypen und deren Wertebereich

JAVA-Datentypen und deren Wertebereich Folge 8 Variablen & Operatoren JAVA 8.1 Variablen JAVA nutzt zum Ablegen (Zwischenspeichern) von Daten Variablen. (Dies funktioniert wie beim Taschenrechner. Dort können Sie mit der Taste eine Zahl zwischenspeichern).

Mehr

Dr. Monika Meiler. Inhalt

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

Mehr

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

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

Mehr

Programmiersprache 1 (C++) Prof. Dr. Stefan Enderle NTA Isny

Programmiersprache 1 (C++) Prof. Dr. Stefan Enderle NTA Isny Programmiersprache 1 (C++) Prof. Dr. Stefan Enderle NTA Isny 9. Zeiger Arbeitsspeicher / Adressen Der Arbeitsspeicher des Computers (RAM) besteht aus einem Feld von Speicherzellen, beginnend bei Adresse

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 26 Einstieg in die Informatik mit Java Felder, mehrdimensional Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 26 1 Überblick: mehrdimensionale Felder 2 Vereinbarung

Mehr

Repetitorium Informatik (Java)

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

Mehr

GI Vektoren

GI Vektoren Vektoren Problem: Beispiel: viele Variablen vom gleichen Typ abspeichern Text ( = viele char-variablen), Ergebnisse einer Meßreihe ( = viele int-variablen) hierfür: Vektoren ( = Arrays = Feld ) = Ansammlung

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

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

Objektorientierte Programmierung OOP Programmieren mit Java

Objektorientierte Programmierung OOP Programmieren mit Java 4 Datenfelder, Parameterübergabe, Casting Objektorientierte Programmierung OOP Programmieren mit Java 4 Datenfelder, Parameterübergabe, Casting 4 Datenfelder, Parameterübergabe, Casting 4.1 Datenfelder

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

5.4 Klassen und Objekte

5.4 Klassen und Objekte 5.4 Klassen und Objekte Zusammenfassung: Projekt Figuren und Zeichner Figuren stellt Basisklassen für geometrische Figuren zur Verfügung Zeichner bietet eine übergeordnete Klasse Zeichner, welche die Dienstleistungen

Mehr

Felder (1) Allgemeines

Felder (1) Allgemeines Felder (1) Allgemeines Gleichartige Daten, wie Tabelle von Zahlen, Datumswerten, Namen etc. Felder (engl. Array) stellen einen Verbundtyp dar, in dem mehrere Daten desselben Typs gespeichert werden Oft

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

Der Datentyp String. Stringvariable und -vergleiche

Der Datentyp String. Stringvariable und -vergleiche Informatik 12 mit Java: Gierhardt Zeichenketten bzw. Strings Der Datentyp String Zeichenketten bzw. Strings sind eine häufig benutzte Datenstruktur. Man könnte auch mit Arrays aus Zeichen arbeiten. Da

Mehr

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

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

Mehr

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

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

Mehr

Dynamischer Speicher

Dynamischer Speicher Dynamischer Speicher C-Kurs 2012, 3. Vorlesung Tino Kutschbach tino.kutschbach@campus.tu-berlin.de http://wiki.freitagsrunde.org 13. September 2012 This work is licensed under the Creative Commons Attribution-ShareAlike

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

Einführung in die Programmierung mit VBA

Einführung in die Programmierung mit VBA Einführung in die Programmierung mit VBA Vorlesung vom 07. November 2016 Birger Krägelin Inhalt Vom Algorithmus zum Programm Programmiersprachen Programmieren mit VBA in Excel Datentypen und Variablen

Mehr

Operatoren für elementare Datentypen Bedingte Anweisungen Schleifen. Programmieren I. Martin Schultheiß. Hochschule Darmstadt Wintersemester 2010/2011

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

Mehr

Welche Informatik-Kenntnisse bringen Sie mit?

Welche Informatik-Kenntnisse bringen Sie mit? Welche Informatik-Kenntnisse bringen Sie mit? So gehen Sie vor! Lösen Sie die Aufgaben der Reihe nach von 1 bis 20, ohne das Lösungsblatt zur Hilfe zu nehmen. Der Schwierigkeitsgrad der Aufgaben nimmt

Mehr

620.900 Propädeutikum zur Programmierung

620.900 Propädeutikum zur Programmierung 620.900 Propädeutikum zur Programmierung Andreas Bollin Institute für Informatik Systeme Universität Klagenfurt Andreas.Bollin@uni-klu.ac.at Tel: 0463 / 2700-3516 Arrays Wiederholung (1/5) Array = GEORDNETE

Mehr

Kapitel 6. Programmierkurs. 6.0 Felder (Arrays) Deklaration von Feldern. Felder (Arrays) Mehrdimensionale Arrays. Birgit Engels, Anna Schulze WS 07/08

Kapitel 6. Programmierkurs. 6.0 Felder (Arrays) Deklaration von Feldern. Felder (Arrays) Mehrdimensionale Arrays. Birgit Engels, Anna Schulze WS 07/08 Kapitel 6 Programmierkurs Birgit Engels, Anna Schulze Felder (Arrays) Mehrdimensionale Arrays ZAIK Universität zu Köln WS 07/08 1/ 21 2/ 21 6.0 Felder (Arrays) Deklaration von Feldern Bisher haben wir

Mehr

String s1, s2; Eine Zuweisung geschieht am einfachsten direkt durch Angabe des Strings eingeschlossen in doppelte Hochkommata:

String s1, s2; Eine Zuweisung geschieht am einfachsten direkt durch Angabe des Strings eingeschlossen in doppelte Hochkommata: Informatik mit Java: Gierhardt Zeichenketten bzw. Strings Der Datentyp String Zeichenketten bzw. Strings sind eine häufig benutzte Datenstruktur. Man könnte auch mit Arrays aus Zeichen arbeiten. Da aber

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 34 Einstieg in die Informatik mit Java Klassen mit Instanzmethoden Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 34 1 Definition von Klassen 2 Methoden 3 Methoden

Mehr

Einführung Datentypen Verzweigung Schleifen. Java Crashkurs. Kim-Manuel Klein May 4, 2015

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

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

C# im Vergleich zu Java

C# im Vergleich zu Java C# im Vergleich zu Java Serhad Ilgün Seminar Universität Dortmund SS 03 Gliederung Entstehung von C# und Java Überblick von C# und Java Unterschiede und Gemeinsamkeiten Zusammenfassung und Ausblick Entstehung

Mehr

Elementare Datentypen in C++

Elementare Datentypen in C++ Elementare Datentypen in C++ bool signed/unsigned char signed/unsigned short int signed/unsigned int signed/unsigned long int (signed/unsigned long long int) float double long double void enum char Der

Mehr

Programmierung mit C Zeiger

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

Mehr

Einführung in die Programmierung 1

Einführung in die Programmierung 1 Einführung in die Programmierung 1 Einführung (S.2) Einrichten von Eclipse (S.4) Mein Erstes Programm (S.5) Hallo Welt!? Programm Der Mensch (S.11) Klassen (S.12) Einführung Wie Funktioniert Code? Geschriebener

Mehr

Präzedenz von Operatoren

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

Mehr

Primitive Datentypen und Felder (Arrays)

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

Mehr

Klassen in Java. Grundlagen der Programmierung. Stephan Kleuker 68

Klassen in Java. Grundlagen der Programmierung. Stephan Kleuker 68 Klassen in Java Stephan Kleuker 68 Klassen in Java (Syntax) (1/3) class Datum { int tag; int monat; int jahr; } Java hat Schlüsselworte (z. B. class), diese dürfen z. B. nicht als Variablennamen genutzt

Mehr

PROGRAMMIERUNG IN JAVA

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

Mehr

Übersicht. 4.1 Ausdrücke. 4.2 Funktionale Algorithmen. 4.3 Anweisungen. 4.4 Imperative Algorithmen Variablen und Konstanten. 4.4.

Übersicht. 4.1 Ausdrücke. 4.2 Funktionale Algorithmen. 4.3 Anweisungen. 4.4 Imperative Algorithmen Variablen und Konstanten. 4.4. Übersicht 4.1 Ausdrücke 4.2 Funktionale Algorithmen 4.3 Anweisungen 4.4 Imperative Algorithmen 4.4.1 Variablen und Konstanten 4.4.2 Prozeduren 4.4.3 Verzweigung und Iteration 4.4.4 Globale Größen Einführung

Mehr

Deklarationen in C. Prof. Dr. Margarita Esponda

Deklarationen in C. Prof. Dr. Margarita Esponda Deklarationen in C 1 Deklarationen Deklarationen spielen eine zentrale Rolle in der C-Programmiersprache. Deklarationen Variablen Funktionen Die Deklarationen von Variablen und Funktionen haben viele Gemeinsamkeiten.

Mehr

Kapitel 4: Zeiger. Inhalt. Zeiger Zeigerarithmetik

Kapitel 4: Zeiger. Inhalt. Zeiger Zeigerarithmetik Wintersemester 2005/06 Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fachbereich Informatik Lehrstuhl

Mehr

3. Anweisungen und Kontrollstrukturen

3. Anweisungen und Kontrollstrukturen 3. Kontrollstrukturen Anweisungen und Blöcke 3. Anweisungen und Kontrollstrukturen Mit Kontrollstrukturen können wir den Ablauf eines Programmes beeinflussen, z.b. ob oder in welcher Reihenfolge Anweisungen

Mehr

Zusammengesetzte Datentypen -- Arrays und Strukturen

Zusammengesetzte Datentypen -- Arrays und Strukturen Zusammengesetzte Datentypen -- und Strukturen Informatik für Elektrotechnik und Informationstechnik Benedict Reuschling benedict.reuschling@h-da.de Hochschule Darmstadt Fachbereich Informatik WS 2013/14

Mehr

Java 8. Elmar Fuchs Grundlagen Programmierung. 1. Ausgabe, Oktober 2014 JAV8

Java 8. Elmar Fuchs Grundlagen Programmierung. 1. Ausgabe, Oktober 2014 JAV8 Java 8 Elmar Fuchs Grundlagen Programmierung 1. Ausgabe, Oktober 2014 JAV8 5 Java 8 - Grundlagen Programmierung 5 Kontrollstrukturen In diesem Kapitel erfahren Sie wie Sie die Ausführung von von Bedingungen

Mehr

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

Datenfelder (Arrays) Vektoren, Matrizen, Tabellen. Dr. Beatrice Amrhein

Datenfelder (Arrays) Vektoren, Matrizen, Tabellen. Dr. Beatrice Amrhein Datenfelder (Arrays) Vektoren, Matrizen, Tabellen Dr. Beatrice Amrhein Überblick Eindimensionale Arrays o Deklaration, Initialisierung, Zugriff Mehrdimensionale Arrays o Deklaration, Initialisierung, Zugriff

Mehr

Javakurs für Anfänger

Javakurs für Anfänger Javakurs für Anfänger Einheit 02: Klassen & Objekte Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Heutige Agenda 1. Teil: Klassen Grundstruktur einer Java-Klasse Eigenschaften (Attribute) Variablen

Mehr

Zeiger, Arrays und Strings in C und C++

Zeiger, Arrays und Strings in C und C++ Zeiger, Arrays und Strings in C und C++ 1 Zeiger in Java und C/C++ Zeigervariable (kurz: Zeiger, engl.: pointer): eine Variable, die als Wert eine Speicheradresse enthält Java: Zeiger werden implizit für

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

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java Vorlesung vom 18.4.07, Vordefinierte Datentypen Übersicht 1 Ganzzahlige Typen 2 Boolscher Typ 3 Gleitkommatypen 4 Referenztypen 5 void Typ 6 Implizite und explizite Typumwandlungen Ganzzahlige Typen Die

Mehr

Schachtelung der 2. Variante (Bedingungs-Kaskade): if (B1) A1 else if (B2) A2 else if (B3) A3 else if (B4) A4 else A

Schachtelung der 2. Variante (Bedingungs-Kaskade): if (B1) A1 else if (B2) A2 else if (B3) A3 else if (B4) A4 else A 2.4.6. Kontrollstrukturen if-anweisung: Bedingte Ausführung (Verzweigung) 2 Varianten: if (Bedingung) Anweisung (Anweisung = einzelne Anweisung oder Block) Bedeutung: die Anweisung wird nur ausgeführt,

Mehr

FH D. Objektorientierte Programmierung in Java FH D FH D. Prof. Dr. Ing. André Stuhlsatz. Blöcke. Beispiel: Variablen in Blöcken

FH D. Objektorientierte Programmierung in Java FH D FH D. Prof. Dr. Ing. André Stuhlsatz. Blöcke. Beispiel: Variablen in Blöcken 4 Objektorientierte Programmierung in Java Prof. Dr. Ing. André Stuhlsatz Blöcke Blöcke erweitern einzelne Anweisungen, etwa bei Kontrollstrukturen später Beispiel: Einzelne Anweisung: anweisung; Erweiterung

Mehr

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

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

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

Mehr

Java Einführung Klassendefinitionen

Java Einführung Klassendefinitionen Java Einführung Klassendefinitionen Inhalt dieser Einheit Java-Syntax Klassen definieren Objekte instanziieren Instanzvariable deklarieren Klassenvariable deklarieren 2 Klassen definieren In der Problemanalyse

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

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

Kapitel 9: Klassen und höhere Datentypen. Klassen und höhere. Objekte, Felder, Methoden. Küchlin/Weber: Einführung in die Informatik

Kapitel 9: Klassen und höhere Datentypen. Klassen und höhere. Objekte, Felder, Methoden. Küchlin/Weber: Einführung in die Informatik Klassen und höhere Datentypen Objekte, Felder, Methoden Küchlin/Weber: Einführung in die Informatik Klassen Klasse (class) stellt einen (i.a. benutzerdefinierten) Verbund-Datentyp dar Objekte sind Instanzen

Mehr

Javakurs für Anfänger

Javakurs für Anfänger Javakurs für Anfänger Einheit 06: Arrays Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Heutige Agenda 1. Teil: Arrays Motivation und Eigenschaften Deklaration, Erzeugung und Initialisierung

Mehr

Grundlagen der Informatik Enums, Strings und Arrays

Grundlagen der Informatik Enums, Strings und Arrays Grundlagen der Informatik Enums, Strings und Arrays Prof. Dr. Bernhard Schiefer (basierend auf Unterlagen von Prof. Dr. Duque-Antón) bernhard.schiefer@fh-kl.de http://www.fh-kl.de/~schiefer Inhalt Aufzählungen

Mehr

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

Arrays von Objekten. 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

Bei for-schleifen muss man nur immer bedenken, dass die letzte Anweisung immer erst nach der Ausführung der restlichen Anweisungen der Schleife

Bei for-schleifen muss man nur immer bedenken, dass die letzte Anweisung immer erst nach der Ausführung der restlichen Anweisungen der Schleife 303 Bei for-schleifen muss man nur immer bedenken, dass die letzte Anweisung immer erst nach der Ausführung der restlichen Anweisungen der Schleife durchgeführt wird. 304 305 for-schleifen sind in Aktivitätsdiagrammen

Mehr

Prof. W. Henrich Seite 1

Prof. W. Henrich Seite 1 Klasse - ist ein benutzerdefinierter Datentyp (Referenztyp) - hat Datenelemente - hat Methoden - Konstruktor ist spezielle Methode zum Erstellen eines Objektes vom Typ der Klasse (Instanz) - jede Klasse

Mehr

Schleifen dienen dazu, bestimmte Anweisungen immer wieder abzuarbeiten.

Schleifen dienen dazu, bestimmte Anweisungen immer wieder abzuarbeiten. Folge 6 WHILE-Schleife JAVA 6.1 Schleifen Schleifen dienen dazu, bestimmte Anweisungen immer wieder abzuarbeiten. Zu einer Schleife gehören die Schleifenbedingung und der Rumpf. Die Schleifenbedingung

Mehr

FHZ. K20 Arrays. Lernziele. Hochschule Technik+Architektur Luzern Abteilung Informatik, Fach Programmieren. Inhalt

FHZ. K20 Arrays. Lernziele. Hochschule Technik+Architektur Luzern Abteilung Informatik, Fach Programmieren. Inhalt Inhalt 1. Einführung 2. Array-Komponenten von elementaren Datentypen 3. Array-Komponenten sind Objekte 4. Array als Parameter 5. Kopieren von Arrays 6. Beispiel 7. Vector versus Array Folie 1 Lernziele

Mehr

Man kann bei der Deklaration einen Wert der Variablen angeben oder später den Wert zuweisen. Beide Befehlsfolgen leisten dasselbe:

Man kann bei der Deklaration einen Wert der Variablen angeben oder später den Wert zuweisen. Beide Befehlsfolgen leisten dasselbe: Datentypen Der Typ jeder verwendeten Variablen muss angegeben werden. Folgende Datentypen haben wir kennen gelernt: int negative und positive ganze Zahlen double negative und positive Dezimalzahlen boolean

Mehr

Klausur in 12.1 Themen: Zahlsysteme, Grundlagen von Delphi (Bearbeitungszeit: 90 Minuten)

Klausur in 12.1 Themen: Zahlsysteme, Grundlagen von Delphi (Bearbeitungszeit: 90 Minuten) Name: «Vorname» «Name» Klausur in 12.1 Themen: Zahlsysteme, Grundlagen von Delphi (Bearbeitungszeit: 90 Minuten) Informatik 12 2 VP je 2 VP 6 VP 0 Notieren Sie alle Antworten in einer Word-Datei Klausur1_«Name».doc

Mehr

Schleifen in C/C++/Java

Schleifen in C/C++/Java Schleifen in C/C++/Java Alle 3 Sprachen stellen mindestens die folgenden 3 Schleifenkonstruktionen zur Verfügung. In C gibt es auch keine weiteren, C++, Java und C# haben noch weitere nützliche Varianten.

Mehr

Einführung in den Einsatz von Objekt-Orientierung mit C++ I

Einführung in den Einsatz von Objekt-Orientierung mit C++ I Einführung in den Einsatz von Objekt-Orientierung mit C++ I ADV-Seminar Leiter: Mag. Michael Hahsler Syntax von C++ Grundlagen Übersetzung Formale Syntaxüberprüfung Ausgabe/Eingabe Funktion main() Variablen

Mehr

Übungspaket 29 Dynamische Speicherverwaltung: malloc() und free()

Übungspaket 29 Dynamische Speicherverwaltung: malloc() und free() Übungspaket 29 Dynamische Speicherverwaltung malloc() und free() Übungsziele Skript In diesem Übungspaket üben wir das dynamische Alloziieren 1. und Freigeben von Speicherbereichen 2. von Zeichenketten

Mehr

Advanced Programming in C

Advanced Programming in C Advanced Programming in C Pointer und Listen Institut für Numerische Simulation Rheinische Friedrich-Wilhelms-Universität Bonn Oktober 2013 Überblick 1 Variablen vs. Pointer - Statischer und dynamischer

Mehr

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

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

Mehr

Array-Verwaltung. Array-Verwaltung im Speicher Illustration. Zuweisung von Arrays. Speicherbereinigung. Aliasierung Eine Besonderheit

Array-Verwaltung. Array-Verwaltung im Speicher Illustration. Zuweisung von Arrays. Speicherbereinigung. Aliasierung Eine Besonderheit im Speicher Der Stack Der Heap von Arrays Eine Besonderheit Folie 1 Motivation Betrachten wir folgende Vereinbarung: int[] numbers = new int[6]; Jedes Array wird als zusammenhängender Bereich im Speicher

Mehr

Dr. Monika Meiler. Inhalt

Dr. Monika Meiler. Inhalt Inhalt 6 Referenzdatentypen - Klassen... 6-2 6.1 Deklaration und Instanziierung... 6-3 6.1.1 Festlegen eines Strukturtyps als Klasse... 6-3 6.1.2 Festlegen einer Struktur als Objekt einer Klasse... 6-4

Mehr

Graphische Benutzungsoberflächen mit Java. Einführung in NetBeans

Graphische Benutzungsoberflächen mit Java. Einführung in NetBeans Graphische Benutzungsoberflächen mit Java Einführung in NetBeans Graphische Benutzungsoberflächen! Interaktion mit dem Programm! Datenein- und ausgabe! Rückmeldungen über Verarbeitung der Daten! Visualisierung

Mehr

1. Typen und Literale (6 Punkte) 2. Zuweisungen (6 = Punkte)

1. Typen und Literale (6 Punkte) 2. Zuweisungen (6 = Punkte) Praktische Informatik (Software) Vorlesung Softwareentwicklung 1 Prof. Dr. A. Ferscha Hauptklausur am 01. 02. 2001 Zuname Vorname Matr. Nr. Stud. Kennz. Sitzplatz HS / / / Punkte Note korr. Fügen Sie fehlende

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

Java Cheatsheet. Mehrzeiliger Kommentar (beginnt mit /* und endet mit */)

Java Cheatsheet. Mehrzeiliger Kommentar (beginnt mit /* und endet mit */) Good code is its own best documentation. (Steve McConnell) Java Cheatsheet Java Grundlagen Aufbau einer Klasse Name der Klasse public class MeineKlasse { Textdatei MeineKlasse.java (muss dem Namen der

Mehr

Klassen und Objekte. Einführung in Java. Folie 1 von Mai Ivo Kronenberg

Klassen und Objekte. Einführung in Java. Folie 1 von Mai Ivo Kronenberg Klassen und Objekte Einführung in Java Folie 1 von 28 12. Mai 2011 Ivo Kronenberg Inhalt Objekte Klassendefinitionen Datenelemente (Klassenattribute) Instanzieren von Objekten Konstruktoren Vergleich primitive

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen Tafelübung 04 Referenzen, Overloading, Klassen(hierarchien) Clemens Lang T2 18. Mai 2010 14:00 16:00, 00.152 Tafelübung zu AuD 1/13 Organisatorisches Nächster Übungstermin

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

Informatik. Studiengang Chemische Technologie. Michael Roth WS 2012/2013. michael.roth@h-da.de. Hochschule Darmstadt -Fachbereich Informatik-

Informatik. Studiengang Chemische Technologie. Michael Roth WS 2012/2013. michael.roth@h-da.de. Hochschule Darmstadt -Fachbereich Informatik- Informatik Studiengang Chemische Technologie Michael Roth michael.roth@h-da.de Hochschule Darmstadt -Fachbereich Informatik- WS 2012/2013 Inhalt Teil VII Einstieg in Java I Michael Roth (h_da) Informatik

Mehr

Javaprogrammierung mit NetBeans. Variablen, Datentypen, Methoden

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

Mehr

Einführung in die Programmierung

Einführung in die Programmierung : Inhalt Einführung in die Programmierung Wintersemester 008/09 Zusammengesetzte Datentypen - Feld (array) - Verbund (struct) - Aufzählung (enum) Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering

Mehr

Programmieren I. Kapitel 5. Kontrollfluss

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

Mehr

Klassen mit Instanzmethoden

Klassen mit Instanzmethoden Klassen mit Instanzmethoden Gerd Bohlender Institut für Angewandte und Numerische Mathematik Vorlesung: Einstieg in die Informatik mit Java 3.12.07 G. Bohlender (IANM UNI Karlsruhe) OOP und Klassen 3.12.07

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

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

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

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

Objektorientierte Programmierung. Objektorientierte Programmierung. Klasse. Objekt. Beispiel: Sportfest1. Methode. Eine Einführung mit BlueJ

Objektorientierte Programmierung. Objektorientierte Programmierung. Klasse. Objekt. Beispiel: Sportfest1. Methode. Eine Einführung mit BlueJ Objektorientierte Programmierung Objektorientierte Programmierung Eine Einführung mit BlueJ stellt die Daten, ihre Struktur und ihre Beziehungen zueinander in den Vordergrund. Weniger im Blickpunkt: die

Mehr

6 Speicherorganisation

6 Speicherorganisation Der Speicher des Programms ist in verschiedene Speicherbereiche untergliedert Speicherbereiche, die den eigentlichen Programmcode und den Code der Laufzeitbibliothek enthalten; einen Speicherbereich für

Mehr

Klausur zum Kurs Betriebssysteme (1802) am 19. September 2009

Klausur zum Kurs Betriebssysteme (1802) am 19. September 2009 Fakultät für Mathematik und Informatik Lehrgebiet Kooperative Systeme Prof. Dr. Jörg M. Haake FernUniversität in Hagen 58084 Hagen Vorname Name Straße Hausnr. Informatikzentrum Universitätsstr. 1 58084

Mehr

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

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

Mehr

Grundzüge der Wirtschaftsinformatik WS 2002/03. Wiederholung Java. Programmierzyklus. Heiko Rossnagel Problem

Grundzüge der Wirtschaftsinformatik WS 2002/03. Wiederholung Java. Programmierzyklus. Heiko Rossnagel  Problem Grundzüge der Wirtschaftsinformatik WS 2002/03 Wiederholung Java Heiko Rossnagel www.m-lehrstuhl.de accelerate.com Grundzüge der Wirtschaftsinformatik WS 2002/03 1 Programmierzyklus Problem Formulierung

Mehr

Prof. H. Herbstreith 10. Juli Uhr bis 11:00 Uhr Leistungsnachweis Informatik 1 SS 2001

Prof. H. Herbstreith 10. Juli Uhr bis 11:00 Uhr Leistungsnachweis Informatik 1 SS 2001 Prof. H. Herbstreith 10. Juli 2001 9.30 Uhr bis 11:00 Uhr Leistungsnachweis Informatik 1 SS 2001 Aufgabe 1: Vervollständigen Sie folgende Sätze und schreiben die Ergänzungen auf das Prüfungspapier und

Mehr

Übungen zur Vorlesung Wissenschaftliches Rechnen I. Grundelemente von Java. Eine Anweisung. wird mit dem Wertzuweisungsoperator = geschrieben.

Übungen zur Vorlesung Wissenschaftliches Rechnen I. Grundelemente von Java. Eine Anweisung. wird mit dem Wertzuweisungsoperator = geschrieben. Eine Anweisung wird mit dem Wertzuweisungsoperator = geschrieben. Eine Anweisung wird mit dem Wertzuweisungsoperator = geschrieben. Daher ist y = x + 5.6; keine Gleichung, sondern die Anweisung den Wert

Mehr

Eine Klasse beschreibt Objekte mit gleichen Attributen und Methoden.

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

Mehr

Zeichendarstellung. Zeichen sind Zahlen (in C) Zeichen und switch

Zeichendarstellung. Zeichen sind Zahlen (in C) Zeichen und switch darstellung Arbeiten mit darstellung werden im Computer durch (kleine) Zahlen dargestellt in C können im Datentyp char gespeichert werden, dieser umfasst ein Byte und gilt als Ganzzahltyp darstellung Arbeiten

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

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