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

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

Organisatorisches. Folien (u.a.) gibt's auf der Lva-Homepage zum Download

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

Computeranwendung und Programmierung (CuP)

Vorkurs Informatik WiSe 16/17

Computeranwendung und Programmierung (CuP)

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

Klassen als Datenstrukturen

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!

Repetitorium Informatik (Java)

C++ - Objektorientierte Programmierung Konstruktoren und Destruktoren

Einstieg in die Informatik mit Java

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

Martin Unold INFORMATIK. Geoinformatik und Vermessung

Fragen zur OOP in Java

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 16/17. Kapitel 13. Listen. Listen 1

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

Tag 7 Repetitorium Informatik (Java)

AuD-Tafelübung T-B5b

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

Einstieg in die Informatik mit Java

Grundlagen der Programmierung Teil1 Einheit III Okt. 2010

Javakurs FSS Lehrstuhl Stuckenschmidt. Tag 1 - Variablen und Kontrollstrukturen

Tag 4 Repetitorium Informatik (Java)

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

Objektorientierte Programmierung und Modellierung

Programmierkonventionen - 1 -

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

Martin Unold INFORMATIK. Geoinformatik und Vermessung

Wie entwerfe ich ein Programm?

Einführung in die Programmierung

Javakurs für Anfänger

Einstieg in die Informatik mit Java

Tag 3 Repetitorium Informatik (Java)

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

Javakurs für Anfänger

Javakurs für Anfänger

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

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

Tag 4 Repetitorium Informatik (Java)

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

Programmieren I + II Regeln der Code-Formatierung

Programmieren I + II Regeln der Code-Formatierung

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

C++ - Einführung in die Programmiersprache Schleifen

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

Tag 8 Repetitorium Informatik (Java)

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

Martin Unold INFORMATIK. Geoinformatik und Vermessung

FACHHOCHSCHULE AUGSBURG Hochschule für Technik, Wirtschaft und Gestaltung

Programmieren I. Kapitel 5. Kontrollfluss

JAVA-Datentypen und deren Wertebereich

3.2 Datentypen und Methoden

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

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

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

Felder. M. Jakob. 28. April Gymnasium Pegnitz

Eine Klasse beschreibt Objekte mit gleichen Attributen und Methoden.

Java Datentypen und Variablen

Listen. ArrayList. Definition Listen erzeugen Listen verändern Listen durchlaufen Listen sortieren. Dr. Beatrice Amrhein

Grundlagen der Objektorientierten Programmierung - Statische Arrays

Javakurs für Anfänger

1 Klassen anlegen und Objekte erzeugen

Operatoren für elementare Datentypen Bedingte Anweisungen Schleifen. Operatoren für elementare Datentypen Bedingte Anweisungen Schleifen

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

Modellierung und Programmierung 1

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

Übung Praktische Informatik I

Tag 3 Repetitorium Informatik (Java)

Durch die Möglichkeit, Ein- und Ausgaben auf der Konsole durchzuführen, kann man auch systematisch das Verhalten von Klassen analysieren.

JAVA KURS COLLECTION

Arrays. Einleitung. Deklarieren einer Array Variablen

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

Schleifen: Immer wieder dasselbe tun

Klassen in Java. Grundlagen der Programmierung. Stephan Kleuker 68

Algorithmen und Datenstrukturen

3. Klassen Statische Komponenten einer Klasse. Klassenvariablen

Klassen und Objekte. Einführung in Java. Folie 1 von Mai Ivo Kronenberg

C++ - Objektorientierte Programmierung Konstante und statische Elemente

1 Klassen anlegen und Objekte erzeugen

Der Datentyp String. Stringvariable und -vergleiche

Arrays und Schleifen

1. Referenzdatentypen: Felder und Strings

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

Anweisungen zur Ablaufsteuerung

Konstruktor. Grundlagen der Programmierung. Stephan Kleuker 90

Java Einführung Klassendefinitionen

Problem: Was ist, wenn der Stapel voll ist? Idee: Erzeuge dynamisch ein grösseres Array und kopiere um. Dynamische Anpassung der Größe

Begriffe 1 (Wiederholung)

Einführung in die Programmierung

Einführung in die Programmierung Blockkurs Java

Folienpaket 7 Themenschwerpunkte: Methoden in OOP /2016 Dr. Daniel Haase - Vorkurse Informatik V3/V4

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

Algorithmen implementieren. Implementieren von Algorithmen

Themen der Übung. Methoden und Wrapperklassen. Vorteile von Methoden. Methoden. Grundlagen

Objektorientierte Programmierung

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

Programmierstil. Objektsammlungen. Konzepte. Zwischenspiel: Einige beliebte Fehler... Variablennamen Kommentare Layout Einrückung

Arrays und Schleifen

Transkript:

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 sind in Repetitorium IT I eingetragen. Tutorium entfällt in der ersten Novemberwoche 15.10.2015 IT I - VO 1 1

Übungen: Organisatorisches Diese Woche erste Wissensüberprüfungen in den Übungen. Besprechung von häufigen Fehlern in der VO. 15.10.2015 IT I - VO 1 2

IT I: Heute Wiederholung CuP ctd: this Arrays, ArrayLists Schleifen: for while do-while For-each Projekt Filialenbelieferung 15.10.2015 IT I - VO 1 3

Einige Java-Besonderheiten Strings können mit dem Operator + aneinander gehängt werden. Ausdrücke können über mehrere Zeilen reichen. Eine Zahl wird automatisch in einen String umgewandelt, wenn an dieser Stelle ein String erwartet wird: "0" + value "" + value 15.10.2015 IT I - VO 1 4

Java Konventionen Konventionen dienen der Übersichtlichkeit und Lesbarkeit der Programme. In den Übungen können die Konventionen automatisch geprüft werden. 15.10.2015 IT I - VO 1 5

Java-Konventionen für die Übungen Klassennamen beginnen mit einem Großbuchstaben. Attribut-, Methoden-, Parameternamen und lokale Variablen beginnen mit einem Kleinbuchstaben. Einrückungsstufen (bei Klassendefinitionen, Konstruktoren, Methoden) sind genau vier Leerzeichen. Eine Einrückungsstufe enden mit einer schließenden geschwungenen Klammer }, die nicht mehr eingerückt wird. Alle Attribute sind private. 15.10.2015 IT I - VO 1 6

Dokumentation Für das Verständnis von (fremden) Programmen ist besonders die verbale Beschreibung von Klassen und Methoden wichtig. In Java stehen dafür die Javadoc-Kommentare zur Verfügung. Aus diesen kann automatisch eine Dokumentation des Programms generiert werden. 15.10.2015 IT I - VO 1 7

Syntax von Kommentaren Javadoc: /** * Kommentar */ Weitere Kommentare: /* * Kommentar */ oder einzeilig: /* Kommentar */ // Kommentar 15.10.2015 IT I - VO 1 8

Die Objekt-Referenz this Auf das Objekt, dessen Methode gerade ausgeführt wird, kann mit this zugegriffen werden. In einem Konstruktor bezeichnet this das Objekt, das gerade erzeugt wird. Auf Attribute kann eindeutig mit this.attributname zugegriffen werden. 15.10.2015 IT I - VO 1 9

Die Klasse Random Die Klasse Random stellt verschiedene Methoden zur Erzeugung von Zufallszahlen zur Verfügung. Mit Konstruktor new Random() wird ein Zufallszahlengenerator erstellt. Mit Methoden double nextdouble() int nextint()... werden dann Zufallszahlen erzeugt. 15.10.2015 IT I - VO 1 10

Arrays in Java Arrays sind eine Möglichkeit, um mehrere gleichartige Daten zu verwalten. Ein Array stellt eine Liste fixer Größe dar, wobei die Listenelemente von beliebigem Datentyp sein können. Alle Elemente eines Arrays haben aber denselben Datentyp. Arrays in Java sind eine spezielle Objektart. Bei der Erzeugung eines Array-Objekts wird seine Größe (=Anzahl der Elemente) festgelegt. Zum Programmieren mit Arrays gibt es eine spezielle Notation. 15.10.2015 IT I - VO 1 11

Definition einer Array-Variablen Datentyp[] variablenname; Z.B.: int[] a; Auto[] fuhrpark; Die Elemente eines Arrays können von primitiven oder nicht-primitiven Datentyp sein. Bei einem nicht-primitiven Datentyp sind die Elemente des Arrays nicht die Objekte selbst, sondern Objekt-Referenzen. 15.10.2015 IT I - VO 1 12

Erzeugen eines Array-Objekts new Datentyp[Größe] Z.B.: int[] zahlenliste; zahlenliste = new int[24]; int n = 100; Auto[] fuhrpark = new Auto[n]; Der Aufruf des Konstruktors erzeugt ein Array-Objekt der angegebenen Größe mit dem angegebenen Datentyp. Die Elemente des Arrays werden mit Default-Werten initialisiert: Objekt-Referenzen werden auf null gesetzt. int-, long-, double-werte werden auf 0 gesetzt. boolean-werte werden auf false gesetzt. 15.10.2015 IT I - VO 1 13

Zugriff auf ein Array-Objekt Auf die Elemente eines Arrays kann mit Hilfe ihrer Nummer zu gegriffen werden: int[] a = new int[10]; a[5] = 13; a[6] = 2*a[5]; In Java sind die Array-Elemente mit 0 beginnend nummeriert, also 0,1,2, Auf die Größe eines Arrays kann mit <Array-Variable>.length zugegriffen werden (z.b. a.length). Das letzte Element eines Arrays a hat also den Index (a.length - 1). 15.10.2015 IT I - VO 1 14

Dynamische Arrays: Die Klasse ArrayList Die Klasse ArrayList aus java.util kann im wesentlichen wie ein Array verwendet werden (allerdings mit einer anderen Syntax). Im Gegensatz zu Arrays ist die Größe einer ArrayList aber nicht im vorhinein festgelegt, sondern es können beliebig Elemente in die Liste eingefügt und aus der Liste entfernt werden. Die Größe der Liste verändert sich dabei automatisch. Weiters stellt die Klasse ArrayList zusätzliche Methoden zur Verfügung. 15.10.2015 IT I - VO 1 15

Verwendung einer ArrayList (1) Definition eines ArrayList-Datentyps: ArrayList<Auto> fuhrpark; Eine ArrayList kann für jeden nicht-primitiven Datentyp definiert werden. Erzeugen einer ArrayList: new ArrayList<Auto>(); Eine neu erzeugte ArrayList ist leer, sie enthält keine Elemente. 15.10.2015 IT I - VO 1 16

Verwendung einer ArrayList (2) Das Elemente an der Stelle i in einer ArrayList erhält man von der Methode get(i): fuhrpark.get(i); Auch in einer ArrayList sind die Elemente mit 0 beginnend nummeriert, also 0,1,2, Die Größe einer ArrayList erhält man durch die Methode size(): fuhrpark.size() Mit der Methode set(i,element) kann ein Element an die Stelle i geschrieben werden: fuhrpark.set(i,auto1); Die Stelle i muss es in der ArrayList geben, d.h. i < size(). 15.10.2015 IT I - VO 1 17

Verwendung einer ArrayList (3) Zusätzliche Elemente können mit der Methode add(element) am Ende der ArrayList angefügt werden: furhpark.add(auto2); Mit der Methode add(i,element) kann ein zusätzliches Element an der Stelle i in die ArrayList eingefügt werden: furhpark.add(i,auto3); Dabei werden die ursprünglichen Elemente ab der Stelle i um eine Stelle nach hinten verschoben, damit Platz für das zusätzliche Element geschaffen wird. Mit der Methode remove(i) kann das Element an der Stelle i aus der ArrayList entfernt werden: furhpark.remove(i); Die Elemente ab Stelle i+1 werden um eine Stelle nach vorne verschoben, damit die Lücke geschlossen wird. 15.10.2015 IT I - VO 1 18

Iteration und Schleifen Schleifen erlauben die kontrollierte Wiederholung von Anweisungen/Aktionen. Diese schnelle Wiederholung ist eine der wesentlichen Stärken von Computern. Arrays und Schleifen Mit Hilfe einer Schleife können dieselben Aktionen für alle (oder ausgewählte) Elemente eines Arrays durchgeführt werden. 15.10.2015 IT I - VO 1 19

Die for-each Schleife (1) Als sehr einfache Form der Schleife gibt es in Java die for-each Schleife. Damit können Aktionen für alle Elemente eines Arrays/einer ArrayList ausgeführt werden. 15.10.2015 IT I - VO 1 20

Die for-each Schleife (2) Für ein Array Datentyp[] liste; oder eine ArrayList ArrayList<Datentyp> liste; führt die for-each Schleife for(datentyp el : liste) { Schleifenrumpf } den Schleifenrumpf für jedes Element des Arrays aus. Auf das jeweilige Element kann über die lokale Variable el zugegriffen werden. Der Name der Laufvariablen (hier el) kann frei gewählt werden. Die Laufvariable nimmt der Reihe nach alle im Array enthaltenen Werte an. 15.10.2015 IT I - VO 1 21

Eine for-schleife Die for Schleife for(initialisierung;fortsetzungsbedingung; Aktualisierung) { Schleifenrumpf } wird ausgeführt, solange die Fortsetzungsbedingung true gibt. Eine for-schleife wird meist verwendet, wenn vor der Schleife klar ist, wie oft diese durchlaufen werden soll, z.b. for(int i=0; i<liste.size(); i++) {... liste.get(i)... } for(int i=0; i<array.length; i++) {... array[i]... } 15.10.2015 IT I - VO 1 22

Die while-schleife in Java while(bedingung) { Anweisungsblock } Die Bedingung ist ein Ausdruck, der true oder false liefert. Der Anweisungsblock der while-schleife wird ausgeführt, wenn vor Ausführung des Anweisungsblocks die <Bedingung> true liefert. Nach Ende des Anweisungsblocks wird die <Bedingung> erneut überprüft, und der Anweisungsblock nochmals ausgeführt, wenn die Bedingung true ist. Das wiederholt sich, bis die Bedingung false ist. 15.10.2015 IT I - VO 1 23

Die do-while-schleife in do{ Anweisungsblock }while(bedingung) Java Funktionsweise wie while-schleife. Läuft aber mindestens einmal durch, weil Überprüfung erst am Ende. 15.10.2015 IT I - VO 1 24