====== Aufgabe: Einen Rechner für Brüche entwickeln ====== Das Programm soll eine Klasse "Bruch", die alles verwaltet, was ein Bruch alleine kann, und eine Klasse "Rechner", die die fünf Rechenverfahren verwaltet (+, -, *, /, Potenz) enthalten. Der Rechner soll **mit Brüchen** rechnen - wäre also in der Implementation der 2. Schritt, zuerst wäre die Klasse "Bruch" zu programmieren. Benötigt: eulidischer Algorithmus, Bruchrechenregeln ====== Erweiterung des Rechners ====== Wer die Aufgabe erfolgreich gelöst hat, kann sich an einem weiteren Rechner probieren: Einem Rechner für //komplexe Zahlen//. ===== Definition ===== Eine komplexe Zahl besteht aus einem reellen Teil a und einem imaginären Teil b, der imaginäre Teil wird durch ein "i" gekennzeichnet, also (a + ib). Dabei gilt: i2 = -1 ===== Rechenregeln ===== Das Rechnen mit komplexen Zahlen folgt den Regeln für das Rechnen mit Summen - vor allem muss also das Distributivgesetz angewendet werden. ==== Addition / Subtraktion ==== (a + ib) pm (c + id) = (a pm c) + i(b pm d) ==== Multiplikation ==== (a + ib) (c + id) = ac + i^2 bd + i(ad + bc) = (ac - bd) + i(ad + bc) ==== Division ==== Ziel der Division ist es, wieder eine Zahl in der Form (a + ib) zu erhalten. Das erreicht man, in dem man den Bruch mit der konjugiert komplexen Zahl (also derjenigen komplexen Zahl, deren Vorzeichen des imaginären Teils genau das Gegenteil ist) des Nenners erweitert. (a + ib) / (c + id) = {(a + ib)(c - id)}/{(c + id)(c - id)} = {(ac + bd) + i(bc-ad)}/{c^2 + d^2} = {ac + bd}/{c^2 + d^2} + i{bc - ad}/{c^2 + d^2} ==== Potenzieren ==== Wiederholtes Anwenden der Multiplikation ...