IT 2 – WS 2016/2017 – Übungsblatt 1 - 1

Werbung
IT 2 – WS 2016/2017 – Übungsblatt 1
Abgabe: 14.10.2016
Beispiel 1.1 [freiwillig: Triple.java]
Schreiben Sie eine public-Klasse Triple, die eine Implementierung der Methode
public boolean containsTriple(int[] a)
enthält. Diese Methode liefert true, wenn es eine Zahl gibt, die im übergebenen Array a genau
dreimal vorkommt.
Beispiel 1.2
Es sind folgende Klassen bzw. Interfaces definiert:
public interface IType {
public abstract boolean iMethod(int n);
}
public class OtherClass {
public OtherClass() {
...
}
public void otherMethod(IType obj) {
...
}
}
public class MyClass {
private int myN;
public MyClass(int n) {
myN = n;
}
public void myMethod(int n) {
MyClass obj = new MyClass(n);
(new OtherClass()).otherMethod(obj);
}
}
Welche Veränderungen in der Klasse MyClass sind notwendig, damit die Methode
myMethod() kompilierbar und ausführbar ist? Verändern Sie aber nicht die Methode
myMethod() oder eine der anderen Klassen!
-1-
IT 2 – WS 2016/2017 – Übungsblatt 1
Beispiel 1.3 [freiwillig: LargestPossible.java]
Schreiben Sie eine public-Klasse LargestPossible, die eine Implementierung der Methode
public int getBestFit(int[] a, int maxValue)
enthält. Diese Methode liefert die größte Zahl im Array a, die kleiner oder gleich maxValue
ist. Gibt es keine solche Zahl in a, liefert die Methode maxValue+1 zurück.
Beispiel 1.4 [* RealFunctionCount, MinimizerPlus]
Gegeben ist das Interface
public interface RealFunction
{
public double f(double x);
}
und die Klasse Minimizer mit einem parameterlosen Konstruktor und der Methode
public double findMin(RealFunction fun,
double a, double b, double error)
die das Minimum der übergebenen Funktion im Intervall [a,b] mit maximalem Fehler error
berechnet.
Schreiben Sie die Klasse RealFunctionCount, die das Interface RealFunction implementiert
und die Anzahl der Funktionsaufrufe mitzählt. Dazu soll die Klasse den Konstruktor und die
Methoden
public RealFunctionCount(RealFunction fun),
public double f(double x),
public int getFunCalls()
enthalten. Ein Aufruf von f(x) soll das Ergebnis für die Funktion fun zurückgeben,
getFunCalls() soll die Anzahl der bisherigen Aufrufe von f(x) zurückgeben. Implementieren
Sie weiters die Unterklasse MinimizerPlus von Minimizer, die über die zusätzliche Methode
public double findMinCount(RealFunction fun,
double a, double b, int funCalls)
verfügt. Die Methode findMinCount soll findMin mit immer kleineren Werten für error aufrufen, bis die Gesamtanzahl an Funktionsaufrufen von fun.f den Wert von funCalls überschreitet. Konkret soll der erste Aufruf von findMin mit dem Wert error=1 erfolgen, und
in jedem weiteren Aufruf soll der Wert von error halbiert werden. Das Ergebnis des letzten
Aufrufs von findMin soll zurückgegeben werden.
-2-
IT 2 – WS 2016/2017 – Übungsblatt 1
Beispiel 1.5 [Beschaffung.java]
Gegeben ist die folgende Klasse schrauben.Schraubenfabrik, mit den folgenden
Eigenschaften:
• Es gibt einen Konstruktor
Schraubenfabrik(double[] gewindegroessen),
wobei das Array gewindegroessen angibt, welche Gewindegrößen die Fabrik fertigen
kann.
• Es gibt eine Methode
double[] getGewindegroessen(),
die in einem Array die Gewindegrößen zurückliefert, die die Fabrik fertigen kann.
Implementieren Sie eine Klasse schrauben.Beschaffung mit einer Methode
Schraubenfabrik findLieferant(Schraubenfabrik[] lieferantenliste),
die jene Schraubenfabrik zurückliefert, die möglichst unterschiedliche Schrauben fertigen
kann, d.h. bei der der Unterschied zwischen kleinster und größter Gewindegröße maximal ist.
Beispiel 1.6 [Projekt.java]
Gegeben ist die folgende Klasse taetigkeiten.Taetigkeit mit den folgenden Eigenschaften:
• Es gibt einen Konstruktor
Taetigkeit(String name),
• eine Methode
boolean istErledigt(),
die true zurückliefert, wenn die Tätigkeit abgeschlossen ist,
• und die Methode
public String toString().
Implementieren Sie die Unterklasse taetigkeiten.Projekt von Taetigkeit mit dem Konstruktor
Projekt(String name, ArrayList<Taetigkeit> teilaufgaben),
wobei in teilaufgaben jene Tätigkeiten enthalten sind, die für den Abschluss des Projekts
notwendig sind.
Überschreiben Sie in der Klasse Projekt die Methode istErledigt() so, dass die Methode dann
true liefert, wenn alle Teilaufgaben erledigt sind.
Überschreiben Sie auch die Methode toString(), sodass zu dem von toString() in Taetigkeit
erzeugten String auch noch die Anzahl der Teilaufgaben mit einem vorangestellten
Doppelpunkt angefügt wird (z.B. "SW-Projekt:5").
-3-
IT 2 – WS 2016/2017 – Übungsblatt 1
Beispiel 1.7
Implementieren Sie eine gemeinsame public-Oberklasse Person der unten angegebenen
Klassen Student und Teacher, die die Gemeinsamkeiten dieser Klassen zusammenfasst.
Insbesondere soll die Klasse Person über Methoden
public String getName()
und
public String getAddress()
verfügen, die den Namen bzw. die Adresse der Person zurückliefern. Implementieren Sie auch
die Unterklassen Student und Teacher mit den notwendigen Modifikationen so, dass sich das
Verhalten dieser Klassen nicht ändert.
public class Student {
private String name, address, major;
public Student(String name, String major) {
this.name = name;
this.major = major;
address = null;
}
public void ausgeben() {
System.out.println(name);
System.out.println(address);
System.out.println("Field of study: " + major);
}
public void setAddress(String addresse);
{
this.address = address;
}
}
public class Teacher {
private String name, address, subject;
public Teacher(String name, String address,
String subjects) {
this.name = name;
this.address = address;
this.subjects = subjects;
}
public void gibAus() {
System.out.println(name);
System.out.println(address);
System.out.println("Teaches: " + subject);
}
}
-4-
Herunterladen