Aus Das deutschsprachige Scratch-Wiki

Alles, was in einem Computer gespeichert oder am Bildschirm dargestellt ist, ist in Binärcode repräsentiert. Der Binärcode besteht aus Folgen von Nullen und Einsen, die man als Dezimalzahlen oder als Buchstaben interpretieren kann. Der Code "1010001" bedeutet 81 und auch "Q". In vielen Programmiersprachen gibt es dehalb eine Funktion, die den Zahlenwert der internen Repräsentation des Buchstaben zurückgibt. In Python heißt diese Funktion ORD. ORD(Q) = 81. In Java konvertiert man einfach das Zeichen: (int) 'Q'; ergibt 81.

Eine solche Funktion existiert in Scratch nicht. Benötigt man dies, muss man es programmieren.

Lösung mit Liste

Legt man eine Liste namens "Alphabet" mit 26 Elementen von "A" bis "Z" an, lässt sich ein Zeichen mit folgendem Wertblock in den oben beschriebenen Code umwandeln:

((64) + ((Nummer von (Zeichen) in [Alphabet v])))

Lösung ohne Liste

In Scratch gibt es diesen Block:

<[Apfel] enthält [a] ?>

Aber leider gibt es keinen, der die Position des Buchstabens retourniert:

(Position von [a] in [Apfel]::operators)

Deshalb:

Definiere Ermittle Position von (Zeichen) in (Wort)
setze [position v] auf (Länge von (Wort))
wiederhole bis <<(position) < [1]> oder <(Zeichen(position) von (Wort)) = (Zeichen)>>
ändere [position v] um (-1)
ende

Und damit:

Definiere ORD (Zeichen)
Ermittle Position von (Zeichen) in [ABCDEFGHIJKLMNOPQRSTUVWXYZ]
setze [ord v] auf ((64) + (position))

Der Weg zurück ist vergleichsweise einfach. Diese Funktion heißt meist CHR. CHR(81) = Q.

Definiere CHR (Code)
setze [chr v] auf (Zeichen ((Code) - (64)) von [ABCDEFGHIJKLMNOPQRSTUVWXYZ])
Cookies helfen uns bei der Bereitstellung von Das deutschsprachige Scratch-Wiki. Durch die Nutzung von Das deutschsprachige Scratch-Wiki erklärst du dich damit einverstanden, dass wir Cookies speichern.