Scratch programmieren?

2 Antworten

Ich denke mal du wirst dir da selbst etwas schreiben müssen? Soweit ich das sehe gibt es keine vorgegebenen Binärblöcke.

An und für sich sollte das nicht allzu schwer sein. Zuerst müsstest du dir überlegen, wie du die Binärzahlen repräsentierst, da du keinen Binärtyp hast.

Am besten stellst du Binärzahlen wohl als Dezimalzahlen dar. Etwa folgendermaßen:

0_2 = 0_10 gespeichert als 0_10 (null)
1_2 = 1_10 gespeichert als 1_10 (eins)
10_2 = 2_10 gespeichert als 10_10 (zehn)
11_2 = 3_10 gespeichert als 11_10 (elf)

Für's erste beschränkst du dich auf positive Zahlen. negative Zahlen sind etwas komplizierter.

Für die Addition nimmst du immer zwei Ziffern, schaust ob diese 0 oder 1 sind und berechnest damit das Ergebnis für die Stelle und den Überlauf:

1001 + 0011:
100>1 + 001>1 + c (Überlauf) = 0; c=1
10>01 + 00>11 + >1 = 0; c=1
1>001 + 0>011 + >1 = 1; c=0;
>1001 + >0011 + >0 = 1; c=0;
Ergebnis: 1100;

Die Ziffer an der Stelle erhälst du mit der "Zeichen ... von ..."-Funktion. Die Länge mit der "Länge von ..."-Funktion.

Um das Ergebnis zusammenzusetzen addierst du für die niederwertigste Ziffer (also von hinten gezählt) 0/1, für die zweite 0/10, für die dritte 0/100, ...

Nein, Scratch verschicken ist auf dieser Plattform nicht so einfach möglich.

Was bei einer binären Addition passiert ist nicht so kompliziert. Von der letzten Stelle ausgehen, addierst Du jeweils die zwei stellen. Wenn beide 0 sind, ist das Resultat 0, wenn eins von beiden 1 ist, ist das Resultat 1, wenn beide 1 sind, dann gibt es einen Übertrag.

Ähnlich gehst Du dann bei der nächsten Stelle vor, beziehst aber den Übertrag mit ein.

Du hast die Möglichkeit, bis zu 3 einser (die zweitletzte Stelle beider Zahlen sowie eventuell den Übertrag). Hast also wieder eventuell einen Übertrag.

Etc. bis beide Zahlen verarbeitet sind.


Tim88592 
Beitragsersteller
 02.12.2024, 11:02

Könntest du bitte einfach einen Screenshot vom fertigen Scratch Programm schicken😊?

Destranix  05.12.2024, 16:55
@Tim88592

Ich habe das einmal implementiert für einen einfachen Fall. Ich habe es hier hochgeladen:

http://destra.uber.space/files/Scratch_binary_add.sb3

(Für Leser, die dies lesen, nachdem die Datei nicht mehr online ist, bitte anfragen, vielleicht habe ich de dann noch rumliegen.)

Scheint aber zu funktionieren, Voraussetzung gerade ist aber noch, dass die Zahlen gleich lang sind, man vorne also alles mit 0en auffüllt bis die Länge passt.

George114  05.12.2024, 18:44
@Destranix

Hey danke:) allerdings muss man 2 zahlen eingeben, wie kann man das denn dann machen? Also mit frage binärzahl: und dann soll der Nutzer die binärzahl eingeben die er ausgerechnet haben möchte.

Tim88592 
Beitragsersteller
 05.12.2024, 20:40
@Destranix

Hättest du eine Idee wie man das so machen kann?

Destranix  06.12.2024, 08:50
@Tim88592

Die Zahlen, die addiert werdne, sind a und b. Wenn man die per Eingabe erhalten möchte, muss man entsprechend eine Abfrage machen und das Ergebnis in den Variablen speichern.

Gegebenenfalls sollte vorher geprüft werden, ob die Eingabe eine valide Binärzahl ist.

Destranix  06.12.2024, 08:50
@George114

Siehe meinen Kommentar von gerade. (Muss dir extra einen Kommentar dafür schreiben, sonst bekommst du keine Nachricht, dass ein neuer Kommentar erschienen ist.)