Transcript
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
.“ auf der Kommandozeile ausgibt (dabei soll anstelle von „“ 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-