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])