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.

4.2 Summation der Punktwerte 63<br />

Wandlung einer Zeichenkette<br />

Zur Umsetzung des Schleifenblockes, der in Abbildung 4.5 im Struktogramm enthalten<br />

ist, verwenden wir die Message “do:”. Um die im Empfänger-Objekt von<br />

“do:” gesammelten Werte zu summieren, könnte der Block<br />

[:einObjekt|summe := summe + einObjekt]<br />

als Argument der Message “do:” verwendet werden. Dabei ist zu beachten, daß die<br />

Block-Anforderung<br />

summe := summe + einObjekt<br />

allerdings nur dann sinnvoll ist, wenn der Block-Parameter “einObjekt” als Platzhalter<br />

für Zahlen dient.<br />

Da es sich jedoch bei den in “werteBag” gesammelten Objekten um Zeichenketten<br />

handelt, ist jede Zeichenkette – vor der Summation – in eine ihrem numerischen<br />

Wert entsprechend zugeordnete ganze Zahl zu wandeln.<br />

ˆ “asInteger”:<br />

Um Zeichenketten, die nur aus Ziffern-Zeichen bestehen, in eine ganze Zahl zu<br />

wandeln, steht die Basis-Methode “asInteger” zur Verfügung. Als Ergebnis-<br />

Objekt der unären Message “asInteger” ist diejenige Zahl festgelegt, die aus<br />

dieser Wandlung resultiert.<br />

Um die von uns gewünschte Summation durchführen zu lassen, ist daher der Block<br />

[:einObjekt|summe := summe + einObjekt asInteger]<br />

einzusetzen.<br />

Prioritäten bei verschachtelten Messages<br />

Die korrekte Bearbeitung der Block-Anforderung<br />

summe := summe + einObjekt asInteger<br />

ist aus folgendem Grund gesichert:<br />

ˆ Sofern binäre und unäre Messages verschachtelt sind, wird eine Ausführung<br />

von “links nach rechts” vorgenommen, wobei unäre Messages innerhalb der<br />

Auswertungsreihenfolge eine höhere Priorität als binäre Messages besitzen.<br />

Im Hinblick auf die Priorität, nach der verschachtelte unäre Messages ausgeführt<br />

werden, haben wir im Abschnitt 4.1 die folgende Regel kennengelernt:<br />

ˆ Mehrere aufeinanderfolgende unäre Messages werden stets von “links nach<br />

rechts” bearbeitet.

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!