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 91<br />

5.5.2 Die Basis-Klasse “Integer”<br />

Bei Instanzen unterhalb der abstrakten Klasse “Integer” handelt es sich um ganze<br />

Zahlen. In Abhängigkeit vom jeweiligen Zahlenwert lassen sich die Klassen<br />

ˆ “SmallInteger”,<br />

ˆ “LargeNegativeInteger” und<br />

ˆ “LargePositiveInteger”<br />

unterscheiden.<br />

Während durch Instanzen der Klasse “LargePositiveInteger” (“LargeNegativeInteger”)<br />

beliebig große positive (negative) ganze Zahlen dargestellt werden, beschränken<br />

sich Instanzen der Klasse “SmallInteger” auf den Wertebereich zwischen “−2 15 + 1<br />

(-32767)” und “2 15 − 1 (32767)”.<br />

Hinweis: Beliebig große ganze Zahlen können wir z.B. durch den Einsatz der Message<br />

“factorial” in der Form<br />

100 factorial<br />

erzeugen. Wir erhalten als Ergebnis-Objekt die Fakultät der Zahl “100”. Dies ist eine ganze<br />

Zahl mit 158 Stellen. Die Fakultät einer ganzen Zahl “n > 0” wird durch die Multiplikation<br />

“n ∗ (n−1) ∗ (n−2) ... ∗ 2 ∗ 1” berechnet.<br />

Die größte ganze Zahl der Klasse “SmallInteger” kann durch die Anforderungen<br />

| ganzZahl |<br />

ganzZahl := 0.<br />

[ganzZahl class == SmallInteger]<br />

whileTrue: [ganzZahl := ganzZahl + 1].<br />

ganzZahl - 1<br />

ermittelt werden. Es resultiert der Wert “32767”.<br />

Hinweis: Durch den Einsatz von “class” wird diejenige Klasse bestimmt, aus der das<br />

Empfänger-Objekt dieser Message instanziiert ist. Anschließend wird durch “==” geprüft,<br />

ob die ermittelte Klasse mit der Klasse “SmallInteger” identisch ist (siehe auch die Abschnitte<br />

6.3.3 und 8.1).<br />

Für Instanzen der Klasse “Integer” lassen sich unter anderem die folgenden Methoden<br />

einsetzen:<br />

ˆ “asCharacter”:<br />

Als Ergebnis-Objekt resultiert ein Zeichen (Instanz der Klasse “Character”),<br />

dessen ASCII-Kode dem Empfänger-Objekt entspricht (siehe unten).<br />

ˆ “asFloat”:<br />

Die als Empfänger-Objekt der Message “asFloat” aufgeführte ganze Zahl wird<br />

in eine Fließkommazahl konvertiert (siehe unten).

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!