IT 2 WS 2013/2014 Übungsblatt 3

Ähnliche Dokumente
Einführung in die Programmierung für Wirtschaftsinformatik

Kapitel 6. Vererbung

Jetzt sollt ihr von der Vorlage der Grundversion 1.0 ein eigenes Textadventure erstellen.

Kapitel 6. Vererbung

Kapitel 6. Vererbung

Probeklausur: Programmierung WS04/05

Objektorientierte Programmierung

3 Objektorientierte Konzepte in Java

Vererbung & Schnittstellen in C#

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

1 Polymorphie (Vielgestaltigkeit)

Algorithmen und Datenstrukturen

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

3 Objektorientierte Konzepte in Java

EndTermTest PROGALGO WS1516 A

Fakultät Angewandte Informatik Lehrprofessur für Informatik

Eine Klasse beschreibt Objekte mit gleichen Attributen und Methoden.

Javadoc. Programmiermethodik. Eva Zangerle Universität Innsbruck

Institut fu r Informatik

Übersicht. Informatik 2 Teil 3 Anwendungsbeispiel für objektorientierte Programmierung

Beispiel: Methode mit einem Fehler. Diese Methode wird problematisch, wenn von außen eine Dauer von 0 Sekunden angegeben wird, etwa im Aufruf

Objektorientierte Programmierung

5.5.8 Öffentliche und private Eigenschaften

Fakultät Angewandte Informatik Programmierung verteilter Systeme Übungen zur Vorlesung Informatik II, Blatt 6

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

Java: Vererbung. Teil 3: super()

VIII: Vererbung. Unterklassen einer Klasse. Vererbung von Methoden und Instanzvariablen. Überschreiben von Methoden

Objektorientierte Programmierung. Kapitel 12: Interfaces

Programmierkurs Java

Vererbung. Vererbung von Methoden und Instanzvariablen. Vererbung als Realisierung einer is-a Beziehung.

Prinzipien Objektorientierter Programmierung

Java für Computerlinguisten

Arrays Fortgeschrittene Verwendung

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

Betreutes Programmieren Vorlesung Informatik II, Blatt 7 Musterlösung

Software Engineering Klassendiagramme Einführung

Übungen zu Computeranwendung und Programmierung WS 13/14

Programmentwicklung I für Hörer anderer Fachrichtungen -Wintersemester 2003/04- Abschlussklausur

5.6 Vererbung. Vererbung

13. Tutorium zu Programmieren

Praktikum Informatik II Prof. Dr. Martin Trauth, Dr. Michael Männel

Java Einführung Abstrakte Klassen und Interfaces

Java Einführung Methoden in Klassen

5. Tutorium zu Programmieren

Übung 1 mit C# 6.0 MATTHIAS RONCORONI

Besonderheiten von C#

Java Schulung (Java 2 Java Development Kit 5 / 6)

Javakurs für Anfänger

Grundlagen der Programmierung Prof. H. Mössenböck. 14. Schrittweise Verfeinerung

Institut für Programmierung und Reaktive Systeme 25. August Programmier-Labor Übungsblatt. int binarysearch(int[] a, int x),

Aufgabe 1. »Programmieren«, WS 2006/2007. Nino Simunic M.A.

Typumwandlungen bei Referenztypen

Programmieren in Java

7. Objektorientierte Softwareentwicklung/3. Informatik II für Verkehrsingenieure

Datenbankanwendungsprogrammierung Crashkurs Java

Programmieren in Java

Type Erasure in Java 5. Helmi Jouini Institut für Theoretische Informatik Universität Karlsruhe

Sichtbarkeit & statische Methoden. Einsatz von Sichtbarkeit Einsatz statischer Methoden programmatische Realisierung 2 Beispielaufgaben

Java-Schulung Grundlagen

Kapitel 14. Systemarchitektur

Assoziation und Aggregation

equals und hashcode SortedSet NavigableSet Assoziative Container Programmieren II Dr. Klaus Höppner Hochschule Darmstadt Sommersemester / 32

368 4 Algorithmen und Datenstrukturen

Softwaretechnologie - Wintersemester 2012/ Dr. Günter Kniesel

Objektorientierte Programmierung

von Anja Austermann Drag and Drop

Programmierkurs Java

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

OO Softwareentwicklung

DES-Simulator in JAVA, objektorientiert

Objekt-Orientierte Programmierung

Javakurs 2013 Objektorientierung

Von der UML nach C++

Objektorientierte Programmierung. Objektorientierte Programmierung. Klasse. Objekt. Beispiel: Sportfest1. Methode. Eine Einführung mit BlueJ

Kapitel 12 Dokumentation und Zugriffsrechte

Musterlösungen zur Klausur Informatik 3

i n g e n i e u r b ü r o f ü r s o f t w a r e t e c h n o l o g i e w w w. v o e l t e r. d e Servlet Debugging

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

Testklausur 1 zur Vorlesung. Modellierung und Programmierung I. Dr. Monika Meiler Zeit: 60 Minuten

Grundlagen der Programmierung Prof. H. Mössenböck. 10. Klassen

Java Tipps für Lehrer. Table des matières. Einleitung

Programmieren Tutorium

Test zu Grundlagen der Programmierung Leitung: Michael Hahsler. 21. November 2003

PIWIN 1 Übung Blatt 5

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

EINI WiMa/LW. Einführung in die Informatik für Naturwissenschaftler und Ingenieure. Vorlesung 2 SWS WS 11/12

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

Drei-Schichten-Architektur. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 16: 3-Schichten-Architektur 1 Fachkonzept - GUI

Tagesprogramm

Java Einführung Collections

Institut für Programmierung und Reaktive Systeme 26. April Programmieren II. 10. Übungsblatt

Objektorientiertes Programmieren

Studentische Lösung zum Übungsblatt Nr. 7

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

Einführung Datentypen Verzweigung Schleifen Funktionen Dynamische Datenstrukturen. Java Crashkurs. Kim-Manuel Klein

Programmdokumentation

Methoden. von Objekten definiert werden, Methoden,, Zugriffsmethoden und Read-Only

Prüfungszeuch im Fach Objektorientierte Programmierung WS 2000

Einführung in die. objektorientierte Programmierung

Transkript:

Abgabe: 8.11.2013 Beispiel 3.1 [Swap.java] Implementieren Sie die Klasse ue41.swap mit der statischen Methode static void arrange(swaplist list ), die die Elemente von list so umordnet, dass alle Elemente mit einer gewissen Eigenschaft vor den Elementen ohne dieser Eigenschaft angeordnet sind. Die vordefinierte Klasse ue41.swaplist beschreibt eine Liste von Elementen mit einer Boole schen Eigenschaft. Auf eine SwapList können folgenden Methoden angewandt werden: public class SwapList * Returns the number of elements in the list. * The smallest index in the list is 0. public int size(); Swaps the i-th and j-th element. public void swap(int i, int j); Returns true if the i-th Element has the property. public boolean hasproperty(int i); Um Ihre Methode arrange() zu testen, wird es notwendig sein, auch die Klasse SwapList zu implementieren. Beispiel 3.2 [Routenplaner.java] Gegeben ist die Klasse Ort im Paket routenplanung. Die Orte sind von 0 beginnend durchnummeriert. Die Methode double getdirekteentfernungzu(ort andererort) in der Klasse Ort liefert die direkte Entfernung vom befragten Ort zum Ort andererort. Schreiben Sie eine Klasse routenplanung.routenplaner mit folgenden Eigenschaften: Es gibt einen Konstruktor Routenplaner(Ort[]ortsliste), der den Routenplaner für diese Liste von Orten anlegt. Es gibt eine Methode double getkuerzesteentfernung(ort start, Ort ziel), die die Länge des kürzesten Weges von start nach ziel über höchstens einen Ort als Zwischenstation zurückliefert. Beachten Sie, dass der Weg über eine Zwischenstation kürzer sein kann als der direkte Weg. - 1 -

Beispiel 3.3 Gegeben sind die Klassen Webseite und Suchmaschine. Die Klasse Suchmaschine verfügt über den Konstruktor public Suchmaschine(ArrayList<Webseite> diewebseiten) sowie über die Methode public ArrayList<Webseite> finde(string wort), die eine Liste von allen (durch den Konstruktor bekannten) Webseiten zurückgibt, die wort enthalten. Schreiben Sie eine Klasse ErweiterteSuchmaschine, die von Suchmaschine erbt und das folgende Interface ErweiterteSuche implementiert: interface ErweiterteSuche * Gibt eine Liste von allen Webseiten zurück, * die poswort enthalten und negwort nicht enthalten. public ArrayList<Webseite> findemitohne(string poswort, String negwort); Die Klasse ErweiterteSuchmaschine soll auch über den Konstruktor public ErweiterteSuchmaschine(ArrayList<Webseite> diewebseiten) verfügen. Beispiel 3.4 Gegeben ist eine Klasse Ort mit der Methode double getdistanzzu(ort andererort), die die Distanz zu dem anderen Ort zurückliefert. Weiters ist die Unterklasse Tankstelle der Klasse Ort gegeben. Schreiben Sie eine Klasse LKW mit dem Konstruktor LKW(double reichweite), dem die Reichweite des LKWs bei vollem Tank übergeben wird. Die Klasse LKW soll weiters die Methode ArrayList<Tankstelle> berechnetankstops(ort[] route) enthalten, die berechnet, an welchen Orten der angegebenen Route der LKW aufgetankt werden muss, um sein Ziel zu erreichen. Die Auswahl der Tankstops soll so erfolgen, dass ihre Anzahl möglichst gering ist. Sie können annehmen, dass die Route aus zumindest zwei Orten besteht, und dass die Fahrt des LKWs voll getankt im Ort route[0] beginnt. Natürlich kann der LKW nur an Orten betankt werden, die Tankstellen sind. Dies kann z.b. mittels (route[i] instanceof Tankstelle) überprüft werden. Liegen die Tankstellen soweit auseinander, dass der LKW die Route nicht abfahren kann, dann soll die Methode null zurückliefern. - 2 -

Beispiel 3.5 [Auftraege.java] Gegeben sind Arbeitsaufträge unterschiedlicher Dauer. Die benötigte Anzahl von Stunden für jeden Auftrag ist in einem int-array hinterlegt. Schreiben Sie die Klasse ueb.auftraege mit der Methode public static int getmaxanzahl(int[] auftragslaengen, int maxstunden), die die maximale Anzahl der Aufträgen zurückliefert, die in maxstunden erledigt werden können. (Die Aufträge, die erledigt werden, können beliebig aus den gegebenen Aufträgen gewählt werden.) Beispiel 3.6 Gegeben sei eine Klasse Gebrauchsteil. Diese Klasse verfügt über den Konstruktor public Gebrauchsteil(int baunummer), der ein neues Gebrauchsteil der entsprechenden Baunummer erzeugt. Weiters verfügt die Klasse Gebrauchsteil über die Methoden public int getid(), public int getlebensdauer(), die eine eindeutige Identifikationsnummer und die Lebensdauer des Gebrauchsteils zurück liefern. Schreiben Sie eine Klasse Anlage mit Konstruktor public Anlage (int [] baunummern), der eine Anlage erzeugt, die aus neuen Gebrauchsteilen mit den angegebenen Baunummern besteht. Weiters soll eine Anlage mittels der Methode public void simuliere(int anzeinheiten) wiederholt für anzeinheiten Zeiteinheiten simuliert werden können. Dabei soll nach jeder Zeiteinheit überprüft werden, ob die Lebensdauer eines Gebrauchsteils erreicht ist. Gegebenenfalls sollen diese Gebrauchsteile durch neue Gebrauchsteile der jeweils gleichen Baunummer ersetzt werden. Die Methode public Gebrauchsteil [] getgebrauchsteile() soll die aktuellen Gebrauchsteile der Anlage zurück liefern. - 3 -

Beispiel 3.7 Implementieren Sie in der folgenden Klasse Stadt die Klassenmethode printweg(). Sie können dazu auch noch weitere Methoden implementieren. public class Stadt private String name; /* Die Attribute norden, osten, sueden, westen bezeichnen * die Nachbarstädte. Wenn keine Nachbarstadt in der * angegebenen Richtung existiert, ist der Attributwert * null. private Stadt norden, osten, sueden, westen; public Stadt(String name) this.name = name; public void setnachbarn(stadt norden, Stadt osten, Stadt sueden, Stadt westen) this.norden = norden; this.osten = osten; this.sueden = sueden; this.westen = westen; * Gibt die Liste der Städte auf einem Weg von start zu * ziel zurück, der höchstens maxlaenge lang ist. Wenn ein * solcher Weg nicht existiert, wird null zurückgegeben. * Die Länge des Weges ist die Anzahl der Schritte, * die benötigt werden, um über Nachbarstädte von * start zu ziel zu kommen. public static List<Stadt> printweg(stadt start, Stadt ziel, int maxlaenge) // zu implementieren - 4 -

Beispiel: Für die Städte a,,e ergeben die Aufrufe b a c d e printweg(a,d,2): null printweg(a,d,3): a -> b -> c -> d printweg(a,d,4): a -> b -> c -> d - 5 -