Arrays in Java Ein Array ist eine Variable, die aus einer An-zahl von Elementen des gleichen Datentyps besteht, die aufeinanderfolgend im Speicher liegen.

Slides:



Advertisements
Ähnliche Präsentationen
der Universität Oldenburg
Advertisements

Imperative Programmierung
Forschungszentrum caesar
Einführung in die Programmierung Ausführbare Klassen
(kleine!) Java Einführung Mittwoch, Heute Ziel: erstes Java-Programm erstellen Von der Aufgabenstellung bis zur Lösung Grundlagen Einfache.
der Universität Oldenburg
Sequentielle Liste - Array
Ausnahmen HS Merseburg (FH) WS 06/07.
Java: Dynamische Datentypen
Java: Grundlagen der Objektorientierung
FH-Hof Fehlerbehandlung Richard Göbel. FH-Hof Konzept Fehler können mit dem Operator throw einer übergeordneten Funktion signalisiert werden. Parameter.
ARRAY oder FELD oder VEKTOR
Objekte werden als Adressen (Referenzen) übergeben. Dies führt manchmal zu unerwarteten Ergebnissen...
WHILE - Anweisung. Aufgabe : Ausgabe aller ganzen Zahlen von 0 bis 100 auf dem Bildschirm.
Polymorphie (Vielgestaltigkeit)
Polymorphie (Vielgestaltigkeit)
Objekte und Arbeitsspeicher
V AdresseWert public static void main(...){ int[] v; v=new int[2]; } Was veranlasst diese Anweisung im Arbeitsspeicher ? Es wird im Arbeitsspeicher.
FOR Anweisung. Aufgabe : Ausgabe aller ganzen Zahlen von 0 bis 100 auf dem Bildschirm.
Dynamischer Speicher. In einer Funktion wird z.B. mit der Deklaration int i; Speicher auf dem sogenannten Stack reserviert. Wenn die Funktion verlassen.
DO...WHILE Anweisung.
ARRAY oder FELD oder VEKTOR
Programmieren mit JAVA
PKJ 2005/1 Stefan Dissmann Zusammenfassung Bisher im Kurs erarbeitete Konzepte(1): Umgang mit einfachen Datentypen Umgang mit Feldern Umgang mit Referenzen.
Seite 1 Interface - Konzept Ein Interface führt einen neuen Datentyp ein: interface Frau {... } Das Interface enthält Deklarationen ( keine Definitionen.
Java programmieren mit JavaKara
Einführung in die Programmiersprache C 3.Tag Institut für Mathematische Optimierung - Technische Universität Braunschweig.
Javakurs FSS 2012 Lehrstuhl Stuckenschmidt
Vom Umgang mit Daten. public void myProgram() { int[] saeulenWerte = new int[world.getSizeX()]; for (int i = 0; i < saeulenWerte.length; i++) { saeulenWerte[i]
CuP - Java Eingabe über Tastatur, AudioClips, überschreiben, Quiz Montag, 18. November 2002.
Variablenkonzept Klassisch, in Java Basistyp
Optimale Ursprungsgerade
Arrays / Felder Themen: Arrays / Felder / Vektoren Was soll das eigentlich? Erstellen von Arrays Arrays auslesen. Wie sie verwaltet werden.
CuP - Java Vierte Vorlesung Entspricht ungefähr Kapitel 2.1 des Skriptums Montag, 14. Oktober 2002.
Learning By Doing Ausnahmebehandlung Exceptions (Ausnahmebehandlung) Typische Fehlverhalten zur Laufzeit: s. Buch S. 287ff -Verwendung von null-Objekten.
Programmiervorkurs WS 2014/15 Methoden
Java-Kurs - 8. Übung Besprechung der Hausaufgabe.
Programmiervorkurs WS 2014 Referenzdatentypen
CuP - Java Achte Vorlesung Entspricht ungefähr Kapitel 4.1 des Skriptums Montag, 28. Oktober 2002.
Informatik I : Software höhere Programmiersprachen Java Klassen: hat Methoden (Funktionen) und Daten (Variablen) es kann mehrere Klassen geben nur eine.
Java-Kurs - 3. Übung Hausaufgabe Arrays For-Schleifen.
Java-Kurs - 4. Übung Hausaufgabe Weitere Kontrollstrukturen
Diskrete Mathematik I Vorlesung 2 Arrays.
Java-Kurs - 4. Übung Hausaufgabe Weitere Kontrollstrukturen
Java-Kurs Übung Besprechung der Hausaufgabe
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer, Dr. Gerhard Gröger Einführung in die Programmierung mit Java 5. Vorlesung WS 2002/2003.
G. Gröger - Einführung in die Programmierung mit Java - 1. Semester - WS 02/ Übungsaufgabe vom Logische Ausdrücke 1.true & false | true 2.(10>2)
Felder (Arrays).
Pointer. Grundsätzliches: Im Arbeitsspeicher werden Daten gespeichert. Um auf die Daten eindeutig zugreifen zu können, werden diesen Daten Adressen zugeordnet.
OOP mit Java Oder: Java in 5 Tagen. 1. Tag Klassen und Methoden Hello World in Variationen Von Menschen und Geschlechtern Horden (Schlange stehen)
Tutorium Software-Engineering SS14 Florian Manghofer.
Java Programme nur ein bisschen objektorientiert.
Tutorium Software-Engineering SS14 Florian Manghofer.
Konstruktoren.
File Objekt
ARRAY oder FELD oder VEKTOR
Java-Kurs - 4. Übung weitere Kontrollstrukturen
Wiederholungen mit Zähler
Java-Kurs Übung Klassen und Objekte: Vererbung (Fortsetzung)
Java-Kurs - 2. Übung primitive Datentypen, Konstanten
Einführung in die Programmierung mit Java
Reihungen Prof. Dr. Christian Böhm In Zusammenarbeit mit Gefei Zhang
Es gibt Klassen, die mit der Entwicklungsumgebung ausgeliefert werden
Schleifen mit der Turtle
Arrays in Java Ein Array ist eine Variable, die aus einer An-zahl von Elementen des gleichen Datentyps besteht, die aufeinanderfolgend im Speicher liegen.
Arrays in C Ein Array ist eine Variable, die aus einer Anzahl von Elementen des gleichen Datentyps besteht, die aufeinanderfolgend im Speicher liegen.
Implementieren von Klassen
Felder in der Informatik
3. Die Datenstruktur Graph 3.2 Repräsentation von Graphen
Schleifen Datenfelder (Arrays) Verzweigungen
 Präsentation transkript:

Arrays in Java Ein Array ist eine Variable, die aus einer An-zahl von Elementen des gleichen Datentyps besteht, die aufeinanderfolgend im Speicher liegen. Beispiele sind Listen Tabellen Arrays können eine oder mehrere Dimen-sionen haben. (C) Harder 2007 02.12.2018

Beispiele eindimensionale Arrays Listen Vektoren zweidimensionale Arrays Tabellen Matrizen ein TicTacToe-Spielfeld ein Excel-Arbeitsbatt dreidimensionale Arrays „Zauber“würfel (C) Harder 2007 02.12.2018

Eindimensionale Arrays Eindimensionale Arrays sind Listen. Folgende Liste hat 5 Positionen Man muß zwischen der Position der Zelle und dem Inhalt der Zelle unterscheiden. In Java hat die erste Zelle die Positionsnummer 0. Die Zelle an dieser Position enthält den Wert 9. Die letzte Zelle hat die Positionsnummer 4. Ihr Inhalt ist 8. (C) Harder 2007 02.12.2018

Deklaration einer Liste Die Beispielliste Liste wird durch folgende Anweisung dekla-riert: int Liste [ ] = new int [5] ; Die Liste ist vom Typ int. Alle Elemente sind Integerwerte. Die Liste hat 5 Zellen. Die Zellen heißen Liste[0], Liste [1], Liste[2], Liste [3], Liste[4]. Die Liste kann bei der Deklaration durch das Aufzählen der Elementwerte durch die folgende Anweisung initialisiert werden. int Liste [ ] = { 9, 1, 5, 3, 8 } ; (C) Harder 2007 02.12.2018

Wertzuweisung Zugriff auf die im Feld gespeicherten Werte z.B. wie folgt: x = Liste [0] ; // x wird der Wert 9 zugewiesen. y = Liste [4] ; // y wird der Wert 8 zugewiesen. x = Liste [5]; // Anweisung verursacht i. d. Regel einen Speicherzugriffsfehler, da auf Speicherbereich außerhalb des reservierten Bereichs zugegriffen wird. => Bei der Benutzung von Arrays liegt die Verantwor- tung über die Einhaltung der Bereichsgrenzen beim Java-Programmierer ! (C) Harder 2007 02.12.2018

Eingabe Die Eingabe der Werte von Liste kann z:B. mit einem Objekt sc der Klasse Scanner in einer for-Schleife erfol-gen. Dazu deklarieren wir einen Positionszähler pos, der die Zellen von 0 bis 4 zählen kann. Es ist darauf zu achten, daß die letzte Position den Wert 4 hat, pos darf daher den Wert 5 nicht mehr annehmen. for (pos = 0; pos < 5; pos ++) { Liste [ pos ] = sc.nextInt() ; } (C) Harder 2007 02.12.2018

TAB-Abstand herstellen Formatierte Ausgabe Die Werte von Liste können mit einer Schleife ausge- geben werden. Dazu deklarieren wir den Positionszähler pos, der die Zellen von 0 bis 4 zählen kann. Es ist darauf zu achten, daß die letzte Position den Wert 4 hat, pos darf daher den Wert 5 nicht mehr annehmen. for ( pos = 0 ; pos < 5 ; pos++ ) { System.out.print ( Liste [pos] ) ; System.out.print (“\t“) ; } System.out.print (“\n“) ; TAB-Abstand herstellen (C) Harder 2007 02.12.2018

TAB-Abstand herstellen Quellcode Liste.java import java.io.* ; import java.util.* ; import java.util.Scanner.* ; public class Liste { public static void main ( String args[] ) throws IOException Scanner sc = new Scanner (System.in) ; int Liste [ ] = new int [5]; int pos = 0 ; try for ( pos = 0 ; pos < 5 ; pos ++ ) Liste [pos] = sc.nextInt() ; } System.out.print (Liste [pos]) ; System.out.print ("\t") ; catch (Exception ioe) {} TAB-Abstand herstellen (C) Harder 2007 02.12.2018

Zweidimensionale Arrays (C) Harder 2007 02.12.2018

Zweidimensionale Arrays Die Deklaration zweidimensionaler Arrays ist in Java schwie-riger als z.B. in C/C++. Java unterstützt diesen Datentyp nur bedingt. Ein zweidimensionales Array kann nur dadurch dar-gestellt werden, daß man ein eindimensionales Array dekla-riert, dessen Elemente jeweils wieder Listen sind. Schema-tisch sieht das so aus: Liste mit drei Elementen (3 Zeilen (=Listen) Liste mit 4 Elementen (=4 Spalten) (C) Harder 2007 02.12.2018

Zweidimensionale Arrays Ein zweidimensionales (3,4)-Array ist wie folgt aufgebaut: zeilenpos = 0 spaltenpos = 0 3 Zeilen: 0, 1, 2 zeilenpos = 2 spaltenpos = 3 4 Spalten: 0, 1, 2, 3 (C) Harder 2007 02.12.2018

Deklaration eines zweidimensionalen Arrays Die Beispieltabelle Tabelle wird durch folgende Java-An-weisung deklariert int Tabelle [ ][ ] = new int [3][4] ; Die Tabelle ist vom Typ int. Ihre Elemente sind Integerwerte. Die Tabelle hat 12 Zellen. Die Feldelemente von Tabelle heißen Tabelle [0][0], Tabelle [0][1], Tabelle [0][2], Tabelle [0][3], .... Tabelle [2][3]. Die Tabelle kann bei der Deklaration durch das Aufzählen der Elementwerte durch die folgende Anweisung initialisiert werden: int Tabelle [ ] [ ] = { { 3, 2, 4, 3 } , { 6, 1, 4, 5 } , { 6, 7, 8, 1 } } ; (C) Harder 2007 02.12.2018

Eingabe Die Eingabe der Elemente von Tabelle kann z.B. durch eine verschachtelte Schleife erfolgen. . Dazu deklarieren wir einen Zeilenzähler zeilenpos, der die Zeilen von 0 bis 2 zählen kann. Es ist darauf zu achten, daß die letzte Position der Zeile den Wert 2 hat. Dazu deklarieren wir einen Positionszähler spaltenpos, der die Spalten von 0 bis 3 zählen kann. Es ist darauf zu achten, daß die letzte Position der Spalte den Wert 3 hat. Die äußere Schleife durchläuft die Zeilen, die innere die Spalten von Tabelle. (C) Harder 2007 02.12.2018

Ende eingelesene Zeile Eingabe Die Eingabe der Werte von Tabelle kann z.B. mit einem Ob-jekt sc der Klasse Scanner erfolgen. for ( zeilenpos = 0 ; zeilenpos < 3 ; zeilenpos++ ) { for ( spaltenpos = 0 ; spaltenpos < 4 ; spaltenpos++ ) Tabelle [zeilenpos] [spaltenpos] = sc.nextInt ( ) ; } Ende eingelesene Zeile (C) Harder 2007 02.12.2018

Formatierte Ausgabe Die Werte von Tabelle werden durch folgende Schleife zei-lenweise ausgegeben: for ( zeilenpos = 0 ; zeilenpos < 3 ; zeilenpos++ ) { for ( spaltenpos = 0 ; spaltenpos < 4 ; spaltenpos++ ) System.out.print(Tabelle [zeilenpos] [spaltenpos]); System.out.print( “\t“ ) ; } System.out.print( “\n“ ) ; Ende der Ausgabezeile erreicht Zeilenumbruch erzeugen (C) Harder 2007 02.12.2018

Quellcode Tabelle.java import java.io.* ; import java.util.* ; import java.util.Scanner.* ; public class Tabelle { public static void main ( String args[] ) throws IOException { Scanner sc = new Scanner (System.in) ; int Tabelle [ ][ ] = new int [3][4] ; int zeilenpos = 0 , spaltenpos = 0 ; try { for ( zeilenpos = 0; zeilenpos < 3 ; zeilenpos ++ ) { for ( spaltenpos = 0 ; spaltenpos < 4 ; spaltenpos ++ ) { Tabelle [zeilenpos] [spaltenpos] = sc.nextInt() ; } System.out.print (Tabelle [zeilenpos] [spaltenpos]) ; System.out.print ("\t") ; System.out.print ("\n") ; catch (Exception ioe) { } (C) Harder 2007 02.12.2018

Aufgaben Aufgaben (1) Schreiben Sie ein Java-Programm. Das Programm soll ein aus Integerwerten bestehendes (3,4)-Array einlesen und dann wahlweise eine bestimmte Zeile, eine bestimmte Spalte oder das gesamte Array ausgeben. (2) Schreiben Sie ein Java-Programm. Das Programm soll ein aus Integerwerten bestehendes (3,4)-Array einlesen und prüfen, ob ein bestimmter int-Wert (z.B. 5) ein Element des Arrays ist. Ist dies der Fall, soll die Position (Zeile, Spalte) des betreffenden Elements ausgegeben werden. (3) Schreiben Sie ein Java-Programm. Das Programm soll ein aus Integerwerten bestehendes (3,4)-Array einlesen. Das Programm soll den größten Wert des Arrays finden. Das Maximum und seine Position (Zeile, Spalte) sind auszugeben ! (C) Harder 2007 02.12.2018