Objektorientierte Programmierung und Modellierung

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

Martin Unold INFORMATIK. Geoinformatik und Vermessung

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

Grundlagen der Programmierung Teil1 Einheit III Okt. 2010

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

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

Grundlagen von C# - 2

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

1. Referenzdatentypen: Felder und Strings

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

Vorkurs Informatik WiSe 16/17

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

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

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

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

Übung zur Vorlesung Wissenschaftliches Rechnen Sommersemester 2012 Auffrischung zur Programmierung in C++, 1. Teil

1. Erste Schritte 2. Einfache Datentypen 3. Anweisungen und Kontrollstrukturen 4. Verifikation 5. Reihungen (Arrays)

float: Fließkommazahl nach IEEE 754 Standard mit 32 bit

Sprachkonstrukte Verzweigungen und Array-Strukturen

1 Aufgaben 1.1 Objektorientiert: ("extended-hamster") Sammel-Hamster

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

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

Einstieg in die Informatik mit Java

Modellierung und Programmierung 1

System.out.println("TEXT");

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

5. Java Arrays und Strings

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

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

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

JAVA-Datentypen und deren Wertebereich

Javakurs für Anfänger

Grundlagen der Programmierung

EINFÜHRUNG IN DIE PROGRAMMIERUNG

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12 1. Kapitel 11. Listen. Listen

Algorithmen und Programmierung II

Elementare Konzepte von

Grundlagen der Programmierung

Tag 4 Repetitorium Informatik (Java)

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

PROGRAMMIERUNG IN JAVA

Arrays und Schleifen

Datenstrukturen / Container in Java

Arrays. Einleitung. Deklarieren einer Array Variablen

Programmierkurs Java

Wie entwerfe ich ein Programm?

C++ Teil 2. Sven Groß. 16. Apr IGPM, RWTH Aachen. Sven Groß (IGPM, RWTH Aachen) C++ Teil Apr / 22

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

Objektorientierte Programmierung Studiengang Medieninformatik

RO-Tutorien 3 / 6 / 12

Javakurs FSS Lehrstuhl Stuckenschmidt. Tag 1 - Variablen und Kontrollstrukturen

Zentralübung Grundlagen der Programmierung

Arrays. Arrays werden verwendet, wenn viele Variablen benötigt werden. Der Vorteil in Arrays liegt darin, dass man nur eine Variable deklarieren muss

EINFÜHRUNG IN DIE PROGRAMMIERUNG

Objektorientierte Programmierung OOP Programmieren mit Java

Javakurs für Anfänger

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

Repetitorium Informatik (Java)

Einführung in die Java- Programmierung

Ausgabe:

Algorithmen und Datenstrukturen

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

Computeranwendung und Programmierung (CuP)

Programmieren I. Kontrollstrukturen Heusch 8 Ratz Institut für Angewandte Informatik

Modul 122 VBA Scribt.docx

FACHHOCHSCHULE AUGSBURG Hochschule für Technik, Wirtschaft und Gestaltung

9. Java Arrays und Strings. Allokation, Referenzen, Elementzugriff, Mehrdimensionale Arrays, Strings, Stringvergleiche

Vorkurs: Java-Einführung

Klausur Grundlagen der Programmierung

Aufgabe 1.90: Ein Geschäft gibt ihren Kunden unterschiedliche Rabatte. Schreiben ein Programm, das folgende Rabattklassen vorsieht:

3.2 Datentypen und Methoden

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

Java Einführung Klassendefinitionen

Java I Vorlesung Imperatives Programmieren

Welche Informatik-Kenntnisse bringen Sie mit?

1. Erste Schritte 2. Einfache Datentypen 3. Anweisungen und Kontrollstrukturen 4. Verifikation 5. Reihungen (Arrays)

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

Programmierpraktikum

Kapitel 3: Variablen

Einführung in die Programmierung WS 2009/10. Übungsblatt 7: Imperative Programmierung, Parameterübergabe

Informatik I - Einstiegskurs

Propädeutikum zur Programmierung

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

Probeklausur: Programmierung WS04/05

Objektorientierte Programmierung OOP Programmieren mit Java

1 Aufgaben 1.1 Umgebungsvariable setzen: CLASSPATH

Modellierung und Programmierung 1

Einstieg in die Informatik mit Java

Girls Day 2017 Programmierung

Transkript:

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 - fällt aus 30./31.10 Übungen - fallen aus 01./02.11 Praktika - fallen aus 02.11 Vorlesung - findet statt - WICHTIG! 3

Agenda Arrays Bedingte Anweisung/Verzweigung (IF) Schleifen/Wiederholung (WHILE / FOR) 4

Arrays 5

Was sind Arrays? Eine Liste mit einer vordefinierten Länge z.b. eine Integer-Liste mit der Länge 4 Variable/Referenz Speicher intarray > 5 3 1 42 Index: 0 1 2 3 6

Deklarieren von Arrays typische/empfohlene Schreibweise: int[] integerarray; Datentyp Variablenname Array-Klammern weitere/nicht übliche Schreibweisen: int []a; int b[]; 7

Arrays initialisieren Erzeugung von Array-Objekten int[] integerarray = new int[3]; Es wurden noch keine Werte zugewiesen! Zuweisung durch indexbasierten Zugriff: integerarray[0] = 1; integerarray[1] = 5; integerarray[2] = 8; Länge des Arrays Index zugewiesener Wert 8

Arrays initialisieren Alternative Initialisierung: String[] namen = {"Hans", "Peter", "Schmidt"}; zugewiesene Werte Es entsteht ein String-Array der Länge 3 mit den Werten Hans, Peter und Schmidt 9

Zugriff auf Arrays Zugriff auf einzelne Werte int[] integerarray = {1, 5, 8}; int summe = integerarray[0] + integerarray[1]; summe ist 6 indexbasierter Zugriff 10

Länge von Arrays Nachdem die Länge einmal festgelegt wurde, kann sie nicht mehr geändert werden. Die Länge erhält man über length int[] integerarray = {1, 5, 8}; int l = integerarray.length; Liefert die Länge des Arrays als Integer-Wert 11

Array als Datentyp Arrays sind Referenztypen Variablen enthalten Referenzen/Speicheradressen auf Array-Objekte primitiver Datentyp vs Referenztyp int integervalue = 5; int[] integerarray = {1, 5, 8}; Die Variable enthält den Wert 5 Die Variable enthält die Speicheradresse zum Array-Objekt 12

Klonen von Variablen int a = 5; int b = a; b = 1; int[] integerarray = {1, 5, 8}; int[] tmparray = integerarray; tmparray[0] = 2; Was sind a und b bzw. integerarray und tmparray nach dem Ausführen? 13

Klonen von Variablen int a = 5; int b = a; b = 1; int[] integerarray = {1, 5, 8}; int[] tmparray = integerarray; tmparray[0] = 2; a = 5 b = 1 integerarray = {2, 5, 8} tmparray = {2, 5, 8} Warum? 14

Klonen von Variablen int a = 5; int b = a; b = 1; int[] integerarray = {1, 5, 8}; int[] tmparray = integerarray; tmparray[0] = 2; b wird der Wert von a zugewiesen. > Der Wert wird geklont. Es wird die Speicheradresse geklont. > Man arbeitet auf den selben Werten. >Änderungen am Speicher/Inhalt haben globale Auswirkungen. Wie klont man Array-Inhalte? 15

Klonen von Variablen int[] integerarray = {1, 5, 8}; int[] tmparray = integerarray; tmparray[0] = 2; 1. Möglichkeit Erstellen eines neuen Arrays und kopieren einzelner Werte > Umständlich 2. Möglichkeit Verwendung der clone()-methode int[] integerarray = {1, 5, 8}; int[] tmparray = integerarray.clone(); tmparray[0] = 2; integerarray = {1, 5, 8} tmparray = {2, 5, 8} 16

Mehrdimensionale Arrays Arrays von Arrays 3x2 Array (rechteckig) (int[][] marray = new int[3][2];) int[][] marray = { {10, 20}, {30, 40}, {50, 60} }; int[][] marray2 = { {10, 20}, {30, 40, 50}, {60} }; zwei-dimensionale-arrays nicht rechteckig 17

Mehrdimensionale Arrays int[][] marray = { {10, 20}, {30, 40}, {50, 60} }; m 0 1 2 Zugriff: n marray[m][n] 0 10 30 50 Beispiel: marray[1][0] > 30 1 20 40 60 18

Mehrdimensionale Arrays int[][] marray2 = { {10, 20}, {30, 40, 50}, {60} }; marray2[0][0] marray2[1][0] marray2[2][0] marray2[0][1] marray2[1][1] marray2[1][2] 19

Mehrdimensionale Arrays int[][] marray2 = { {10, 20}, {30, 40, 50}, {60} }; int[] tmp = marray2[0].clone(); 20

Vergleich von Arrays Gegeben sei: int[] integerarray = {1, 5, 8}; int[] integerarray2 = {1, 5, 8}; int[] integerarray3 = integerarray; Mit dem Vergleichsoperator == und der objekteigenen equals-methode wird die Referenz (Speicheradresse) verglichen: integerarray == integerarray2 integerarray.equals(integerarray2) > liefert false > liefert false integerarray == integerarray3 > liefert true integerarray2.equals(integerarray2) > liefert true Mit der equals-methode aus der Arrays-Klasse werden Inhalte von Arrays verglichen Arrays.equals(integerArray, integerarray2) > liefert true 21

Bedingte Anweisung (IF) 22

IF-ELSE-Abfragen Wenn man einen Code unter bestimmten Bedingungen ausführen will, verwendet man IF-Abfragen. Boolescher Ausdruck Auszuführender Block, wenn condition erfüllt (true) ist. if (condition) { } else { Auszuführender Block, wenn condition nicht erfüllt (false) ist. } Der Else-Teil ist optional 23

IF-ELSE-Abfragen Beispiele: String s; // Benutzereingabe if (s.length() > 5) { //Code } else { //Code } String s; // Benutzereingabe if (s.length() > 5) { //Code } //Code Unterschied? 24

Schleifen (WHILE / FOR) 25

Schleifen while-schleife do-while-schleife for-schleife for-each-schleife (erweiterte for-schleife) 26

WHILE-Schleife Wenn man einen Code unter bestimmten Bedingungen mehrmals ausführen will, verwendet man WHILE-Schleifen. Boolescher Ausdruck Auszuführender Block. VOR jedem Ausführen wird die condition erneut geprüft! while (condition) { } 27

WHILE-Schleife Beispiel: int value = 1; int faktor = //Benutzereingabe while (value < 1000) { value *= faktor; } 28

DO-WHILE-Schleife Wenn man einen Code einmal und unter bestimmten Bedingungen weitere Male ausführen will, verwendet man WHILE-Schleifen. Boolescher Ausdruck Auszuführender Block. NACH jedem Ausführen wird die condition erneut geprüft! do { } while (condition); 29

DO-WHILE-Schleife Beispiel int value = 1; int faktor = //Benutzereingabe do { value *= faktor; } while (value < 1000); 30

FOR-Schleife Wenn man einen Code mit einer sich verändernden (Zähl-)Variabel bis zum erfüllen einer Bedingung mehrmals ausführen will, verwendet man FOR-Schleifen. Deklarieren und Initialisierung der Laufvariablen (Anfangswert) Boolescher Ausdruck (Im Normalfall: In Abhängigkeit von der Laufvariablen) Auszuführender Block. for (init; condition; next) { Nach jedem Ausführen wird die condition erneut geprüft! } 31 Auszuführende Zuweisung nach jedem Schleifendurchlauf

FOR-Schleife Beispiele: int[] integerarray = {1,3,5}; for (int i = 0; i < integerarray.length; i++) { System.out.println(integerArray[i]); } int summe = 0; for (int i = 100; i > 0; i--) summe += i; int summe = 0; for (int i = 1; i < 100; i += 2) summe += i; 32

FOR-EACH-Schleife Wenn man über einen Container (z.b. Listen oder Arrays) iterieren will verwendet man FOR-EACH-Schleifen. Auszuführender Block. Entspricht dem Typen der Containerelemente Container, über den iteriert werden soll. Nach jedem Ausführen, wird das nächste Element verwendet bis alle Elemente aus dem Container abgearbeitet wurden. for (TYPE name : variable) { } 33

FOR-EACH-Schleife Beispiel int[] integerarray = {2,4,6,8}; for (int integervalue : integerarray) { System.out.println(integerValue); } 34

Quiz String[] sarray = { Ich","bin","Nummer", 5}; Ist das möglich? 35

Quiz array = {{{1,2},{6,4,2},{1,1,3}},{{8}},{{2},{1,9,77}}}; Welche Dimension? Wie greife ich auf die 77 zu? 36

Quiz for (int i = 0; i < iarray.length; i++) { } for (int i : iarray) { } Was sind Vorund Nachteile? 37

Quiz while (true) { //Code } Was passiert hier? 38

Quiz public static void main(string[] args) { int[] iarray = {1,2,3}; arrayincrement(iarray); for (int i = 0; i < iarray.length; i++) { System.out.println(iArray[i]); } } public static void arrayincrement(int[] intarray) { for (int i = 0; i < intarray.length; i++) { intarray[i]++; } } Was wird ausgegeben? 39