Repetitorium Informatik (Java)
Wintersemester 2015/16
[email protected]
6. Übungsblatt
Aufgabe 6.1: Person
Laden Sie die Datei Person.java von der PraProNeu-Webseite herunter.
a) Erstellen Sie in der Klasse Person einen Konstruktor mit dem Parameter String name.
b) Legen Sie in der Klasse Person eine geeignete Instanzvariable an, die Sie im Konstruktor
mit dem dort übergebenen Namen initialisieren.
c) Implementieren Sie eine Methode sagHallo, die keine Argumente erwartet und den Text
„Hallo! Ich bin <NAME>.“ auf der Kommandozeile ausgibt (dabei soll anstelle von
„<NAME>“ natürlich der „richtige“ Name des Person-Objektes ausgegeben werden).
d) Testen Sie Ihre Implementierung mit dem vorgegebenen Code der main-Methode.
Aufgabe 6.2: Polynom
In dieser Aufgabe sollen Sie eine Klasse für Berechnungen mit (ganzzahligen) Polynomen erstellen.
Laden Sie dazu die Datei Polynom.java von der PraProNeu-Webseite herunter.
a) Instanziieren Sie in der main-Methode mehrere Polynom-Objekte und lassen Sie die erzeugten Polynome (z.B. f (x) = 23x2 + 42x − 5) mittels printPolynom ausgeben.
b) Ergänzen Sie die Klasse Polynom um eine Instanzmethode eval mit Parameter int x, die
das jeweilige Polynom an der Stelle x auswertet und den sich ergebenden Wert als Ergebnis
der Methode zurück gibt.
Testen Sie Ihre Implementierung, indem Sie in der main-Methode verschiedene Polynome an
unterschiedlichen Stellen auswerten lassen. Beispiele:
P olynom
f (x) = 23x2 + 42x − 5
g(x) = 47x2 + 11x − 815
h(x) = x4 − x3 + x2 − x + 1
Stelle x
x = −1
x = 42
x=2
Ergebnis
−24
82555
11
...
c) Ergänzen Sie die Klasse Polynom um eine Klassenmethode add, die zwei Polynome (also
zwei Instanzen der Klasse Polynom!) übergeben bekommt und diese „addiert“. Das erhaltene
Polynom(objekt) soll zurückgegeben werden.
Testen Sie Ihre Implementierung mit verschiedenen Beispielen.
d) Ergänzen Sie die Klasse Polynom um eine Instanzmethode derive, die die erste Ableitung
des aktuelle Polynoms bestimmt. Diese Methode soll kein Ergebnis haben, sondern die internen Daten des Polynoms verändern.
Beispiel: f (x) := 23x2 + 42x − 5
f (x).derive()
f 0 (x) = 46x + 42
-1-
Repetitorium Informatik (Java)
Wintersemester 2015/16
[email protected]
Aufgabe 6.3: Notenverwaltung
In dieser Aufgabe sollen Sie eine Programm mit mehreren Klassen implementieren, welches Prüfungsnoten erfassen und deren Notendurchschnitt berechnen kann.
a) Erstellen Sie zunächst eine Klasse Note in der Datei Note.java. Die Klasse soll über ein
Attribut für die Note (als Fließkommazahl) und ein Attribut für die zugehörige ECTS-Zahl
(ebenfalls als Fließkommazahl) verfügen.
b) Legen Sie in der Klasse Note einen Konstruktor an, der bei der Instanziierung von Noten
jeweils Note und ECTS-Zahl erwartet und die entsprechenden Variablen initialisiert.
c) Erstellen Sie eine Klasse Notenverwaltung in der Datei Notenverwaltung.java. Diese
Notenverwaltung soll nur Klassenmethoden und -variablen enthalten. Ergänzen Sie die Klasse
um ein Array zur Speicherung von maximal 30 Noten, sowie einen Zähler, der die aktuelle
Anzahl der verwalteten Noten darstellt.
d) Ergänzen Sie die Klasse Notenverwaltung um eine main-Methode, um Ihre bisherige und
schrittweise auch die zukünftige Implementierung gründlich zu testen.
e) Implementieren Sie in der Klasse Notenverwaltung eine Methode hinzufuegen, die eine
Note übergeben bekommt und im Array an einer freien Stelle abspeichert. Geben Sie eine
Fehlermeldung aus, falls kein Platz mehr für die neue Note vorhanden sein sollte.
f) Ergänzen Sie die Klasse Notenverwaltung um eine Methode ausgeben, die alle Noten
auf dem Bildschirm ausgibt, die bisher in der Notenverwaltung gespeichert wurden.
g) Implementieren Sie eine Methode schnitt, die den Notendurchschnitt aller bisher in die
Verwaltung eingetragenen Noten berechnet und als double-Wert zurückgibt. Beachten Sie
bitte, dass die Noten dabei mit ihrer ECTS-Zahl gewichtet werden sollen. Beispiel:
M odul
ECT S
AuD
10
KonzMod
5
PFP
5
∅ = (10 · 4.0 + 5 · 1.3 + 5 · 1.7)/20
N ote
4.0
1.3
1.7
2, 75
h) „Bonusaufgabe“
Ergänzen Sie die Klasse Notenverwaltung um die beiden Methoden besterSchnitt
bzw. schlechtesterSchnitt. Jede dieser Methoden erwartet die Gesamtzahl der ECTS
der noch offenen Prüfungsleistungen, und berechnen, welcher Notendurchschnitt im besten
bzw. im schlechtesten Fall gerade noch möglich ist.
-2-