Schwierigkeit 2
Entwerfen Sie eine Klasse Polynom, die ein reelwertiges (double) Polynom repräsentiert. Die Koeffzienten des Polynoms sollten als Feld im Konstruktur übergeben werden. Zwei Polynome sollen addiert werden können. Der Grad eines Polynoms soll sich bestimmt lassen. Ebenso soll die erste Ableitung eines Polynoms berechnet werden können. Achten Sie bei den Tests darauf auch Randbedingungen wie Null-Polynom oder Polynome mit 0-Koeffzienten beim höchsten Exponenten zu berücksichtigen. Zu guter Letzt, soll der Funktionswert an einer Stelle des Polynoms berechnet und zurückgegeben werden können.
Wenn Sie auch diese Aufgabe zur Nullstellensuche gemacht haben oder noch machen wollen, dann bietet es sich an ein Polynom das Interface einer stetigen Funktion implementieren zu lassen.
Schwierigkeit 2
Windgeschwindigkeiten werden oft in Kilometer pro Stunde oder Knoten (Seemeilen pro Stunde) angegeben. Eine weitere Masseinheit ist die Beaufortskala (ganzzahlige Werte von 0-12). Entwerfen Sie eine Java-Klasse, mit der eine Windgeschwindigkeit unter Angabe des Werts in Kilometer pro Stunde erzeugt werden kann. Für eine Windgeschwindigkeit sollen auch Knoten und Beaufort-Wert ermittelt werden können. Ebenso soll überprüft werden, ob es windstill ist oder ein Orkan.
Windgeschwindigkeiten von weniger als 2 km/h gelten als windstill.
Ab 120 km/h spricht man von einem Orkan. Eine Seemeile sind 1,852 Kilometer.
Der Beaufortwert ist definiert durch v = 3,01 * B3/2, wobei
v die Windgeschwindigkeit in Kilometer pro Stunde ist und B kaufmännisch auf einen ganzzahligen Wert gerundet werden muss. Es gibt keinen Beaufortwert über 12.
Hinweis: Mit Math.pow(a,b) können Sie ab berechnen.
Schwierigkeit 2
Rationale Zahlen sind Zahlen die sich als Bruch p / q einer ganzen Zahl p und
einer natürlichen Zahl q darstellen lassen (mit q != 0).
Entwerfen und implementieren Sie eine Klasse RationaleZahl deren Objekte rationale Zahlen repräsentieren, die sich addieren und multiplizieren lassen. Zähler und Nenner der vollständig gekürzten rationalen Zahl sollen zurückgegeben werden können. Ebenso soll der double-Wert der Zahl zurückgegeben werden können.
Einen Bruch können Sie vollständig kürzen, in dem Sie Zähler und Nenner durch den grössten gemeinsamen Teiler des Zählers und Nenners dividieren.
Achten Sie darauf, dass die Null eine eindeutige Darstellung hat. Ebenso darf nicht durch Null geteilt werden.
Die Klasse sollte einen Konstruktor enthalten, der Zähler und Nenner als int-Werte übergeben bekommt.
Schwierigkeit 2
Die chemischen Elemente des Periodensystems klassifizieren alle Atome mit der selben Anzahl von Protonen: die Kernladungszahl oder auch Ordnungszahl. Jedes chemische Element hat einen symbolischen Namen. Dieser besteht in der Regel aus den erste oder erste beiden Anfangsbuchstaben des Lateinischen Namens.
Beispiele von chemischen Elementen sind:
Im Periodensystem werden die chemischen Elemente unter anderen wie folgt unterteilt:
Entwerfen und implementieren Sie eine Klasse ChemischesElement mit den nötigen Eigenschaften und Methoden, um die drei Metalleigenschaft abzufragen (jeweils eine Methode). Verwenden sie für letzteres kein if/else sondern:
Achten Sie darauf, die für eine Metaleigenschaft, die am besten passende der drei aufgeführten Implementierungsvarianten zu wählen. Wie unterscheiden sich die drei Implementierungsvarianten hinsichtlich Wartbarkeit und Ausführungsgeschwindigkeit?
Die Klasse soll noch Konstanten für die oben fünf genannten chemischen Elemente besitzten.
Die Werte der Objekte soll unveränderlich sein: sobald ein ChemischesElement erzeugt wurde, darf der Zustand nicht mehr geändert werden können.
Beachten Sie auch die Erweiterung dieser Aufgabe zum Einlesen der Elemente aus einer Textdatei und die Implementierung des abstrakten Datentyps Comparable zum vergleichen zweier Chemischen Elemente