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:09] – [Quadratische Funktion] 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 4: | Zeile 6: | ||
==== A1- Quadratische Funktion ==== | ==== A1- Quadratische Funktion ==== | ||
- | Das Projekt | + | Das Projekt |
* Überlege, welche Informationen gespeichert werden müssen, um eine quadratische Funktion vollständig zu beschreiben. | * Überlege, welche Informationen gespeichert werden müssen, um eine quadratische Funktion vollständig zu beschreiben. | ||
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 ==== | ||
+ | |||
+ | Das Projekt [[https:// | ||
+ | an: | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | |||
+ | Überlege dir, wie du das Ergebnis modellieren möchtest. Es sollen wie üblich keine | ||
+ | Variablen nach außen hin sichtbar sein – der Zugriff darf nur über die oben aufgezählten | ||
+ | Methoden geschehen. | ||
+ | |||
+ | Implementiere die Methoden, in denen noch TODO steht. | ||
+ | |||
+ | Klicke links auf "Tests starten", | ||
+ | |||
+ | ==== A3 - Brüche ==== | ||
+ | |||
+ | Das Projekt [[https:// | ||
+ | einen Bruch repräsentiert. Sie bietet die folgenden öffentlichen Methoden an: | ||
+ | |||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | |||
+ | Die ersten vier Methoden führen die Grundrechenarten mit dem aktuellen Bruch ('' | ||
+ | und dem übergebenen Bruch b aus. Das Ergebnis ist stets ein neues Objekt, d.h. '' | ||
+ | Methodenaufruf nicht. Orientiere dich an der Methode multiplizieren, | ||
+ | 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: | ||
+ |