wiederholung:loesung:aufgabe1:start
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen RevisionVorhergehende Überarbeitung | |||
wiederholung:loesung:aufgabe1:start [2022/12/09 07:33] – gelöscht Martin Pabst | wiederholung:loesung:aufgabe1:start [2022/12/09 07:33] (aktuell) – angelegt Martin Pabst | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
+ | ===== Lösung zur Aufgabe: Die Klasse Bruch ===== | ||
+ | Ein Objekt der Klasse Bruch repräsentiert einen Bruch $\frac{a}{b}$, | ||
+ | <code learnj> | ||
+ | Bruch b1 = new Bruch(4, 3); | ||
+ | Bruch b2 = new Bruch(1, 2); | ||
+ | b1.ausgabeUnecht(); | ||
+ | b1.ausgabeEcht(); | ||
+ | b1.mal(b2); | ||
+ | b1.ausgabeUnecht(); | ||
+ | </ | ||
+ | Dieses Programm soll folgendes ausgeben: | ||
+ | <code learnj> | ||
+ | 4/3 | ||
+ | 1 1/3 | ||
+ | 4/6 | ||
+ | </ | ||
+ | |||
+ | < | ||
+ | |||
+ | <div class=" | ||
+ | |||
+ | <script type=" | ||
+ | Bruch b1 = new Bruch(4, 3); | ||
+ | Bruch b2 = new Bruch(1, 2); | ||
+ | b1.ausgabeUnecht(); | ||
+ | b1.ausgabeEcht(); | ||
+ | b1.mal(b2); | ||
+ | b1.ausgabeUnecht(); | ||
+ | |||
+ | class Bruch { | ||
+ | |||
+ | int z; | ||
+ | int n; | ||
+ | |||
+ | | ||
+ | this.z = z; | ||
+ | this.n = n; | ||
+ | } | ||
+ | |||
+ | | ||
+ | println(z + "/" | ||
+ | } | ||
+ | |||
+ | | ||
+ | |||
+ | int a1 = z; | ||
+ | |||
+ | if(Math.abs(z) >= n) { | ||
+ | int ganzerAnteil = z / n; | ||
+ | a1 = z - ganzerAnteil * n; | ||
+ | if(a1 < 0) { | ||
+ | a1 = -a1; | ||
+ | } | ||
+ | | ||
+ | } | ||
+ | | ||
+ | println(a1 + "/" | ||
+ | | ||
+ | } | ||
+ | |||
+ | | ||
+ | | ||
+ | z = z * b2.z; | ||
+ | n = n * b2.n; | ||
+ | |||
+ | kürze(); | ||
+ | |||
+ | } | ||
+ | |||
+ | | ||
+ | | ||
+ | z = z * b2.n; | ||
+ | n = n * b2.z; | ||
+ | |||
+ | kürze(); | ||
+ | |||
+ | } | ||
+ | |||
+ | | ||
+ | |||
+ | // a/b + c/d = (a*d)/(b*d) + (c*b)/(d*b) = (a*d + c*b)/(b*d) | ||
+ | |||
+ | z =(z * b2.n + b2.z * n); | ||
+ | n = n * b2.n; | ||
+ | |||
+ | kürze(); | ||
+ | |||
+ | } | ||
+ | |||
+ | | ||
+ | |||
+ | // a/b - c/d = (a*d)/(b*d) - (c*b)/(d*b) = (a*d - c*b)/(b*d) | ||
+ | |||
+ | z =(z * b2.n - b2.z * n); | ||
+ | n = n * b2.n; | ||
+ | |||
+ | kürze(); | ||
+ | |||
+ | } | ||
+ | |||
+ | | ||
+ | | ||
+ | for(int i = 2; i <= Math.sqrt(Math.abs(z)); | ||
+ | |||
+ | if(z % i == 0 && n % i == 0) { | ||
+ | z = z / i; | ||
+ | n = n / i; | ||
+ | } | ||
+ | |||
+ | } | ||
+ | |||
+ | } | ||
+ | } | ||
+ | </ | ||
+ | </ | ||
+ | </ |
wiederholung/loesung/aufgabe1/start.1670571180.txt.gz · Zuletzt geändert: 2022/12/09 07:33 von Martin Pabst