03.11.2013 Aufrufe

SMALLTALK K1ex127-.45ex51275ahler/Bothner

SMALLTALK K1ex127-.45ex51275ahler/Bothner

SMALLTALK K1ex127-.45ex51275ahler/Bothner

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

5.5 Grundlegende Basis-Klassen für Zahlen und Zeichen 93<br />

Brüchen oder ganzen Zahlen besitzen, so resultiert als Ergebnis-Objekt wiederum<br />

ein Bruch, sofern sich das Ergebnis-Objekt nicht durch Kürzen zu einer ganzen Zahl<br />

vereinfachen läßt.<br />

Hinweis: Zum Beispiel resultiert als Ergebnis-Objekt einer Division in Form von “22/7”<br />

eine Instanz der Klasse “Fraction”. Anders ist dies bei “22.0/7”. Hier wird als Ergebnis-<br />

Objekt eine Instanz der Klasse “Float” in Form des Näherungswertes “3.14285714” erhalten.<br />

Dies liegt daran, daß zur Auswertung von “22.0/7” die binäre Message “/” der<br />

Klasse “Float” ausgeführt wird. Dabei wird die ganze Zahl “7” in die Fließkommazahl<br />

“7.0” konvertiert.<br />

Die Methode zur Addition zweier Brüche ist innerhalb der Klasse “Fraction” in der<br />

folgenden Form vereinbart:<br />

+ aNumber<br />

∧ ((numerator * aNumber denominator) +<br />

(denominator * aNumber numerator)) /<br />

(denominator * aNumber denominator)<br />

Hinweis: Bei der Ausführung dieser Methode liefert die unäre Message “numerator”<br />

(“denominator”) innerhalb der Anforderung “aNumber numerator” (“aNumber denominator”)<br />

den Zähler bzw. den Nenner des durch den Platzhalter “aNumber” gekennzeichneten<br />

Empfänger-Objektes.<br />

Das Empfänger-Objekt der binären Messages “∗” ergibt sich aus den Ergebnis-Objekten<br />

der primären Messages “numerator” und “denominator”. Aus der Zustellung dieser primären<br />

Messages resultieren die Werte, die den Instanz-Variablen “numerator” und “denominator”<br />

des Empfänger-Objektes von “+ aNumber” zugeordnet sind.<br />

Wird z.B. die Addition “3/8 + (3/8)” ausgeführt, so ergibt sich<br />

+ (3/8)<br />

∧ ((3 * (3/8) denominator) +<br />

(8 * (3/8) numerator)) /<br />

(8 * (3/8) denominator)<br />

und damit<br />

∧ ((3 * 8) +<br />

(8 * 3)) /<br />

(8 * 8)<br />

und folglich:<br />

∧ 48 /<br />

64<br />

Da es sich beim Empfänger-Objekt der zuletzt auszuführenden Anforderung “48/64”

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!