Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.
Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung Nächste Überarbeitung | Vorherige Überarbeitung | ||
faecher:informatik:oberstufe:modellierung:fingeruebungen:start [12.03.2024 09:18] – [A2 - Notenverwaltung] Frank Schiebel | faecher:informatik:oberstufe:modellierung:fingeruebungen:start [12.03.2024 14:31] (aktuell) – [A3 - Brüche] Frank Schiebel | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
+ | ~~NOTOC~~ | ||
+ | |||
====== Fingerübungen OOP ====== | ====== Fingerübungen OOP ====== | ||
Zeile 16: | Zeile 18: | ||
Ersetzen an den Stellen, an denen noch TODO steht, den bestehenden Code durch deine Implementation. | Ersetzen an den Stellen, an denen noch TODO steht, den bestehenden Code durch deine Implementation. | ||
Klicke links auf "Tests starten", | Klicke links auf "Tests starten", | ||
+ | |||
+ | ++++ Lösungsvorschlag | https:// | ||
==== A2 - Notenverwaltung ==== | ==== A2 - Notenverwaltung ==== | ||
Zeile 35: | Zeile 39: | ||
Klicke links auf "Tests starten", | Klicke links auf "Tests starten", | ||
- | ==== 03 - Brüche ==== | + | ==== A3 - Brüche ==== |
- | Das Projekt | + | Das Projekt |
einen Bruch repräsentiert. Sie bietet die folgenden öffentlichen Methoden an: | einen Bruch repräsentiert. Sie bietet die folgenden öffentlichen Methoden an: | ||
Zeile 51: | Zeile 55: | ||
Methodenaufruf nicht. Orientiere dich an der Methode multiplizieren, | Methodenaufruf nicht. Orientiere dich an der Methode multiplizieren, | ||
sehen, wie ein neues Bruch-Objekt erzeugt und zurückgegeben wird. | sehen, wie ein neues Bruch-Objekt erzeugt und zurückgegeben wird. | ||
+ | |||
+ | Dazu kommen die (überladenen) Konstruktoren: | ||
+ | * '' | ||
+ | * '' | ||
+ | |||
+ | Der Nenner eines Bruchs muss immer positiv sein. Dafür sollte im Konstruktor gesorgt | ||
+ | werden. Der Aufruf '' | ||
+ | '' | ||
+ | |||
+ | Implementiere alle Stellen, an denen derzeit noch TODO steht. | ||
+ | |||
+ | Beispiele für die Verwendung: | ||
+ | <code java> | ||
+ | Bruch a = new Bruch(1, 3); // repräsentiert die Zahl 1/3 | ||
+ | Bruch b = new Bruch(1, 4); // repräsentiert die Zahl 1/4 | ||
+ | Bruch c = a.addieren(b); | ||
+ | // c repräsentiert 1/3 + 1/4 = 7/12 | ||
+ | // a ist weiterhin 1/3, b ist weiterhin 1/4 | ||
+ | </ | ||
+ | Lassen die 100 Testfälle in der Testklasse '' | ||
+ | |||
+ | ++++ Lösungsvorschlag | https:// | ||
+ | |||
+ | **Bonusaufgabe für Fortgeschrittene: | ||
+ | |||
+ | Sorge dafür, dass deine Brüche immer vollständig gekürzt sind. Um kürzen zu | ||
+ | können, benötigt man den größten gemeinsamen Teiler von Zähler und Nenner. Diesen | ||
+ | erhält man effizient mit dem Euklidischen Algorithmus (→ Google oder Wikipedia). Lasse | ||
+ | dann die Testfälle in der Testklasse '' | ||
+ | |||
+ | ==== A4 - Ganzrationale Funktionen ==== | ||
+ | |||
+ | Das Projekt [[https:// | ||
+ | Zeichnen von Funktionen sowie der Tangente ihres Schaubilds ermöglichen. | ||
+ | Zunächst beschäftigen wir uns mit den ganzrationalen Funktionen, d.h. Funktionen der Gestalt: | ||
+ | |||
+ | $$ f(x)=a_n\cdot x^n + a_{n-1}\cdot x^{n-1} + a_{n-2}\cdot x^{n-2} + \ldots + a_2\cdot x^2 + a_1\cdot x + a_0$$ | ||
+ | |||
+ | Die Klasse '' | ||
+ | Methoden an, die du implementieren musst: | ||
+ | |||
+ | * '' | ||
+ | * '' | ||
+ | |||
+ | Dem Konstruktor wird ein Array aus double-Werten übergeben, die die Koeffizienten $a_0§, | ||
+ | |||
+ | Die Klasse '' | ||
+ | seine Methode '' | ||
+ | |||
+ | **Für Fortgeschrittene: | ||
+ |