Einführung in die Java- Programmierung



Ähnliche Dokumente
Einführung in die Java- Programmierung

Programmierkurs Java

Java Kurs für Anfänger Einheit 5 Methoden

Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung: Lösungsvorschlag

Java: Vererbung. Teil 3: super()

Professionelle Seminare im Bereich MS-Office

2. Programmierung in C

Vorkurs C++ Programmierung

Einführung in die objektorientierte Programmierung mit Java. Klausur am 19. Oktober 2005

Objektorientierte Programmierung

Einführung in die Java- Programmierung

Felder, Rückblick Mehrdimensionale Felder. Programmieren in C

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

1 Vom Problem zum Programm

Modellierung und Programmierung 1

Algorithmen und Datenstrukturen

Institut fu r Informatik

Objektorientierte Programmierung. Kapitel 12: Interfaces

Das Typsystem von Scala. L. Piepmeyer: Funktionale Programmierung - Das Typsystem von Scala

Übungsblatt 3: Algorithmen in Java & Grammatiken

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

Der Aufruf von DM_in_Euro 1.40 sollte die Ausgabe 1.40 DM = Euro ergeben.

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

Excel Funktionen durch eigene Funktionen erweitern.

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

LU-Zerlegung. Zusätze zum Gelben Rechenbuch. Peter Furlan. Verlag Martina Furlan. Inhaltsverzeichnis. 1 Definitionen.

Verhindert, dass eine Methode überschrieben wird. public final int holekontostand() {...} public final class Girokonto extends Konto {...

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

Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen

Programmiervorkurs SS 2011 Technische Universität Darmstadt Jan Hendrik Burdinski, Felix Kerger

Praktikum zu Einführung in die Informatik für LogWiIngs und WiMas Wintersemester 2015/16. Vorbereitende Aufgaben

Klausur zur Einführung in die objektorientierte Programmierung mit Java

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

Einführung in die Programmierung

Würfelt man dabei je genau 10 - mal eine 1, 2, 3, 4, 5 und 6, so beträgt die Anzahl. der verschiedenen Reihenfolgen, in denen man dies tun kann, 60!.

Objektorientierte Programmierung für Anfänger am Beispiel PHP

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Übungen Programmieren 1 Felix Rohrer. Übungen

Analysis I für Studierende der Ingenieurwissenschaften

Einführung in die Programmierung für Wirtschaftsinformatik

Musterlösungen zur Linearen Algebra II Blatt 5

Prof. Dr. Uwe Schmidt. 21. August Aufgaben zur Klausur Objektorientierte Programmierung im SS 2007 (IA 252)

M. Graefenhan Übungen zu C. Blatt 3. Musterlösung

Übung Grundlagen der Programmierung. Übung 05: Arrays. Abgabetermin: xx.xx.xxxx. Java-Programm Testplan Testergebnisse

Grundlagen von Python

1. Man schreibe die folgenden Aussagen jeweils in einen normalen Satz um. Zum Beispiel kann man die Aussage:

Zählen von Objekten einer bestimmten Klasse

Austausch- bzw. Übergangsprozesse und Gleichgewichtsverteilungen

Zur drittletzten Zeile scrollen

Einführung in die Java- Programmierung

Erstellen von x-y-diagrammen in OpenOffice.calc

Fachdidaktik der Informatik Jörg Depner, Kathrin Gaißer

Übung 9 - Lösungsvorschlag

Software Engineering Klassendiagramme Assoziationen

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

15.3 Bedingte Wahrscheinlichkeit und Unabhängigkeit

Stellen Sie bitte den Cursor in die Spalte B2 und rufen die Funktion Sverweis auf. Es öffnet sich folgendes Dialogfenster

Lineare Gleichungssysteme

EINFACHES HAUSHALT- KASSABUCH

C# im Vergleich zu Java

How to do? Projekte - Zeiterfassung

Fachgebiet Informationssysteme Prof. Dr.-Ing. N. Fuhr. Programmierung Prof. Dr.-Ing. Nobert Fuhr. Übungsblatt Nr. 6

Einführung in die Programmierung

Theoretische Grundlagen der Informatik

Java Einführung Umsetzung von Beziehungen zwischen Klassen. Kapitel 7

4 Vorlesung: Matrix und Determinante

Unterrichtsmaterialien in digitaler und in gedruckter Form. Auszug aus: Übungsbuch für den Grundkurs mit Tipps und Lösungen: Analysis

Java Virtual Machine (JVM) Bytecode

Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung: Lösungsvorschlag

Wirtschaftsinformatik I

Delegatesund Ereignisse

Abituraufgabe zur Stochastik, Hessen 2009, Grundkurs (TR)

Software Engineering Klassendiagramme Einführung

Einführung in die Programmierung Laborübung bei Korcan Y. Kirkici. 12.Übung bis

Rekursion. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung

BEISPIELKLAUSUR Softwareentwicklung:

Zeichen bei Zahlen entschlüsseln

Computeranwendung und Programmierung (CuP)

a n auf Konvergenz. Berechnen der ersten paar Folgenglieder liefert:

Programmieren Tutorium

Übungskomplex Felder (1) Eindimensionale Felder Mehrdimensionale Felder

Zugriff auf Daten der Wago über eine Webseite

Operationalisierbare Qualitätskriterien für die Programmierung mit Erfahrungen aus PRÜ1 und PRÜ2

Anwendungspraktikum aus JAVA Programmierung im SS 2006 Leitung: Albert Weichselbraun. Java Projekt. Schiffe Versenken mit GUI

3 Objektorientierte Konzepte in Java

Tutorium Rechnerorganisation

DHBW Karlsruhe, Vorlesung Programmieren, Klassen (2)

INDEX. Öffentliche Ordner erstellen Seite 2. Offline verfügbar einrichten Seite 3. Berechtigungen setzen Seite 7. Öffentliche Ordner Offline

Was meinen die Leute eigentlich mit: Grexit?

Klausur zur Einführung in die objektorientierte Programmierung mit Java

Übungen für Woche 10

Also kann nur A ist roter Südler und B ist grüner Nordler gelten.

Arrays Fortgeschrittene Verwendung

Advoware mit VPN Zugriff lokaler Server / PC auf externe Datenbank

Eigenwerte und Eigenvektoren von Matrizen

Das erste Programm soll einen Text zum Bildschirm schicken. Es kann mit jedem beliebigen Texteditor erstellt werden.

Info-Veranstaltung zur Erstellung von Zertifikaten

Einführung in die Programmierung (EPR)

5. Tutorium zu Programmieren

Übung 4: Einführung in die Programmierung mit MATLAB

Transkript:

Einführung in die Java- Programmierung Dr. Volker Riediger Tassilo Horn riediger horn@uni-koblenz.de WiSe 2012/13 1

Wichtig... Mittags Pommes... Praktikum A 230 C 207 (Madeleine) F 112 F 113 (Kevin) E 413 E 313 (Jan) Evaluation Lösungsbeispiele 2

Rückblick Rekursive Methoden Fakultät Summe Gerade/Ungerade Arrays Deklaration & Initialisierung Array-Ausgabe & Array-Benutzereingabe 3

Heutige Themen Mehr (Numerik-)Aufgaben Referenztypen Rechen(un)genauigkeit Zweidimensionale Arrays Heute Mittag und Freitag: Erste Einblicke in die objektorientierte Programmierung 4

Heutige Themen Referenztypen Mehr Numerik-Aufgaben Rechen(un)genauigkeit Zweidimensionale Arrays Erste Einblicke in die objektorientierte Programmierung 5

Referenztyp Array Sei unten das ein int-array der Länge 10, so besteht das Array aus zehn direkt aufeinanderfolgenden Speicherbereichen Arrays sind Referenztypen, d.h. die Array- Variable x in int[] x = {1, 2, 3}; ist eine Referenz, die auf die erste Komponente des Arrays zeigt 6

Referenztyp Array Da ein Array ein Referenztyp ist, wird durch eine Zuweisung keine Kopie angefertigt: int[] x = {1, 2, 3}; int[] y = x; // y ist Alias für x, d.h. y zeigt auf // den selben Speicherbereich wie x 7

Referenztyp Array Auch die Verwendung als Methodenparameter erzeugt nur einen Alias public static void main(string[] args) { int[] y = {1, 2, 3}; foo(y); } public static void foo(int[] x) { } // x ist das selbe Array wie y 8

Referenztyp Array Implikationen: Wird ein Array als Methodenparameter übergeben und ändert die Methode das Array, dann sind die Änderungen auch für den Aufrufer sichtbar Will man ein Array kopieren, so muss man ein neues Array gleichen Typs und gleicher Länge erzeugen und dann alle Komponenten einzeln kopieren siehe Übungsaufgabe E.5 9

Demo: ArrayAlsReferenztyp.java Aufgabe: Schreibe eine Methode loeschearray(), die ein int-array als Parameter erhält und alle Komponenten auf -1 setzt Die Methode soll keinen Rückgabewert haben, da das übergebene Array direkt modifiziert wird Teste die Methode, um zu zeigen, dass das übergebene Array tatsächlich modifiziert wurde 10

Demo: VektorRechnung.java Aufgabe: Schreibe eine Methode addvectors(), welche zwei gegebene Vektoren (int-arrays) addiert und den Ergebnisvektor als neues int-array liefert Die beiden übergebenen Vektoren sollen nicht modifiziert werden Der Vektorraum darf eine beliebige Dimension haben, d.h. die Vektoren dürfen beliebig lang sein, müssen aber gleich lang sein 11

Demo: VektorRechnung.java Aufgabe: Erweitere die Klasse VektorRechnung um eine Methode distance(), die einem die Entfernung zweier gegebener Punkte berechnet 12

Exkurs: Referenztyp String Auch Strings sind in Java Referenztypen Im Gegensatz zu Arrays können Strings nicht modifiziert werden Für alle Referenztypen gilt: == vergleicht nicht den Inhalt sondern nur die Referenz (d.h. die Speicheradresse) Strings kann man mit der equals()- Methode vergleichen, für Arrays muss man eine eigene Methode schreiben 13

Demo: StringGleichheit.java Diese Demo veranschaulicht, dass nur literale, inhaltlich gleiche Strings == sind Sobald ein String erst zur Laufzeit erzeugt wird, ist er mit hoher Wahrscheinlichkeit nicht mehr == zu einem String gleichen Inhalts Also: Strings immer mit equals() vergleichen, oder mit equalsignorecase(), fall Groß-/Kleinschreibung egal ist 14

Demo: ArrayUtils.java Aufgabe: Erweitere die Klasse ArrayUtils um drei Methoden arrayequals(), die jeweils 2 gegebene int-, long- bzw. double-arrays inhaltlich vergleichen 15

Demo: Fibonacci.java Aufgabe: Schreibe eine Methode fibonacci() die einen int n als Parameter erhält und dann ein int-array mit den ersten n Fibonacci-Zahlen zurückgibt Die erste Fibonacci-Zahl ist 0 Die zweite Fibonacci-Zahl ist 1 Die n-te Fibonacci-Zahl ist die Summe der (n- 2)-ten und (n-1)-ten Fibonacci-Zahl 16

Demo: Permutation.java Aufgabe: Lasst uns eine Methode permutation() schreiben, die 2 ints m und n (mit m <= n) als Parameter erhält und dann ein int-array der Länge m mit zufälligen Werten aus dem Intervall [1, n] liefert. Das Array darf keine Duplikate enthalten! Beispiel: Eine normale Lottoziehung 6 aus 49 kann dann mit permutation(6, 49) erfolgen 17

Mehrdimensionale Arrays Ein Array kann auch mehr als eine Dimension haben Ein mehrdimensionales Array ist ein Array, dessen Komponenten wieder Arrays sind Beispiel: Eine Matrix ist ein zweidimensionales Array Das Array an sich repräsentiert die Zeilen der Matrix, die einzelnen Komponenten-Arrays sind die Spalten 18

Mehrdim. Arrays: Deklaration Bei der Deklaration gibt die Anzahl der [] die Dimension an int[] l; // 1-dim. Array int[][] m; // 2-dim. Array int[][][] n; // 3-dim. Array int[][][][] o; // 4-dim. Array 19

Mehrdim. Arrays: Erzeugung Genau wie eindimensionale Arrays erfolgt die Erzeugung mit new: int[] l = new int[10]; // m ist eine 2x3-Matrix int[][] m = new int[2][3]; // n ist ein Quader der Breite 2, // Länge 3, und noch undef. Höhe int[][][] n = new int[2][3][]; 20

2-dim. Arrays: Erzeugung Auch mehrdimensionale Arrays können in der Literalform notiert werden: int[][] m = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}}; // Frage: was ist m[1][2]? 21

Demo: Matrix.java Aufgabe: Schreibe eine Methode printmatrix(), die ein zweidimensionales int-array erhält und in der gewohnten Form ausgibt, also z.b. {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}} 22

Demo: Matrix.java Aufgabe: Schreibe eine Methode readintmatrix(), die zwei int-werte z und s erhält und dann eine zxs-matrix vom Benutzer einliest und zurückgibt 23

Zur Erinnerung: Matrizen Deklaration: int[][] m; Initialisierung: m = new int[zeilen][spalten]; Zugriff auf einen Wert der Matrix: m[zeile][spalte] Setzen des Werts einer Komponente: m[zeile][spalte] = wert; Frage: Was ist der Typ von m[z]? 24

Demo: Matrix.java Aufgabe: Schreibe eine Methode einheitsmatrix(), die eine natürliche Zahl n erhält und eine nxn-matrix zurückgibt, auf deren Diagonalen überall der Wert 1 ist, und alle anderen Werte 0 sind 25

2-dimensionale Arrays Ein zweidimensionales Array muss nicht notwendigerweise rechteckig, d.h. eine Matrix, sein int[][] x = {{1}, {1, 2}, {1, 2, 3}}; 26

Demo: DreiecksArray.java Aufgabe: Schreibe eine Methode dreiecksarray(), die eine natürliche Zahl n erhält und dann ein dreieckiges, zweidimensionales Array in der Form {{1}, {1, 2}, {1, 2, 3}} zurückgibt. 27