Arrays. Theorieteil. Inhaltsverzeichnis. Begriffe. Programmieren mit Java Modul 3. 1 Modulübersicht 3

Ähnliche Dokumente
Variablen und Datentypen

+ C - Array (Vektoren, Felder)

Einführung in die Programmierung für NF MI. Übung 04

Kontrollstrukturen und Logik

Variablen und Datentypen

C# - Einführung in die Programmiersprache Arrays, Enumeration und Collections. Leibniz Universität IT Services Anja Aue

Tag 4 Repetitorium Informatik (Java)

Zeiger. C-Kurs 2012, 2. Vorlesung. Tino Kutschbach 10.

Grundlagen der Objektorientierten Programmierung - Statische Arrays

Ausgabe:

Arrays, Simulieren und Modellieren

Grundlagen und Konzepte von C Datenstrukturen

Tag 4 Repetitorium Informatik (Java)

3.2 Datentypen und Methoden

GI Vektoren

C++ - Objektorientierte Programmierung Konstruktoren und Destruktoren

1. Referenzdatentypen: Felder und Strings. Referenz- vs. einfache Datentypen. Rückblick: Einfache Datentypen (1) 4711 r

1. Referenzdatentypen: Felder und Strings

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

Objekttypen. Referenzen, Objekte, Gleichheit, Wrapper, Arrays, mehr-dimensionale Arrays, Bildbearbeitung, krumme Arrays

Arrays. Einleitung. Deklarieren einer Array Variablen

6. Zeiger Allgemeines Definition eines Zeigers

Programmierung mit C Zeiger

Java programmieren mit JavaKara. Eine Zusammenfassung in Beispielen

Modellierung und Programmierung 1

Elementare Datentypen in C++

Reihungen. Martin Wirsing. in Zusammenarbeit mit Matthias Hölzl und Nora Koch 11/03

Objektorientierte Programmierung OOP Programmieren mit Java

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

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

Felder, Zeiger und Adreßrechnung

Programmieren in C/C++ und MATLAB

Felder - Arrays. Typ feldname[] = new Typ[<ganze Zahl >]; Beispiel: double vektor[] = new double[5]; auch eine Initialisierung ist möglich.

Kapitel 3: Variablen

Propädeutikum zur Programmierung

Zusammengesetzte Datentypen -- Arrays und Strukturen

2. Programmierung in C

Wertebereich und Genauigkeit der Zahlendarstellung

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

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

2. Programmierung in C

Die for -Schleife HEUTE. Schleifen. Arrays. Schleifen in JAVA. while, do reichen aus, um alle iterativen Algorithmen zu beschreiben

Einstieg in die Informatik mit Java

Dr. Monika Meiler. Inhalt

Organisatorisches. drei Gruppen Gruppe 1: 10:10-11:40, Gruppe 2: 11:45-13:15 Gruppe 3: 13:20-14:50

Dr. Monika Meiler. Inhalt

Programmieren I. Arrays Heusch 7.2 Ratz Institut für Angewandte Informatik

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

Die Programmiersprache C99: Zusammenfassung

Grundlagen der Programmierung Teil1 Einheit III Okt. 2010

Einführung in die Programmierung für NF MI. Übung 07

Zeiger: Der Adressoperator &

Javaprogrammierung mit NetBeans. Variablen, Datentypen, Methoden

Übungspaket 14 Eindimensionale Arrays

10 Die Programmiersprache C99: Zusammenfassung

Felder (1) Allgemeines

Grundlagen der Programmierung

Einstieg in die Informatik mit Java

Organisatorisches. Neue Übungsblätter: Nur mehr elektronisch? Abgabe Di, , 14 Uhr bis Do, , 8Uhr

Einstieg in die Informatik mit Java

Access [basics] Programmieren mit Arrays. Beispieldatenbank. Arrays. Eindimensionale Arrays. VBA-Grundlagen Programmieren mit Arrays

Java Datentypen und Variablen

Felder. Gerd Bohlender. Einstieg in die Informatik mit Java, Vorlesung vom

Vorlesung Programmieren

II. Grundlagen der Programmierung. Beispiel: Merge Sort. Beispiel: Merge Sort (Forts. ) Beispiel: Merge Sort (Forts. )

Algorithmen und Datenstrukturen

Inhalt. Peter Sobe 63. Felder in C

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

Programmieren I. Arrays Heusch 7.2 Ratz Institut für Angewandte Informatik

Javakurs für Anfänger

Grundlagen der Programmierung

R-Wörterbuch Ein Anfang... ein Klick auf einen Begriff führt, sofern vorhanden, zu dessen Erklärung.

Java - Schleifen. Bedingung. wiederhole. Anweisung Anweisung Anweisung. Leibniz Universität IT Services Anja Aue

Programmieren und Problemlösen. Institut für Computational Science Prof. Dr. H. Hinterberger. Praxismodul 3. Arrays und Prozeduren

Einführung in die Java- Programmierung

VisualBasic - Variablen

C++ - Objektorientierte Programmierung Konstante und statische Elemente

Zeiger, Arrays und Strings in C und C++

Inhalt. 4.5 Arbeit mit Zeigern (engl. Pointer)

Grundlagen von C# - 2

Arrays. PHP JavaScript Kapitel 9

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

1 Klassen und Objekte

C++ - Einführung in die Programmiersprache Arrays

Einstieg in die Informatik mit Java

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

Klassen als Datenstrukturen

Vorlesung Programmieren

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

Arrays und Schleifen

Programmieren in C. Eine Einführung in die Programmiersprache C. Prof. Dr. Nikolaus Wulff

RO-Tutorien 3 / 6 / 12

Strukturierte Datentypen (struct) 2006 Pearson Education, Inc. All rights reserved.

FH D. Objektorientierte Programmierung in Java FH D FH D. Prof. Dr. Ing. André Stuhlsatz. Referenzen. Referenzen

Informatik 1 ( ) D-MAVT F2010. Schleifen, Felder. Yves Brise Übungsstunde 5

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

Einstieg in die Informatik mit Java

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

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

Transkript:

Programmieren mit Java Modul 3 Arrays Theorieteil Inhaltsverzeichnis 1 Modulübersicht 3 2 Eindimensionale Arrays 3 2.1 Arrays deklarieren.............................. 3 2.2 Arrays erzeugen................................ 4 2.3 Arrays initialisieren.............................. 5 2.4 Auf Array-Elemente zugreifen........................ 5 2.5 Array-Durchlauf mit Schleifen........................ 6 2.6 Länge eines Arrays bestimmen........................ 6 3 Zwei- und mehrdimensionale Arrays 7 3.1 Initialisieren und Erzeugen eines zweidimensionalen Arrays........ 7 3.2 Werte ins zweidimensionale Array ein- und auslesen............ 7 3.3 Mehrdimensionale Arrays........................... 8 4 Zeichenketten (Strings) als Arrays 8 Begriffe Datenstruktur Array Array-Index Array-Element Array-Dimension Array-Länge Array-Durchlauf Zweidimensionales Array

Autoren: Lukas Fässler, Barbara Scheuner, David Sichau E-Mail: et@ethz.ch Datum: 07 August 2017 Version: 1.1 Hash: a9ee87a Trotz sorgfältiger Arbeit schleichen sich manchmal Fehler ein. Die Autoren sind Ihnen für Anregungen und Hinweise dankbar! Dieses Material steht unter der Creative-Commons-Lizenz Namensnennung - Nicht kommerziell - Keine Bearbeitungen 4.0 International. Um eine Kopie dieser Lizenz zu sehen, besuchen Sie http://creativecommons.org/licenses/by-nc-nd/4.0/deed.de 2

1 Modulübersicht Mit den Standarddatentypen, die Sie bis hierhin kennen gelernt haben, kann fast jede beliebige Zahl oder jedes beliebige Zeichen dargestellt werden. Oft werden beim Programmieren aber zusammengehörige Daten verwendet (z.b. Lottozahlen, Temperaturen, Abfahrtszeiten). Eine Möglichkeit, eine zusammengehörige Gruppe von Elementen des gleichen Typs abzuspeichern, bieten Arrays (Reihe, Felder). Auf diese Weise muss nicht für jedes Element eine eigene Variable deklariert werden, sondern sie können alle unter einem Bezeichner gespeichert werden. Die Datenstruktur Array kommt in fast jeder modernen Programmiersprache vor. 2 Eindimensionale Arrays Eindimensionale Arrays sind die einfachste Form von Arrays. Sie bestehen aus einer geordneten Menge von n Elementen desselben Datentyps. Die Elemente können über einen sogenannten Index angesprochen werden. Dieser gibt die Position eines Elements im Array an. In vielen Programmiersprachen (so auch in Java) hat das erste Element den Index 0, das zweite den Index 1 und das letzte den Index n 1 (siehe Beispiel in Tabelle 1). Index 0 1 2 3 4 5 Wert 12 13 15 17 23 32 Tabelle 1: Beispiel für ein eindimensionales Array mit sechs Elementen. Folgende Operationen werden mit Arrays typischerweise ausgeführt: Array deklarieren, erzeugen, Werte in ein Array ein- und auslesen. 2.1 Arrays deklarieren Arrays müssen wie Variablen zunächst deklariert werden. Das heisst, es werden Name und Datentyp festgelegt. Um anzuzeigen, dass nicht nur ein Element in der Variablen gespeichert werden kann, werden in Java eckige Klammern [] verwendet. Zur Zeit der Deklaration ist die Anzahl Elemente noch nicht festgelegt. Datentyp[] name; 3

Beispiel: Folgende Anweisung deklariert ein Array mit dem Namen zahlen vom Datentyp Integer: int[] zahlen; 2.2 Arrays erzeugen Um ein Array zu erzeugen, wird der Operator new verwendet. Die Array-Länge (d.h. die Anzahl Elemente) wird in eckigen Klammern [] hinter den Datentyp geschrieben. Ist die Länge einmal festgelegt, kann sie nachher nicht mehr geändert werden. Die Länge des Arrays muss vom Datentyp Integer sein. Die Länge kann mit einer Zahl, einer Konstanten oder einem Ausdruck angegeben werden. name = new Datentyp[anzahl]; Beispiel: Folgende Anweisung erzeugt sechs Speicherplätze im Array mit dem Namen zahlen, in welchem sechs Elemente von Typ int gespeichert werden können: zahlen = new int[6]; // oder zahlen = new int[4+2]; Bei der Erzeugung des Arrays werden die Elemente mit Default-Werten belegt. Beim Datentyp Integer ist dies der Wert 0. Deklaration und Erzeugen von Arrays kann alternativ auch in einer einzigen Anweisung durchgeführt werden. Datentyp[] name = new Datentyp[anzahl]; Beispiel: Folgende Anweisung erzeugt ein Array mit dem Namen zahlen vom Datentyp Integer mit sechs Elementen: int[] zahlen = new int[6]; 4

2.3 Arrays initialisieren Einem Array-Element kann unter Angabe des Indexes ein Wert zugewiesen werden. In Java hat das erste Element den Index 0. Ein Array mit sechs Elementen hat somit die Indizes 0, 1, 2, 3, 4 und 5. name[index] = Wert; Beispiel: So weisen wir dem ersten Element des Arrays den Wert 12 und dem zweiten den Wert 13 zu: zahlen[0] = 12; zahlen[1] = 13; In Java können bei der Erzeugung des Arrays die Elemente auch direkt initialisiert werden, indem geschweifte Klammern { gesetzt und die einzelnen Werte getrennt mit Kommata (,) eingegeben werden. Die Grösse des Arrays wird durch die Anzahl der Werte festgelegt. Der Operator new entfällt in diesem Fall. Typ[] name = {wert1, wert2,..., wertn; Beispiel: Deklaration, Erzeugung und Initialisierung des Arrays zahlen mit den sechs Elementen 12, 13, 15, 17, 22 und 32: int[] zahlen = {12, 13, 15, 17, 22, 32; 2.4 Auf Array-Elemente zugreifen Auf einzelne Elemente eines Arrays wird über einen Index (z.b. i) zugegriffen. x[i] liefert somit das Element aus dem Array x an der Position i. Es gilt zu beachten, dass die Indizes bei 0 beginnen und bei einem weniger als der Anzahl der Elemente des Arrays enden. Es können einzelne Elemente oder Bereiche von Arrays aufgerufen werden und es kann mit Elementen von Arrays gerechnet werden. 5

Beispiel: //Array mit 3 Elementen. int[] c = new int[3]; c[0]=1; c[1]=2; c[2]=3; //Aufruf eines Elements (Resultat: 1). System.out.println(c[0]); //Addition zweier Elemente (Resultat: 5). System.out.println(c[1]+c[2]); 2.5 Array-Durchlauf mit Schleifen Es ist üblich, zur Bearbeitung von Arrays for-schleifen zu verwenden. Der Wert der Laufvariablen entspricht dabei dem Index-Wert des Arrays. Der Aufwand reduziert sich dadurch auf wenige Anweisungen, egal wie viele Elemente ein Array besitzt. Dieser Vorgang wird auch Array-Durchlauf genannt. Beispiel: Mit folgender Anweisung können die sechs Elemente des Arrays zahlen am Bildschirm untereinander ausgegeben werden: for (int i=0; i<6; i++) { System.out.println(zahlen[i]); Die for-schleife zählt von 0 bis 5. Bei jedem Schleifendurchlauf wird die Variable i als Index verwendet, um das Array Element an der entsprechenden Stelle auszugeben. 2.6 Länge eines Arrays bestimmen Jedes Array hat in Java eine Eigenschaft length, mit welcher die Länge des Arrays abgefragt werden kann. Beispiel: for (int i=0; i<zahlen.length; i++) { System.out.println(zahlen[i]); 6

Das ist vor allem beim Durchlaufen des Arrays hilfreich, um die obere Grenze der Schleife auszurechnen. Dies hat den Vorteil, dass bei einer Änderung der Array-Länge die Schleife nicht angepasst werden muss. 3 Zwei- und mehrdimensionale Arrays Besteht ein Element eines Arrays selbst wieder aus einem Array, entsteht ein zweidimensionales Array. Man kann es sich als Tabelle mit m mal n Elementen vorstellen, die jeweils über zwei Indizes angesprochen werden (siehe Beispiel in Tabelle 2). Index 0 1 2 3 4 5 0 12 13 15 17 23 39 1 14 53 45 87 27 62 2 22 33 17 19 83 32 Tabelle 2: Beispiel für ein zweidimensionales Array mit drei mal sechs Elementen. 3.1 Initialisieren und Erzeugen eines zweidimensionalen Arrays Typ[][] name = new Typ[anzahlZeilen][anzahlSpalten]; Beispiel: Folgende Anweisung erzeugt ein zweidimensionales Array mit dem Namen zahlen vom Datentyp Integer mit 3 mal 5 Elementen: int[][]zahlen = new int[3][5]; 3.2 Werte ins zweidimensionale Array ein- und auslesen Um auf ein einzelnes Element eines zweidimensionalen Arrays zuzugreifen, werden die zwei Indizes für die Zeilen- und Spaltennummer angegeben: name[zeilennummer][spaltennummer] = wert; 7

Beispiel: zahlen[0][0] = 22; Um zweidimensionale Arrays iterativ zu bearbeiten, sind geschachtelte Schleifen mit zwei Indexvariablen notwendig. Beispiel: Folgende Zeilen geben alle Elemente des zweidimensionalen Arrays zahlen am Bildschirm aus: for (int i=0; i<3; i++) { for (int j=0; j<6; i++) { System.out.println(zahlen[i][j]); 3.3 Mehrdimensionale Arrays Ein Array kann auch mehr als zwei Dimensionen haben. Für jede weitere Dimension wird ein weiterer Index für den Zugriff auf die Elemente benötigt. 4 Zeichenketten (Strings) als Arrays Wie bereits in Modul 1 erwähnt, ist eine Variable des Types String eine Zusammenfassung mehrerer Variablen des Typs Character (char). In Java wird eine Zeichenkette als Array des Datentyps Character angelegt. Ein String kann somit auch aus einem Character-Array erzeugt werden. Auf die einzelnen Buchstaben im String kann somit auch wie beim Array über den Index zugegriffen werden. Beispiel: char[] meintext = { d, e, r,, T, e, x, t ; String meinstring = new String(meinText); char ersteszeichen= meinstring.charat(0); Bei diesem Beispiel wird als erstes ein char-array der Länge 8 erzeugt und direkt mit acht Zeichen initialisiert. Auf Basis dieses Arrays wird dann ein String erzeugt, der den Text der Text enthält. Aus diesem String wird anschliessend das erste Zeichen ausgelesen. Will man alle Zeichen eines Textes auf diese Weise einzeln auslesen, kann man eine Schleife einsetzen: for (int i=0; i<meinstring.length(); i++){ System.out.print(meinString.charAt(i)); 8