IT 1 – WS 2015/2016 – Übungsblatt 3 Informationen: Die Beispiele sind bis 29.10. um 8 Uhr abzugeben bzw. bis zur Übung vorzubereiten. Beispiel 3.1: Schreiben Sie eine Klasse Schleifen, in der Sie folgende Methode implementieren: void schleifen() { for(int i=1;i<=3;i++) for(int j=1;j<=3;j++) System.out.println(i+j); } Führen Sie diese Methode aus. Wieviele Zahlen werden ausgegeben? Kommen Zahlen doppelt vor? Warum (nicht)? Gehen Sie die Methode mit dem Debugger Schritt für Schritt durch, bis Sie sicher sind, die Funktionsweise der beiden verschachtelten Schleifen verstanden zu haben. Schreiben Sie die for-Schleifen zunächst in while- und anschließend in do-while-Schleifen um, sodass sich am Ablauf der Methode nichts ändert. Beispiel 3.2: Schreiben Sie eine Methode, die als Parameter ein String-Array nimmt und sämtliche Paare von Strings aus dem Array ausgibt. Für Übergabeparameter {„Anna“, „Franz“, „Fritz“} sollen also z.B. die Paare {„Anna“, „Franz“}, {„Anna“, „Fritz“} und {„Franz“, „Fritz“} ausgegeben werden. Schreiben Sie das Programm einmal mit for-Schleifen, einmal mit while-Schleifen und einmal mit do-while-Schleifen. Beispiel 3.3: [Buch.java, Bibliothek.java] Schreiben Sie eine Klasse Buch mit dem Konstruktor public Buch(String titel, boolean verliehen) und den Methoden public String gibTitel(), public boolean gibVerliehen() und public void setzeVerliehen(boolean istVerliehen), die die entsprechenden Informationen zurückgeben bzw. neu definieren (istVerliehen == true bedeutet 'Buch ist verliehen'). Schreiben Sie weiters eine Klasse Bibliothek mit Konstruktor public Bibliothek(), der eine Bibliothek ohne Bücher erzeugt. Implementieren Sie auch die folgenden Methoden: public boolean addBuch(Buch einBuch) fügt einBuch der Bücherliste der Bibliothek hinzu, wenn dieses Buch in der Bücherliste noch nicht enthalten ist (gibt true zurück, wenn das Hinzufügen erfolgreich ist, ansonsten false). Zwei Bücher gelten als gleich, wenn sie denselben Titel haben. public ArrayList<Buch> getIstvorhanden() liefert eine ArrayList mit jenen Büchern der Bibliothek zurück, die nicht verliehen sind. 1 IT 1 – WS 2015/2016 – Übungsblatt 3 Beispiel 3.4: Gegeben sei eine Klasse Produkt mit Methoden String getTyp() und int getPreis(), die den Typ bzw. den Preis des Produkts zurückgeben. Schreiben Sie eine Klasse Produktkatalog mit Konstruktor Produktkatalog(Produkt[] produktliste) zur Erzeugung eines entsprechenden Produktkatalogs. Implementieren Sie auch eine Methode Produkt getBestpreis(String typ), die das günstigste Produkt vom angegebenen Typ zurückgibt. Falls es kein Produkt vom gesuchten Typ gibt, geben Sie null zurück. Sollte es mehrere günstigste Produkte geben, so soll ein beliebiges günstigstes Produkt zurückgegeben werden. Beispiel 3.5: Gegeben sei eine Klasse Pruefung sowie eine Klasse UniAssistent mit Methoden void trinkKaffee(), int korrigiere(Pruefung diePruefung), die den Uniassistenten einen Kaffee trinken bzw. eine Prüfung korrigieren lassen. Die Methode korrigiere gibt dabei die Note auf die Prüfung diePruefung zurück. Schreiben Sie eine Klasse Pruefungskorrektur mit Konstruktor Pruefungskorrektur(ArrayList<Pruefung> diePruefungen, UniAssistent derAssistent), der eine Pruefungskorrektur mit zu korrigierenden Prüfungen diePruefungen sowie einen die Prüfungen korrigierenden Uniassistenten anlegt. Implementieren Sie weiters eine Methode boolean korrigierePruefungen(), die den Uniassistenten sämtliche Prüfungen korrigieren lässt. Ist eine Prüfung negativ, so soll sich der Uniassistent einen Kaffee genehmigen. Nach 10 Tassen Kaffee soll der Uniassistent die Korrektur aus gesundheitlichen Gründen abbrechen und die Methode false zurückgeben. Schafft der Uniassistent hingegen die Korrektur aller Arbeiten, soll true zurückgeben werden. Beispiel 3.6: [RandomNumberTest.java] Implementieren Sie eine Klasse RandomNumberTest mit den Methoden • int[] getRandomNumbers(int min, int max, int size), die ein Array der Größe size mit Zufallszahlen >=min und <=max zurückgibt, • int getDice(), die zufällige Werte von 1 bis einschließlich 6 zurückgibt, • String getAnswer(), die zufällig eine der Zeichenketten "ja", "nein" oder "vielleicht" zurückliefert. Alle möglichen Ergebnisse sollen jeweils gleich wahrscheinlich sein. Sehen Sie sich für dieses Beispiel die Klasse Random im Paket java.util an. Beispiel 3.7: Schreiben Sie eine Klasse, die eine statische Methode enthält. Deklarieren Sie eine oder mehrere Variable auf Klassenebene, und verwenden Sie diese in der statischen Methode. Worauf müssen Sie dabei achten? Warum? Machen Sie die Methoden in Beispiel 3.1 statisch. Funktioniert das? Warum (nicht)? Wie unterscheidet sich nun der Methodenaufruf in BlueJ? Warum? 2
© Copyright 2024 ExpyDoc