IT I - Übungsblatt 3

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