Kurs OPR. Objektorientierte Programmierung

Größe: px
Ab Seite anzeigen:

Download "Kurs OPR. Objektorientierte Programmierung"

Transkript

1 Kurs OPR Objektorientierte Programmierung Lektion: 004-Mehrd.Array, Strings etc. Zürcher Hochschule für Angewandte Wissenschaften Mitglied der Fachhochschule Zürich Version 1.4

2 Inhaltsverzeichnis 1 Zweidimensionale Arrays Ziele Einführung Zweidimensionale Arrays in Java Deklaration und Erzeugung Initialisierung Umgang mit Array-Elementen Übergabe von Arrays als Parameter Beispielprogramm Umsatzzahlen Aufgabe Professionelles Programmieren 13 2 Aufzählungstypen Ziele Einführung Enumerations Professionelles Programmieren 17 3 Reguläre Ausdrücke und StringTokenizer Ziele Reguläre Ausdrücke Klasse StringTokenizer Professionelles Programmieren 20 Mehrd.Array, Strings etc.doc 2010 InIT/ZHAW 2

3 1 Zweidimensionale Arrays 1.1 Ziele Sie können den internen Aufbau eines zweidimensionalen Arrrays in Java anhand einer Grafik erklären. Sie können zweidimensionale Arrays korrekt deklarieren. Sie können mit zweidimensionalen Arrays richtig umgehen (Initialisierung, Zuweisung, Parameterübergabe, Rückgabewert). Sie setzen zweidimensionale Arrays situationsgerecht ein. 1.2 Einführung Beispiel: Umsatzzahlen eines Geschäftes mit 3 Filialen für eine Woche Diese können als Tabelle dargestellt werden: Tag Filiale Montag Dienstag Mittwoch Donnerstag Freitag Samstag Sonntag Zürich Bern Basel Jede Zeile entspricht den Umsatzzahlen einer Filiale für die ganze Woche. Jede Spalte entspricht den Umsatzzahlen für einen Tag in den verschiedenen Filialen. Gemeinsames Merkmal der Zahlen dieser Tabelle: Alle Einträge sind vom gleichen Datentyp. In Java gibt es dafür einen speziellen Datentyp: den zweidimensionalen Array Zweidimensionale Arrays werden häufig gebraucht, z.b.: allgemein Tabellen Matrizenrechnung Darstellung von Bildern Schachbrett 1.3 Zweidimensionale Arrays in Java Wir wissen vom eindimensionalen Array: Er stellt eine Sammlung von Elementen des gleichen Datentyps dar. Diese Elemente können auch Objekte sein. Arrays selber sind ebenfalls Objekte. Die Elemente eines Arrays können selbst auch wieder Arrays sein. Zweidimensionaler Array Mehrd.Array, Strings etc.doc 2010 InIT/ZHAW 3

4 In Java wird deshalb ein zweidimensionaler Array als Array von Arrays implementiert. Die Elemente einer Zeile stehen dabei wie beim eindimensionalen Array hintereinander im Speicher. Aufeinanderfolgende Zeilen müssen jedoch nicht hintereinander im Speicher stehen. Mehrdimensionale Arrays Auf die gleiche Weise können Arrays mit beliebig vielen Dimensionen aufgebaut werden als Array von Arrays von Arrays. Beispiel: Zweidimensionaler Array für die Umsatzzahlen von oben: int[][] umsatz; umsatz = new int [3][7]; 1.4 Deklaration und Erzeugung Deklaration: allgemein: Datentyp [][] Arrayname; EBNF 1: Deklaration eines zweidimensionalen Arrays Datentyp: Datentyp der einzelnen Elemente Array existiert nach der Deklaration noch nicht. Die Grösse des Arrays ist ebenfalls noch nicht bestimmt. Erzeugung des Arrays: Mehrd.Array, Strings etc.doc 2010 InIT/ZHAW 4

5 Arraynname = new Datentyp [AnzahlZeilen][AnzahlSpalten]; EBNF 2: Erzeugung eines zweidimensionalen Arrays Tipp: Verwenden Sie einevariable oder symbolische Konstante für Arraygrössen, nicht numerische Konstante. Beispiel 1: Tagesumsätze einer Woche in 7 verschiedenen Filialen final int ANZ_TAGE = 7; final int ANZ_FILIALEN = 7; //zufällig gleich gross wie ANZTAGE int[][] umsatz; umsatz = new int [ANZ_FILIALEN][ANZ_TAGE]; // besserer Überblick Beispiel 2: Schachbrett String[][] schachbrett; final int GROESSE = 8; schachbrett = new String[GROESSE][GROESSE]; Beispiel 3: Kinoplätze boolean[][] kinoplatz; int anzreihen = 10; anzplaetzeproreihe = 20; kinoplatz = new boolean[anzreihen][anzplaetzeproreihe]; Arraygrenzen müssen nicht immer Konstanten sein, sondern es können auch beliebige Ganzzahl- Ausdrücke mit Variablen sein. Länge der verschiedenen Dimensionen des zweidimensionalen Arrays: Die Anzahl Zeilen stehen in der Variablen: Arrayname.length EBNF 3: Arraylänge Bsp: int anzahlzeilen = umsatz.length; Da jede Zeile des zweidimensionalen Arrays selbst wieder ein Array ist, besitzt jede Zeile eine eigene length-variable, die die Länge der Zeile angibt. Falls die Anzahl Spalten in jeder Zeile gleich sind, kann irgend eine Zeile verwendet werden, um die Anzahl Spalten herauszufinden: int anzahlspalten = umsatz[0].length Randbemerkung: In Java müssen die Zeilen eines zweidimensionalen Arrays nicht unbedingt gleich viele Spalten aufweisen. 1.5 Initialisierung Wie eindimensionale Arrays müssen auch mehrdimensionale Arrays initialisiert werden! Mehrd.Array, Strings etc.doc 2010 InIT/ZHAW 5

6 Möglichkeit 1: Direkt bei Deklaration int [][] tabelle = {{1,0,1,{0,1,0; erzeugt einen Array mit 2 Zeilen und 3 Spalten und initialisiert ihn mit den entsprechenden Werten. Möglichkeit 2: Innerhalb des Programmcodes, normalerweise mit einer oder mehreren for- Schleifen. Aufgabe: Schreiben sie ein kleines Programmstück, das den Array umsatz auf 0 initialisiert. Folgende Deklarationen sind gegeben: Lösung: final int ANZ_TAGE = 7; final int ANZ_FILIALEN = 7; int[][] umsatz = new int [ANZ_FILIALEN][ANZ_TAGE]; 1.6 Umgang mit Array-Elementen Ein einzelnes Element eines Arrays verhält sich wie eine Variable vom gleichen Typ. Für den Zugriff auf einzelnes Element des zweidimensionalen Arrays braucht es 2 Indices: allgemein: Arrayname[zeilenindex][spaltenindex] EBNF 4: Zugriff auf ein Element eines zweidim. Arrays Beispiel: umsatz[2][3] bezeichnet das Element in der 3. Zeile und 4. Spalte des Arrays umsatz. Beachten Sie auch hier: Mehrd.Array, Strings etc.doc 2010 InIT/ZHAW 6

7 Das 1. Element in der 1. Zeile eines zweidimensionalen Arrays hat die Indices [0][0] Die Indices selbst können auch Ausdrücke mit Variablen sein. Da in Java ein zweidimensionaler Array als Array von Arrays implementiert ist, kann auf eine Zeile des Arrays auch als Ganzes zugegriffen werden. Beispiel: umsatz[2] Dies bezeichnet die Zeile 3 vom zweidimensionalen Array umsatz Dies ist ein eindimensionaler Array mit 7 Elementen. 1.7 Übergabe von Arrays als Parameter Auch zweidimensionale Arrays werden einer Methode als Referenz übergeben. Beispiel 1: Methode für die Berechnung der Summe über alle Elemente eines beliebigen zweidimensionalen Arrays: public int sum(int[][] arr){ int total = 0; for (int row = 0; row < arr.length; row++){ for (int col = 0; col < arr[row].length; col++){ total = total + arr[row][col]; return total; Programm 1: Methode, die die Summe über einen 2-dim. Array berechnet Beachten Sie: Bei der Parameterdeklaration des zweidimensionalen Arrays müssen die Grenzen des Arrays nicht angegeben werden. Es können somit beliebig grosse Arrays mit der Methode sum verarbeitet werden. Die aktuellen Arraygrenzen in den verschiedenen Dimensionen stehen in den jeweiligen length-variablen. Beispiel eines Aufrufs der Methode sum : int total; int[][] umsatz = new int [4][7];... total = sum(umsatz); Mehrd.Array, Strings etc.doc 2010 InIT/ZHAW 7

8 Beispiel 2: Die Methode createzeromatrix in initialisiert einen bliebigen zweidimensionalen Array mit Nullen. public int[][] createzeromatrix(int rows, int cols){ int[][] matrix = new int[rows][cols]; for (int row = 0; row < rows; row++){ for (int col = 0; col < cols; col++){ matrix[row][col] = 0; return matrix; Programm 2: Methode, die einen 2-dim. Array erzeugt und mit 0 initialisiert. Beispiel eines Aufrufs der Methode createzeromatrix: int[][] mymatrix = createzeromatrix(3,5); Dieser Aufruf erzeugt einen 2-dim. Array mit 3 Zeilen à 5 Spalten gefüllt mit Nullen. 1.8 Beispielprogramm Umsatzzahlen Das Programm Umsatzzahlen (Programm 3)stellt eine Tabelle für das Eintragen der Tagesumsätze verschiedener Filialen zur Verfügung (siehe Abbildung 1 ). Der Benützer gibt beim Textfeld die gewünschte Umsatzzahl ein. Das Applet berechnet sodann die Umsatztotale pro Filiale und pro Tag und stellt sie dar. Mehrd.Array, Strings etc.doc 2010 InIT/ZHAW 8

9 Abbildung 1: Applet Umsatzzahlen Der Programmcode des Applets Umsatzzahlen ist in Programm 3 aufgelistet. Mehrd.Array, Strings etc.doc 2010 InIT/ZHAW 9

10 import java.awt.*; import java.applet.applet; import java.awt.event.*; public class Umsatzzahlen extends Applet implements ActionListener{ private final int ANZ_FILIALEN = 3; private final int ANZ_TAGE = 7; private TextField[][] filialenumsaetzetf = new TextField[ANZ_FILIALEN+1][ANZ_TAGE+1]; private int[][] filialenumsaetze = new int[anz_filialen][anz_tage]; private int[] tagesumsatztotal = new int[anz_tage]; private int[] filialenumsatztotal = new int[anz_filialen]; private int gesamtumsatz = 0; public void init() { setsize(380,250); // Fenstergrösse setzen // Titel setzen Label title = new Label("Bitte Tagesumsatz pro Filiale im " + "entsprechenden Feld eingeben "); add(title); // Header-Labels add(new Label("Filiale ")); for (int tag = 1; tag <= ANZ_TAGE; tag++){ add(new Label(" T"+tag)); add(new Label("Total")); // Ein Textfeld für jede Filiale und jeden Tag // 1. Kolonne: Filialennummer for(int filiale = 0; filiale < ANZ_FILIALEN+1; filiale++){ add(new Label(" "+filiale+" ")); for(int tag = 0; tag < ANZ_TAGE+1; tag++){ filialenumsaetzetf[filiale][tag] = new TextField("0"); add(filialenumsaetzetf[filiale][tag]); filialenumsaetzetf[filiale][tag].addactionlistener(this); filialenumsaetzetf[filiale][anz_tage].seteditable(false); for(int tag = 0; tag < ANZ_TAGE+1; tag++){ filialenumsaetzetf[anz_filialen][tag].seteditable(false); Mehrd.Array, Strings etc.doc 2010 InIT/ZHAW 10

11 public void actionperformed(actionevent event) { umsatzzahleneinlesen(); berechneumsatztotale(); umsatzzahlenausgeben(); repaint(); // Berechnet Tages-, Filialen- und Gesamtumsatz private void berechneumsatztotale(){ gesamtumsatz = 0; for(int filiale = 0; filiale < ANZ_FILIALEN; filiale++) { filialenumsatztotal[filiale] = 0; for(int tag = 0; tag < ANZ_TAGE; tag++) { filialenumsatztotal[filiale] += filialenumsaetze[filiale][tag]; // Tagesumsätze der Filialen aufsummieren switch (filiale){ case 0: tagesumsatztotal[tag] = filialenumsaetze[filiale][tag]; break; default: tagesumsatztotal[tag] += filialenumsaetze[filiale][tag]; gesamtumsatz += filialenumsatztotal[filiale]; private void umsatzzahleneinlesen(){ for(int filiale = 0; filiale < ANZ_FILIALEN; filiale++) { for(int tag = 0; tag < ANZ_TAGE; tag++) { filialenumsaetze[filiale][tag] = Integer.parseInt(filialenUmsaetzeTF[filiale][tag]. gettext()); private void umsatzzahlenausgeben(){ Mehrd.Array, Strings etc.doc 2010 InIT/ZHAW 11

12 for(int filiale = 0; filiale < ANZ_FILIALEN; filiale++) { filialenumsaetzetf[filiale][anz_tage].settext("" + filialenumsatztotal[filiale]); for(int tag = 0; tag < ANZ_TAGE; tag++) { filialenumsaetzetf[anz_filialen][tag].settext("" + tagesumsatztotal[tag]); filialenumsaetzetf[anz_filialen][anz_tage].settext("" + gesamtumsatz); Programm 3: Umsatzzahlen 1.9 Aufgabe Schreiben Sie eine Methode, die die Elemente einer beliebigen reellen Matrix mit einer Konstanten multipliziert. Dabei soll die gegebene Matrix nicht verändert werden. Lösung: Mehrd.Array, Strings etc.doc 2010 InIT/ZHAW 12

13 1.10 Professionelles Programmieren Array-Längen mit aussagekräftigen final Konstanten definieren. Methoden sollten übergebene Arrays (generell Objekte) nur lesen, aber nicht verändern. Stattdessen sollten sie auf einer Kopie des übergebenen Arrays arbeiten und das Resultat als Rückgabewert zurückgeben. Nicht null zurückgeben, wenn Array erwartet wird sondern ein Array mit Länge 0 in der ersten Dimension Keine Referenzen auf Array-Konstanten nach aussen geben, da nur die Referenz konstant ist, die Werte im Array können trotzdem verändert werden (Sicherheitslücke). Mehrd.Array, Strings etc.doc 2010 InIT/ZHAW 13

14 2 Aufzählungstypen 2.1 Ziele Sie können eigene Aufzählungstypen deklarieren. Sie verwenden eigene Aufzählungstypen situationsgerecht. 2.2 Einführung Oft hat man es in Programmen mit einer vordefinierte Menge von Dingen zu tun, die eindeutig definiert sind: Beispiele Wochentage: Montag, Dienstag, Mittwoch, Donnerstag, Freitag Geschlecht: männlich, weiblich Kleidergrösse: S, M, L, XL Probleme: Wenn man diese Werte einfach als Strings implementiert, muss man jedesmal überprüfen, ob ein String-Wert z.b. ein gültiger Wochentag ist. Zudem muss man Gross- und Kleinschreibung berücksichtigen. Implementiert man jeden Aufzählungswert durch eine int-konstante, so muss man ebenfalls überprüfen, ob ein gegebener Wert überhaupt gültig ist. Zudem muss man die Zuordnung der Zahlen z.b. zu den einzelnen Wochentagen kennen. 2.3 Enumerations Enumerations sind vom Programmierer definierte Datentypen für Aufzählungen, sogenannte Aufzählungstypen Damit kann man einen eigenen Datentyp z.b. für die Wochentage definieren Vorteil: Es können nur gültige Wochentage im Programm verwendet werden (Compiler überprüft dies) Die Wochentage tauchen wirklich als solche im Programm auf, was die Lesbarkeit der Programme stark erhöht. Deklaration von Aufzählungstypen enum Enumtyp { el1, el2,..., eln EBNF 5: Deklaration einer Enumeration Beispiele enum Tag { MONTAG, DIENSTAG, MITTWOCH, DONNERSTAG, FREI- TAG, SAMSTAG, SONNTAG enum Wochentag { MONTAG, DIENSTAG, MITTWOCH, DONNERSTAG, FREITAG enum Geschlecht { MAENNLICH, WEIBLICH enum Kleidergroesse { S, M, L, XL Mehrd.Array, Strings etc.doc 2010 InIT/ZHAW 14

15 Wo werden Aufzählungstypen deklariert? emum-deklarationen werden normalerweise wie eine eigene Klasse deklariert enum-deklarationen können aber auch innerhalb einer anderen Klasse deklariert werden Sie müssen aber immer ausserhalb der Methoden deklariert sein, wie Instanzvariablen-Deklarationen Deklaration einer Variablen eines Aufzählungstyps Gleich wie eine Instanzvariablendeklaration einer normalen Klasse Beispiele: Wochentag tag; Geschlecht g = Geschlecht.MAENNLICH; Kleidergroesse size = Kleidergroesse.S; Verwendung von Aufzählungstypen Variablen von Aufzählungstypen können wie normale Variablen verwendet werden. Es können ihnen allerdings nur Werte zugewiesen werden, die im Aufzählungstyp definiert sind. Die Werte eines Aufzählungstyps werden wie statische Klassenvariablen angesprochen Beispiele: tag = Wochentag.DIENSTAG; // ok tag = DIENSTAG // falsch, Typ-Name fehlt! tag = "DIENSTAG"; // falsch, String statt Wochentag tag = Wochentag.dienstag; // falsch, Dienstag nicht gleich // geschrieben wie in der // Enum-Deklaration Aufzählungswerte können nur innerhalb desselben Aufzählungstyps zugewiesen und verglichen werden tag = Wochentag.MONTAG; tag = Tag.MONTAG; // ok, derselbe Aufzählungstyp // falsch, nicht derselbe // Aufzählungstyp Wie werden Aufzählungstypen in Java implementiert: Im Hintergrund erzeugt Java für jeden Aufzählungstyp eine entsprechende Klasse mit den nötigen Konstanten-Definitionen Beispiel: enum Kleidergrösse {S, M, L, XL erzeugt eine Klasse Kleidergroesse mit den entsprechenden Konstanten. Dazu werden Objekte der Enumeration-Klasse als Konstanten (siehe Abschnitt Fehler! Verweisquelle konnte nicht gefunden werden.) der Klasse Kleidergroesse deklariert: class Kleidergroesse{ public final static Kleidergroesse S = new Kleidergroesse(); public final static Kleidergroesse M = new Kleidergroesse(); public final static Kleidergroesse L = new Kleidergroesse(); public final static Kleidergroesse XL = new Kleidergroesse(); Mehrd.Array, Strings etc.doc 2010 InIT/ZHAW 15

16 Eine generierte Aufzählungs-Klasse Enum enthält verschiedene vordefinierte Methoden: static Enum valueof(string s) gibt den Aufzählungswert zum entsprechenden Namen (String) zurück static Enum[] values() liefert einen Array mit allen Aufzählungswerten zurück int ordinal() Die Aufzählungswerte weisen ein bestimmte Reihenfolge auf, wobei das erste Aufzählungselement den Index 0 hat. ordinal() gibt den Index eines Aufzählungselementes zurück int compareto(enum e) vergleicht zwei Aufzählungswerte anhand ihrer Indices boolean equals(enum e) vergleicht zwei Enum-Werte. Enum-Werte können auch mit == verglichen werden. Neben den generierte Methoden können auch eigene Methoden zu Aufzählungsklassen hinzugefügt werden Beispiel Tag: enum Tag { MONTAG, DIENSTAG, MITTWOCH, DONNERSTAG, FREITAG, SAMSTAG, SONNTAG; boolean istwochenende(){ return this == SAMSTAG this == SONNTAG; Aufruf der Methoden der Aufzählungsklasse public class Enumeration extends Applet { public void paint(graphics g){ Tag t = Tag.SONNTAG; g.drawstring("heute ist " + t.tostring(), 50, 50); if (t.istwochenende()){ g.drawstring("es ist Wochenende", 50, 70); Der Output des obigen Applets Enumeration ist in Abbildung 2 dargestelllt Mehrd.Array, Strings etc.doc 2010 InIT/ZHAW 16

17 Abbildung 2: Applet Enumeration Aufgabe: Schreiben sie die Methode boolean istarbeitstag() für die obige enum Tag. 2.4 Professionelles Programmieren Enumerations verwenden statt int- oder String-Konstanten: Enums haben aussagekräftige Namen Wertebereich ist vorgegen und wird vom Compiler überprüft Keine Probleme mit Tippfehlern wie bei Strings Mehrd.Array, Strings etc.doc 2010 InIT/ZHAW 17

18 3 Reguläre Ausdrücke und StringTokenizer 3.1 Ziele Sie können mit einfachen regulären Ausdrücken umgehen. Sie setzen die Klasse StringTokenizer situationsgerecht ein. 3.2 Reguläre Ausdrücke Reguläre Ausdrücke sind eine Metasprache, mit der man effizient eine ganze Klasse von Strings beschreiben kann. Damit kann man einfach nach Strings, die bestimmte Eigenschaften aufweisen, suchen und/oder sie ersetzen. Beispiel: Im Programm Sales sollen alle int-variablen durch long-variablen ersetzt werden. Ersetzt man nun einfach alle int-vorkommen durch float, so wird z.b. auch repaint() ersetzt durch repafloat() oder Integer.parseInt(...) durch floateger.parsefloat(...)! Mit Hilfe von regulären Ausdrücken würde man das Ersetzen folgendermassen einschränken: Ersetze alle Vorkommen von int gefolgt von mindestens einem Leerschlag durch float. Der dazu nötige reguläre Ausdruck, um nur diese Vorkommen von int zu finden, würde folgendermassen aussehen:.*int[ ]+.* Um einen regulären Ausdruck zu spezifizieren, braucht es Metasymbole wie bei EBNF. Die wichtigsten Metasymbole für reguläre Ausdrücke sind zusammen mit ihrer Bedeutung und Beispielen in Tabelle aufgelistet. Metasymbol Beispiel Bedeutung Menge der gültigen Literale * ax*b 0 oder mehrere x ab, axb, axxb, axxxb,... + ax+b 1 oder mehrere x axb, axxb, axxxb,...? ax?b x optional ab, axb a b a oder b a, b () x(a b) x Gruppierung xax, xbx. a.b Ein beliebiges Zeichen aab, acb, azb, a[b,... [ ] [abc]x 1 Zeichen aus einer Klasse ax, bx, cx [-] [a-h] Zeichenbereich a, b, c,..., h Tabelle 1: Metasymbole für reguläre Ausdrücke Mehrd.Array, Strings etc.doc 2010 InIT/ZHAW 18

19 Übungsbeispiele: Finden Sie für die in Tabelle aufgeführten regulären Ausdrücke alle gültigen Beispiele, die dem regulären Ausdruck entsprechen. Regulärer Ausdruck Menge der gültigen Literale a?b+ {ein, eine, einer a(x y)?b* Java-Bezeichner alle ganze Zahlen Tabelle 2: Ergänzen Sie obige Tabelle Die wichtigsten Methoden der Klasse String, die reguläre Ausdrücke verwenden: boolean matches(string regexp) gibt an, ob der String dem in regexp angegebenen regulären Ausdruck entspricht. Beispiele: String text = "Hallo Welt", neu; boolean passt; passt = text.matches("h.*w.*"); // gibt true zurück passt = text.matches("h..o Wel?t"); // gibt false zurück passt = text.matches("h[alo]* W[elt]+"); // gibt true zurück passt = text.matches("hal+o Welt.+"); // gibt false zurück String replaceall(string regexp, String replacestr) ersetzt alle Substrings des gegebenen Strings, die dem regulären Ausdruck regexp entsprechen, durch replacestr. Beispiel: neu = text.replaceall( l+, LL ); // neu = HaLLo WeLLt String replacefirst(string regexp, String replacestr) wie replaceall, ersetzt aber nur das erste Vorkommen von regexp im gegebenen String. Beispiel: neu = text.replacefirst( l+, LL ); // neu = HaLLo Welt String[] split(string regexp) teilt den gegebenen String in Substrings auf, wobei Zeichenfolgen, die dem regulären Ausdruck regexp entsprechen, als Grenzmarken interpretiert werden. Mehrd.Array, Strings etc.doc 2010 InIT/ZHAW 19

20 Beispiele: String[] teile = text.split("[ l]"); // teile[0] = "Ha", teile[1] ="", teile[2] = "o", // teile[3] = "We", teile[4] = "t" String[] teile = text.split(" l"); // teile[0] = "Hallo Welt" 3.3 Klasse StringTokenizer Die Klasse StringTokenizer teilt einen gegebenen String in Substrings (Tokens) auf, wobei die Tokens durch Grenzmarken voneinander getrennt sind. Beispiel: String data = "4, 5, 6 2,8,, 100, 18"; String grenzmarken = ","; // Grenzmarken sind Kombinationen von // " " und/oder "," StringTokenizer tokens = new StringTokenizer(data, grenzmarken); Beliebige Kominationen von " " und "," (z.b.",," werden zu einem einzigen Delimiter zusammen gefasst. Der String data im obigen Beispiel zählt also nur 7 Tokens. Nach dem Erzeugen des StringTokenizer-Objekts tokens enthält dieses die Tokens des analysierten Strings data. Folgende Methoden des StringTokenizer-Objekts stehen dann zur Verfügung: String nexttoken() gibt nächstes Token zurück boolean hasmoretokens() gibt true zurück, falls noch Tokens vorhanden sind int counttokens() gibt die Anzahl noch verfügbarer Tokens zurück Beispiel: int x = 20, y = 20; while (tokens.hasmoretokens()) { g.drawstring(tokens.nexttoken(), x, y); y = y + 15; 3.4 Professionelles Programmieren Mehrd.Array, Strings etc.doc 2010 InIT/ZHAW 20

Objektorientierte Programmierung. Kapitel 22: Aufzählungstypen (Enumeration Types)

Objektorientierte Programmierung. Kapitel 22: Aufzählungstypen (Enumeration Types) Stefan Brass: OOP (Java), 22. Aufzählungstypen 1/20 Objektorientierte Programmierung Kapitel 22: Aufzählungstypen (Enumeration Types) Stefan Brass Martin-Luther-Universität Halle-Wittenberg Wintersemester

Mehr

Arrays. Einleitung. Deklarieren einer Array Variablen

Arrays. Einleitung. Deklarieren einer Array Variablen Arrays Einleitung bisher jede Variable einzeln deklariert: 12 3 14 12 32 32 3 32 5 3 double sum; int count; ÿ Sie können Zweck und Aufbau von Array-Datentypen erklären ÿ Sie können einen Array korrekt

Mehr

INE2 Von C zu Java Teil 2: Arrays und Strings. Arrays Referenzdatentypen Strings

INE2 Von C zu Java Teil 2: Arrays und Strings. Arrays Referenzdatentypen Strings INE2 Von C zu Java Teil 2: Arrays und Strings Arrays Referenzdatentypen Strings 1 Arrays 2 von 64 Array Was ist ein Array? 15 12 17 18 21 8 33 1 14 15 8 12 33 17 18 1 21 14 Index: 0 1 2 3 4 5 6 7 8 Ein

Mehr

INE2 Von C zu Java Teil 2: Arrays und Strings. Arrays Werte- und Referenzdatentypen Strings

INE2 Von C zu Java Teil 2: Arrays und Strings. Arrays Werte- und Referenzdatentypen Strings INE2 Von C zu Java Teil 2: Arrays und Strings Arrays Werte- und Referenzdatentypen Strings 1 Arrays 2 von 65 Array Was ist ein Array? 15 12 17 18 21 8 33 1 14 15 8 12 33 17 18 1 21 14 Index: 0 1 2 3 4

Mehr

Suchen in Texten. Sie wissen wie in einem Text gesucht werden kann Sie wissen wie Suchmaschinen arbeiten Sie können mit Regex in Java umgehen

Suchen in Texten. Sie wissen wie in einem Text gesucht werden kann Sie wissen wie Suchmaschinen arbeiten Sie können mit Regex in Java umgehen Suchen in Texten Sie wissen wie in einem Text gesucht werden kann Sie wissen wie Suchmaschinen arbeiten Sie können mit Regex in Java umgehen Finden eines Teilstrings in einem String D r e i r e i n e R

Mehr

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

Arrays. Theorieteil. Inhaltsverzeichnis. Begriffe. Programmieren mit Java Modul 3. 1 Modulübersicht 3 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................................

Mehr

Einführung in C. Alexander Batoulis. 5. Mai Fakutltät IV Technische Universität Berlin

Einführung in C. Alexander Batoulis. 5. Mai Fakutltät IV Technische Universität Berlin Fakutltät IV Technische Universität Berlin 5. Mai 2014 Inhaltsverzeichnis 1 2 3 4 5 6 7 Überblick Beispielprogramm in Java Beispielprogramm in C 1 2 3 4 5 6 7 Beispielprogramm in Java Beispielprogramm

Mehr

Heute. Nachbetrachtung Wissensüberprüfung. Sortieren Interface Comparable TreeSet Sortieren von Arrays: Arrays.sort() 3.12.

Heute. Nachbetrachtung Wissensüberprüfung. Sortieren Interface Comparable TreeSet Sortieren von Arrays: Arrays.sort() 3.12. Heute Nachbetrachtung Wissensüberprüfung Sortieren Interface Comparable TreeSet Sortieren von Arrays: Arrays.sort() 3.12.2015 IT I - VO 9 1 Organisatorisches Zwischentest findet am 16.12. von 17:30 bis

Mehr

Probeklausur Informatik 2 Sommersemester 2013

Probeklausur Informatik 2 Sommersemester 2013 Probeklausur Informatik 2 Sommersemester 2013 1 Probeklausur Informatik 2 Sommersemester 2013 Name: Matrikelnummer: Hilfsmittel: Es sind alle schriftlichen Unterlagen, aber keine elektronischen Hilfsmittel

Mehr

Softwareentwicklung II (IB) Enum-Klassen. Prof. Dr. Oliver Braun. Fakultät für Informatik und Mathematik Hochschule München

Softwareentwicklung II (IB) Enum-Klassen. Prof. Dr. Oliver Braun. Fakultät für Informatik und Mathematik Hochschule München Softwareentwicklung II (IB) Enum-Klassen Fakultät für Informatik und Mathematik Hochschule München Letzte Änderung: 02.03.2018 12:40 Inhaltsverzeichnis Idee......................................... 1 Definition......................................

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

Datenstrukturen / Container in Java

Datenstrukturen / Container in Java Datenstrukturen / Container in Java Mathematik / Algebraischer Datentyp / Containerklassen Enum-Klassen Arrays (Felder) = elementare Container Algorithmen mit Arrays Prof. Dr. E. Ehses, 2014 1 Mathematik

Mehr

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

Die for -Schleife HEUTE. Schleifen. Arrays. Schleifen in JAVA. while, do reichen aus, um alle iterativen Algorithmen zu beschreiben 18.11.5 1 HEUTE 18.11.5 3 Schleifen Arrays while, do reichen aus, um alle iterativen Algorithmen zu beschreiben Nachteil: Steuermechanismus ist verteilt Übersicht nicht immer leicht dazu gibt es for (

Mehr

Enum-Klassen. Softwareentwicklung II (IB) Prof. Dr. Oliver Braun Letzte Änderung: :36. Enum-Klassen 1/12

Enum-Klassen. Softwareentwicklung II (IB) Prof. Dr. Oliver Braun Letzte Änderung: :36. Enum-Klassen 1/12 Enum-Klassen Softwareentwicklung II (IB) Prof. Dr. Oliver Braun Letzte Änderung: 05.04.2018 17:36 Enum-Klassen 1/12 Idee int, double und boolean speichern Zahlen und Wahrheitswerte Oft abgegrenzte Sammlung

Mehr

Einstieg in die Informatik mit Java

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

Mehr

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

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

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

Mehr

Felder, Zeiger und Adreßrechnung

Felder, Zeiger und Adreßrechnung Felder, Zeiger und Adreßrechnung Felder bestehen aus Variablen eines einzigen Datentyps. Bisher kennen wir eindimensionale Felder. In C sind Felder mit beliebigen Dimensionen möglich. Unsere räumliche

Mehr

Martin Unold INFORMATIK. Geoinformatik und Vermessung

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

Mehr

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

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

Mehr

Programmierung und Angewandte Mathematik

Programmierung und Angewandte Mathematik Programmierung und Angewandte Mathematik C++ /Scilab Programmierung und Einführung in das Konzept der objektorientierten Anwendungen zu wissenschaftlichen Rechnens SS 2012 Ablauf Was sind Funktionen/Methoden

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 21 Einstieg in die Informatik mit Java Felder, eindimensional Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 21 1 Überblick: Was sind Felder? 2 Vereinbarung von Feldern

Mehr

Variablen. int Flugzeug. float. I write code Hund. String. long. Borchers: Programmierung für Alle (Java), WS 06/07 Kapitel

Variablen. int Flugzeug. float. I write code Hund. String. long. Borchers: Programmierung für Alle (Java), WS 06/07 Kapitel 4213 Variablen 17.834 float Flugzeug 36812736294 I write code Hund long String Borchers: Programmierung für Alle (Java), WS 06/07 Kapitel 3 + 4 1 Variablen sind wie Becher. Sie speichern etwas. // Variablen

Mehr

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

1. Referenzdatentypen: Felder und Strings. Referenz- vs. einfache Datentypen. Rückblick: Einfache Datentypen (1) 4711 r 1. Felder und Strings Eigenschaften von Referenzdatentypen 1. Referenzdatentypen: Felder und Strings Referenzdatentypen sind Konstrukte, mit deren Hilfe wir aus einfachen Datentypen neue eigene Typen erzeugen

Mehr

1. Referenzdatentypen: Felder und Strings

1. Referenzdatentypen: Felder und Strings 1. Felder und Strings Eigenschaften von Referenzdatentypen 1. Referenzdatentypen: Felder und Strings Referenzdatentypen sind Konstrukte, mit deren Hilfe wir aus einfachen Datentypen neue eigene Typen erzeugen

Mehr

Grundlagen der Programmierung Teil1 Einheit III Okt. 2010

Grundlagen der Programmierung Teil1 Einheit III Okt. 2010 Grundlagen der Programmierung Teil1 Einheit III - 22. Okt. 2010 GDP DDr. Karl D. Fritscher basierend auf der Vorlesung Grundlagen der Programmierung von DI Dr. Bernhard Pfeifer Einschub Bevor wir mit den

Mehr

Reihungen. Prof. Dr. Christian Böhm. In Zusammenarbeit mit Gefei Zhang. WS 07/08

Reihungen. Prof. Dr. Christian Böhm. In Zusammenarbeit mit Gefei Zhang.   WS 07/08 Reihungen Prof. Dr. Christian Böhm In Zusammenarbeit mit Gefei Zhang http://www.dbs.ifi.lmu.de/lehre/nfinfosw WS 07/08 2 Ziele Die Datenstruktur der Reihungen verstehen: mathematisch und im Speicher Grundlegende

Mehr

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

C# - Einführung in die Programmiersprache Arrays, Enumeration und Collections. Leibniz Universität IT Services Anja Aue C# - Einführung in die Programmiersprache Arrays, Enumeration und Collections Leibniz Universität IT Services Anja Aue Arrays... speichern mehrere Werte vom gleichen Datentyp. fassen zusammenhängende Werte

Mehr

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

Objekte. Theorieteil. Inhaltsverzeichnis. Begriffe. Programmieren mit Java Modul 5. 1 Modulübersicht 3 Programmieren mit Java Modul 5 Objekte Theorieteil Inhaltsverzeichnis 1 Modulübersicht 3 2 Klassen und Objekte 3 2.1 Klassen.................................... 4 2.2 Objektvariablen und Methoden.......................

Mehr

5.4 Arrays. Oft müssen viele Werte gleichen Typs gespeichert werden. Idee: Lege sie konsekutiv ab! Greife auf einzelne Werte über ihren Index zu!

5.4 Arrays. Oft müssen viele Werte gleichen Typs gespeichert werden. Idee: Lege sie konsekutiv ab! Greife auf einzelne Werte über ihren Index zu! 5.4 Arrays Oft müssen viele Werte gleichen Typs gespeichert werden. Idee: Lege sie konsekutiv ab! Greife auf einzelne Werte über ihren Index zu! Feld: Index: 17 3-2 9 0 1 0 1 2 3 4 5 Harald Räcke 114/656

Mehr

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

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

Mehr

Anweisungen zur Ablaufsteuerung

Anweisungen zur Ablaufsteuerung Anweisungen zur Ablaufsteuerung if-else switch while do-while for Ausdrücke Ein Ausdruck ist eine Folge von Variablen, Operatoren und Methodenaufrufen, der zu einem einzelnen Wert ausgewertet wird. Operanden

Mehr

3.2 Datentypen und Methoden

3.2 Datentypen und Methoden Kap03.fm Seite 217 Dienstag, 7. September 2010 1:48 13 3.2 Datentypen und Methoden 217 3.2 Datentypen und Methoden Wie bei vielen höheren Programmiersprachen gibt es auch in Java einfache und strukturierte

Mehr

Java: Eine kurze Einführung an Beispielen

Java: Eine kurze Einführung an Beispielen Java: Eine kurze Einführung an Beispielen Quellcode, javac und die JVM Der Quellcode eines einfachen Java-Programms besteht aus einer Datei mit dem Suffix.java. In einer solchen Datei wird eine Klasse

Mehr

Reihungen. Martin Wirsing. in Zusammenarbeit mit Michael Barth, Fabian Birzele und Gefei Zhang

Reihungen. Martin Wirsing. in Zusammenarbeit mit Michael Barth, Fabian Birzele und Gefei Zhang Reihungen Martin Wirsing in Zusammenarbeit mit Michael Barth, Fabian Birzele und Gefei Zhang http://www.pst.informatik.uni-muenchen.de/lehre/ws0506/infoeinf/ WS 05/06 2 Ziele Die Datenstruktur der Reihungen

Mehr

Anregungen zu Übung 2

Anregungen zu Übung 2 Anregungen zu Übung 2 Allgemeine Informatik II - SS 2007 Was sind Arrays und wie kann man sie verwenden? Ein Array ist ein spezieller Datentyp, der mehrere Werte zu einer Einheit zusammenfasst. Er ist

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

Konstruktor. public Rational(int i) { Zaehler = i; Nenner = 1; }

Konstruktor. public Rational(int i) { Zaehler = i; Nenner = 1; } Konstruktor spezielle Methode zum Initialisieren bei Erzeugen eines Objekts mit new trägt Namen der Klasse hat keinen Rückgabetyp keiner angegeben: Compiler erzeugt Standard-Konstruktor (analog: Attribute

Mehr

Probeklausur: Programmierung WS04/05

Probeklausur: Programmierung WS04/05 Probeklausur: Programmierung WS04/05 Name: Hinweise zur Bearbeitung Nimm Dir für diese Klausur ausreichend Zeit, und sorge dafür, dass Du nicht gestört wirst. Die Klausur ist für 90 Minuten angesetzt,

Mehr

Java Referenzdatentypen genauer betrachtet

Java Referenzdatentypen genauer betrachtet Informatik 1 für Nebenfachstudierende Grundmodul Java Referenzdatentypen genauer betrachtet Kai-Steffen Hielscher Folienversion: 23. Januar 2018 Informatik 7 Rechnernetze und Kommunikationssysteme Referenzdatentypen

Mehr

Praxis der Programmierung

Praxis der Programmierung Arrays, Pointerarithmetik, Konstanten, Makros Institut für Informatik und Computational Science Henning Bordihn Einige Folien gehen auf A. Terzibaschian zurück. 1 Arrays (Felder/Vektoren) 2 Arrays: Motivation

Mehr

Einfache Arrays. Dr. Philipp Wendler. Zentralübung zur Vorlesung Einführung in die Informatik: Programmierung und Softwareentwicklung

Einfache Arrays. Dr. Philipp Wendler. Zentralübung zur Vorlesung Einführung in die Informatik: Programmierung und Softwareentwicklung Dr. Philipp Wendler Zentralübung zur Vorlesung Einführung in die Informatik: Programmierung und Softwareentwicklung WS18/19 https://www.sosy-lab.org/teaching/2018-ws-infoeinf/ Arrays: Wiederholung Ein

Mehr

Vorkurs Informatik WiSe 17/18

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

Mehr

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

Herzlich willkommen!

Herzlich willkommen! Programmiertechnik 1 Herzlich willkommen! Dozent: Dipl.-Ing. Jürgen Wemheuer Teil 6: Zusammenfassung und Beispiele Mail: wemheuer@ewla.de Online: http://cpp.ewla.de/ Zusammenfassung (1) 2 1. Programm in

Mehr

Implementieren von Klassen

Implementieren von Klassen Implementieren von Klassen Felder, Methoden, Konstanten Dr. Beatrice Amrhein Überblick Felder/Mitglieder (Field, Member, Member-Variable) o Modifizierer Konstanten Methoden o Modifizierer 2 Felder und

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

Prof. Dr. Oliver Haase Karl Martin Kern Achim Bitzer. Programmiertechnik Aufzählungstypen

Prof. Dr. Oliver Haase Karl Martin Kern Achim Bitzer. Programmiertechnik Aufzählungstypen Prof. Dr. Oliver Haase Karl Martin Kern Achim Bitzer Programmiertechnik Aufzählungstypen Was sind Aufzählungstypen? Aufzähltypen sind: selbstdefinierte Datentypen definiert über die explizite Aufzählung

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 27 Einstieg in die Informatik mit Java Klassen als Datenstrukturen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 27 1 Überblick: Klassen als Datenstruktur 2 Vereinbarung

Mehr

3.8 Objekttypen und Arrays. Wir werden uns in diesem Kapitel näher mit den Objekttypen in Java beschäftigen.

3.8 Objekttypen und Arrays. Wir werden uns in diesem Kapitel näher mit den Objekttypen in Java beschäftigen. 3.8 Objekttypen und Arrays Wir werden uns in diesem Kapitel näher mit den Objekttypen in Java beschäftigen. Praktische Informatik I Wolfgang Effelsberg 3. Die Programmiersprache Java 3.8-1 Primitive Datentypen

Mehr

Fakultät IV Elektrotechnik/Informatik

Fakultät IV Elektrotechnik/Informatik Fakultät IV Elektrotechnik/Informatik Probeklausur Einführung in die Informatik I Hinweis: Diese Probeklausur ist eine kleine Aufgabensammlung, die etwa dem Schwierigkeitsgrad der Teilleistung TL 2 (Programmiertest)

Mehr

Computeranwendung und Programmierung (CuP)

Computeranwendung und Programmierung (CuP) Computeranwendung und Programmierung (CuP) ArrayList 0 1 2 Obj0 Obj1 size() - 1 15.12.2014 CuP - VO 2 Auer 1 ArrayList import java.util.arraylist; ArrayList buchliste; buchliste = new ArrayList();

Mehr

FHZ. Man unterscheidet ein- und mehrdimensionale Arrays. Bei einem mehrdimensionalen Array sind die Komponenten wiederum Arrays.

FHZ. Man unterscheidet ein- und mehrdimensionale Arrays. Bei einem mehrdimensionalen Array sind die Komponenten wiederum Arrays. 1 Einführung Ein Array (Feld) enthält eine Anzahl von gleichartigen Komponenten (Elemente), die nicht via Namen, sondern über einen Index zugegriffen werden. Komponenten können von einem elementaren Datentyp

Mehr

C++ - Objektorientierte Programmierung Konstante und statische Elemente

C++ - Objektorientierte Programmierung Konstante und statische Elemente C++ - Objektorientierte Programmierung Konstante und statische Elemente hat eine Kantenlänge hat eine Füllfarbe Kantenlänge setzen Füllfarbe lesen Volumen berechnen Leibniz Universität IT Services Anja

Mehr

Erste Java-Programme (Arrays und Schleifen)

Erste Java-Programme (Arrays und Schleifen) Lehrstuhl Bioinformatik Konstantin Pelz Erste Java-Programme (Arrays und Schleifen) Tutorium Bioinformatik (WS 18/19) Konstantin: Konstantin.pelz@campus.lmu.de Homepage: https://bioinformatik-muenchen.com/studium/propaedeutikumprogrammierung-in-der-bioinformatik/

Mehr

Tag 4 Repetitorium Informatik (Java)

Tag 4 Repetitorium Informatik (Java) Tag 4 Repetitorium Informatik (Java) Dozent: Michael Baer Lehrstuhl für Informatik 2 (Programmiersysteme) Friedrich-Alexander-Universität Erlangen-Nürnberg Wintersemester 2017/2018 Übersicht Arrays (Reihungen)

Mehr

Tag 8 Repetitorium Informatik (Java)

Tag 8 Repetitorium Informatik (Java) Tag 8 Repetitorium Informatik (Java) Dozent: Michael Baer Lehrstuhl für Informatik 2 (Programmiersysteme) Friedrich-Alexander-Universität Erlangen-Nürnberg Wintersemester 2017/2018 Informatik-Repetitorium

Mehr

1. Grundzüge der Objektorientierung 2. Methoden, Unterprogramme und Parameter 3. Datenabstraktion 4. Konstruktoren 5. Vordefinierte Klassen

1. Grundzüge der Objektorientierung 2. Methoden, Unterprogramme und Parameter 3. Datenabstraktion 4. Konstruktoren 5. Vordefinierte Klassen 1. Grundzüge der Objektorientierung 2. Methoden, Unterprogramme und Parameter 3. Datenabstraktion 4. Konstruktoren 5. Vordefinierte Klassen II.2.2 Methoden, Unterprogramme und Parameter - 1 - 2. Methoden

Mehr

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

FH D. Objektorientierte Programmierung in Java FH D FH D. Prof. Dr. Ing. André Stuhlsatz. Referenzen. Referenzen 5 Objektorientierte Programmierung in Java Prof. Dr. Ing. André Stuhlsatz Referenzen Beispiel an der einfachen Klasse Walze: public class Walze { int id; public Walze(int id) { this.id = id; Verwenden

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 Semestralklausur Einführung in die Programmierung Semestralklausur Java (Lösungsvorschlag) 1 Die Klasse ArrayList

Mehr

Algorithmen und Programmierung II

Algorithmen und Programmierung II Algorithmen und Programmierung II Vererbung Prof. Dr. Margarita Esponda SS 2012 1 Imperative Grundbestandteile Parameterübergabe String-Klasse Array-Klasse Konzepte objektorientierter Programmierung Vererbung

Mehr

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

Einführung in die Programmierung für NF. Übung Einführung in die Programmierung für NF Übung 03 06.11.2013 Inhalt Methoden in Java Gültigkeitsbereiche EBNF Einführung in die Programmierung für NF Übung 03 2 Methoden in Java In Methoden werden Ausdrücke

Mehr

Java programmieren mit JavaKara. Eine Zusammenfassung in Beispielen

Java programmieren mit JavaKara. Eine Zusammenfassung in Beispielen Java programmieren mit JavaKara Eine Zusammenfassung in Beispielen Kleeblätter in einer Zeile zählen @Override public void mymainprogram() { int anzahlkleeblaetter = 0; for (int x = 0; x < world.getsizex();

Mehr

Wenn... dann... if (condition) statement. if (kontostand < 0) System.out.println("Oops..."); false. condition. true. statement

Wenn... dann... if (condition) statement. if (kontostand < 0) System.out.println(Oops...); false. condition. true. statement Wenn... dann... if (condition) statement condition false true statement if (kontostand < 0) System.out.println("Oops..."); 31 ... sonst... if (condition) statement1 else statement2 condition false true

Mehr

+ C - Array (Vektoren, Felder)

+ C - Array (Vektoren, Felder) + C - Array (Vektoren, Felder) Eindimensionale Arrays Beim Programmieren steht man oft vor dem Problem, ähnliche, zusammengehörige Daten (vom gleichen Datentyp) zu speichern. Wenn man zum Beispiel ein

Mehr

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

Objekttypen. Referenzen, Objekte, Gleichheit, Wrapper, Arrays, mehr-dimensionale Arrays, Bildbearbeitung, krumme Arrays Objekttypen Referenzen, Objekte, Gleichheit, Wrapper, Arrays, mehr-dimensionale Arrays, Bildbearbeitung, krumme Arrays Primitive- und Objekt-Datentypen Primitive Datentypen benötigen einen vorher genau

Mehr

10. Felder (Arrays) Teil 2. Java-Beispiele: Echo.java Primzahlen.java Monate.java. K. Bothe, Institut für Informatik, HU Berlin, GdP, WS 2015/16

10. Felder (Arrays) Teil 2. Java-Beispiele: Echo.java Primzahlen.java Monate.java. K. Bothe, Institut für Informatik, HU Berlin, GdP, WS 2015/16 10. Felder (Arrays) Teil 2 Java-Beispiele: Echo.java Primzahlen.java Monate.java K. Bothe, Institut für Informatik, HU Berlin, GdP, WS 2015/16 Version: 18. Nov. 2015 2 Techniken mit Arrays: Boolean-Anzeige-Feld

Mehr

Einführung in die Programmierung I. 2.4 Felder. Thomas R. Gross. Department Informatik ETH Zürich

Einführung in die Programmierung I. 2.4 Felder. Thomas R. Gross. Department Informatik ETH Zürich 252-0027 Einführung in die Programmierung I 2.4 Felder Thomas R. Gross Department Informatik ETH Zürich Uebersicht 2.4 Felder (Vektoren, "array"s) 2.5 Verschachtelte Schleifen 2.6 "if" Anweisungen 2.7

Mehr

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

Felder - Arrays. Typ feldname[] = new Typ[<ganze Zahl >]; Beispiel: double vektor[] = new double[5]; auch eine Initialisierung ist möglich. Felder Felder - Arrays Variable gleichen Types können in Feldern (array) zusammengefasst werden. Typ[] feldname; oder Typ feldname[]; dabei kann unter Benutzung des new-operators gleich die Dimension zugewiesen

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

Klausur Fachprüfung Wirtschaftsinformatik. Name:

Klausur Fachprüfung Wirtschaftsinformatik. Name: Klausur Fachprüfung Wirtschaftsinformatik Dauer: 2 Stunden Datum: 02.10.2003 Name: Punkte True-or-False: von 15 Punkte Multiple Choice: von 15 Punkte Quickies: von 30 Punkte Shorties: von 20 Punkte Longies:

Mehr

2. Methoden. n Generelles zum Aufruf von Methoden. n Parameterübergabemechanismen (call by value, call by reference)

2. Methoden. n Generelles zum Aufruf von Methoden. n Parameterübergabemechanismen (call by value, call by reference) 2. Methoden n Generelles zum Aufruf von Methoden n Parameterübergabemechanismen (call by value, call by reference) n Speicherorganisation bei Methodenaufruf und Parameterübergabe (Laufzeitkeller) n vararg

Mehr

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

Einführung in die Programmierung für NF MI. Übung 04 Einführung in die Programmierung für NF MI Übung 04 Inhalt Arrays Einführung in Objekte Einführung in die Programmierung für NF Übung 04 2 Arrays Arrays repräsentieren Reihungen von Objekten, z.b. Variablen

Mehr

Musterlösung Stand: 5. Februar 2009

Musterlösung Stand: 5. Februar 2009 Fakultät IV Elektrotechnik/Informatik Probeklausur Einführung in die Informatik I Hinweis: Diese Probeklausur ist eine kleine Aufgabensammlung, die etwa dem Schwierigkeitsgrad der Teilleistung TL 2 (Programmiertest)

Mehr

Test zu Grundlagen der Programmierung Leitung: Susanne Guth/Michael Hahsler. 31. Jänner 2003

Test zu Grundlagen der Programmierung Leitung: Susanne Guth/Michael Hahsler. 31. Jänner 2003 Test zu Grundlagen der Programmierung Leitung: Susanne Guth/Michael Hahsler 1. Jänner 00 Name Martrikelnummer Unterschrift Bitte kreuzen Sie das Studium an, für das Sie diese Prüfung ablegen: O Bakkalaureat

Mehr

Arrays. Gilbert Beyer und Annabelle Klarl. Einführung in die Informatik. Zentralübung zur Vorlesung Einführung in die Informatik

Arrays. Gilbert Beyer und Annabelle Klarl. Einführung in die Informatik. Zentralübung zur Vorlesung Einführung in die Informatik Arrays Zentralübung zur Vorlesung Einführung in die Informatik http://www.pst.ifi.lmu.de/lehre/wise-11-12/infoeinf WS11/12 Inhalte der heutigen Vorlesung: Arraytypen Speicherdarstellung von Arrays Auswertung

Mehr

Suchen in Texten. Sie wissen wie in einem Text gesucht werden kann Sie wissen wie Suchmaschinen arbeiten Sie können mit Regex in Java umgehen

Suchen in Texten. Sie wissen wie in einem Text gesucht werden kann Sie wissen wie Suchmaschinen arbeiten Sie können mit Regex in Java umgehen Suchen in Texten Sie wissen wie in einem Text gesucht werden kann Sie wissen wie Suchmaschinen arbeiten Sie können mit Regex in Java umgehen Finden eines Teilstrings in einem String D r e i r e i n e R

Mehr

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

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

Mehr

PK-Einstufungstest. 1. Allgemeine Multiple-Choice-Aufgaben. Alle Aufgaben beziehen sich auf Java.

PK-Einstufungstest. 1. Allgemeine Multiple-Choice-Aufgaben. Alle Aufgaben beziehen sich auf Java. PK-Einstufungstest 69 / 100 Punkte Alle Aufgaben beziehen sich auf Java. 1. Allgemeine Multiple-Choice-Aufgaben 11 / 15 Punkte Bitte wählen Sie ALLE zutreffenden Antwortmöglichkeiten aus. Es können beliebig

Mehr

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

Organisatorisches. Neue Übungsblätter: Nur mehr elektronisch? Abgabe Di, , 14 Uhr bis Do, , 8Uhr Organisatorisches Neue Übungsblätter: Nur mehr elektronisch? Abgabe Di, 14.10., 14 Uhr bis Do, 23.10., 8Uhr. 14.10.2014 IT I - VO 1 1 IT I: Heute Wiederholung CuP ctd: this Arrays, ArrayLists Schleifen:

Mehr

Objektorientierte Programmierung und Modellierung

Objektorientierte Programmierung und Modellierung Objektorientierte Programmierung und Modellierung Einführung, Teil 2 24.10.17 - WS17/18 Hakan Aksu 1 Raumänderung beachten Dienstag 14:15-15:45 Uhr in M001 (anstatt K101) 2 Ausfalltermine 31.10 Vorlesung

Mehr

Schleifen Datenfelder (Arrays) Verzweigungen

Schleifen Datenfelder (Arrays) Verzweigungen Schleifen Datenfelder (Arrays) Verzweigungen Vektoren, Matrizen, Tabellen for, while, foreach, if-else und switch-case Dr. Beatrice Amrhein Überblick Schleifen o for, while, foreach Eindimensionale Arrays

Mehr

Praxis der Programmierung

Praxis der Programmierung Arrays, Pointer, Parameterbergabe Institut für Informatik und Computational Science Henning Bordihn Einige Folien gehen auf A. Terzibaschian zurück. 1 Arrays (Felder/Vectoren) 2 Arrays: Motivation Gegeben:

Mehr

Objektorientierte Programmierung Studiengang Medieninformatik

Objektorientierte Programmierung Studiengang Medieninformatik Objektorientierte Programmierung Studiengang Medieninformatik Hans-Werner Lang Hochschule Flensburg Vorlesung 5 12.04.2017 Was bisher geschah... Objektorientierte Programmierung Klassen und Objekte, Attribute

Mehr

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

Felder. Gerd Bohlender. Einstieg in die Informatik mit Java, Vorlesung vom Einstieg in die Informatik mit Java, Vorlesung vom 9.5.07 Übersicht 1 Was sind? 2 Vereinbarung von n 3 Erzeugen von n 4 Zugriff auf Feldkomponenten 5 Mehrdimensionale 6 als Objekte, Referenzen Kopieren

Mehr

Selbsteinstufungstest Vorkurs Programmieren

Selbsteinstufungstest Vorkurs Programmieren VPR Selbsteinstufungstest Vorkurs Programmieren Zeit 90 Minuten Aufgabe 1: Einzigartig (10 Punkte) Schreiben Sie eine Methode die angibt, ob ein String str1 in einem zweiten String str2 genau einmal vorkommt.

Mehr

Durch die Teil-von-Beziehung soll ausgedrückt werden, dass ein Objekt A als (physikalischer) Teil eines Objekts B angesehen wird. Insbesondere kann ei

Durch die Teil-von-Beziehung soll ausgedrückt werden, dass ein Objekt A als (physikalischer) Teil eines Objekts B angesehen wird. Insbesondere kann ei Lösungsvorschläge zur Klausur zum Kurs 1618 Sommersemester 2001 am 22.9.2001 Aufgabe 1 a) Benutzungsbeziehung: class Kennzeichen class Fahrzeug boolean gueltigeskennzeichen (Kennzeichen kz) Objekte der

Mehr

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

Organisatorisches. drei Gruppen Gruppe 1: 10:10-11:40, Gruppe 2: 11:45-13:15 Gruppe 3: 13:20-14:50 Organisatorisches Vorlesung Donnerstag 8:35 bis 10:05 Übung drei Gruppen Gruppe 1: 10:10-11:40, Gruppe 2: 11:45-13:15 Gruppe 3: 13:20-14:50 Tutorium (Mehr oder weniger) abwechselnd Mo und Mi 10-11:30 Termine

Mehr

Universität München, Hans-Peter Kriegel und Thomas Seidl Informatik II a[0] a[1] a[2] a[3] a[n 1]

Universität München, Hans-Peter Kriegel und Thomas Seidl Informatik II a[0] a[1] a[2] a[3] a[n 1] Universität München, Hans-Peter Kriegel und Thomas Seidl Informatik II -108 Kapitel 5: Arrays Einführung Ein Array ist eine Reihung gleichartiger Objekte. a: a[0] a[1] a[2] a[3] a[n 1] Bezeichner a steht

Mehr

Variablenarten. Gerd Bohlender. Institut für Angewandte und Numerische Mathematik. Vorlesung: Einstieg in die Informatik mit Java

Variablenarten. Gerd Bohlender. Institut für Angewandte und Numerische Mathematik. Vorlesung: Einstieg in die Informatik mit Java Variablenarten Gerd Bohlender Institut für Angewandte und Numerische Mathematik Vorlesung: Einstieg in die Informatik mit Java 10.12.07 G. Bohlender (IANM UNI Karlsruhe) OOP und Klassen 10.12.07 1 / 15

Mehr

PK-Einstufungstest. 1. Allgemeine Multiple-Choice-Aufgaben

PK-Einstufungstest. 1. Allgemeine Multiple-Choice-Aufgaben PK-Einstufungstest 34 / 100 Punkte Alle Aufgaben beziehen sich auf Java. 1. Allgemeine Multiple-Choice-Aufgaben 4 / 15 Punkte Bitte wählen Sie ALLE zutreffenden Antwortmöglichkeiten aus. Es können beliebig

Mehr

Prüfung Softwareentwicklung II (IB)

Prüfung Softwareentwicklung II (IB) Hochschule für angewandte Wissenschaften München Fakultät für Informatik und Mathematik Studiengruppe IB 2 B, IB 2 C Sommersemester 2013 Prüfung Softwareentwicklung II (IB) Datum : 11.07.2013, 08:30 Uhr

Mehr

Programmieren II. Aufzählungstypen (enum) Heusch -- Ratz Institut für Angewandte Informatik

Programmieren II. Aufzählungstypen (enum) Heusch -- Ratz Institut für Angewandte Informatik Programmieren II Aufzählungstypen (enum) Heusch -- Ratz 11.1 KIT Die Forschungsuniversität in der Helmholtz-Gemeinschaft www.kit.edu Aufzählungstypen (1) Unter einem Aufzählungstyp versteht man einen selbstdefinierten

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

Programmiertechnik Klassenvariablen & Instantiierung

Programmiertechnik Klassenvariablen & Instantiierung Programmiertechnik Klassenvariablen & Instantiierung Prof. Dr. Oliver Haase Oliver Haase Hochschule Konstanz 1 Klassenvariablen Zur Erinnerung: Klassen bestehen aus Variablen und Methoden; beide zusammen

Mehr

Algorithmen und Datenstrukturen II

Algorithmen und Datenstrukturen II Algorithmen und Datenstrukturen II D. Rösner Institut für Wissens- und Sprachverarbeitung Fakultät für Informatik Otto-von-Guericke Universität Magdeburg Sommer 2009, 26. März 2009, c 2009 D.Rösner D.

Mehr

C++ - Objektorientierte Programmierung Konstruktoren und Destruktoren

C++ - Objektorientierte Programmierung Konstruktoren und Destruktoren C++ - Objektorientierte Programmierung Konstruktoren und Destruktoren hat eine Kantenlänge hat eine Füllfarbe Kantenlänge setzen Füllfarbe lesen Volumen berechnen Leibniz Universität IT Services Anja Aue

Mehr