Nachricht für neue Nutzer.
Nachricht für engagierte Nutzer.

Lernpfad Know-How-Computer/KHC Programmieraufgaben Teil 2: Unterschied zwischen den Versionen

Aus ZUM-Unterrichten
(Die Seite wurde neu angelegt: „__NOTOC__ {{Box|Programmieraufgaben Teil 2|Hier kommen ein paar weitere Programmieraufgaben, die schon etwas anspruchsvoller sind. Entsprechend länger und unübersichtlicher sind die Maschinenprogramme. Daher macht es Sinn, erst ein Assemblerprogramm zu schreiben. Auch dieses kann man mit Stift und Streichhölzern erst mal „von Hand” testen. Anschließend kann man es in die KHC-Maschinensprache übersetzen, um es z.B. im KHC-Emulator laufen zu lassen…“)
Markierung: Quelltext-Bearbeitung 2017
 
KKeine Bearbeitungszusammenfassung
Markierung: Quelltext-Bearbeitung 2017
Zeile 1: Zeile 1:
__NOTOC__
__NOTOC__
{{Box|Programmieraufgaben Teil 2|Hier kommen ein paar weitere Programmieraufgaben, die schon etwas anspruchsvoller sind. Entsprechend länger und unübersichtlicher sind die Maschinenprogramme. Daher macht es Sinn, erst ein Assemblerprogramm zu schreiben. Auch dieses kann man mit Stift und Streichhölzern erst mal „von Hand” testen. Anschließend kann man es in die KHC-Maschinensprache übersetzen, um es z.B. im KHC-Emulator laufen zu lassen.|Lernpfad}  
{{Box|Programmieraufgaben Teil 2|Hier kommen ein paar weitere Programmieraufgaben, die schon etwas anspruchsvoller sind. Entsprechend länger und unübersichtlicher sind die Maschinenprogramme. Daher macht es Sinn, erst ein Assemblerprogramm zu schreiben. Auch dieses kann man mit Stift und Streichhölzern erst mal „von Hand” testen. Anschließend kann man es in die KHC-Maschinensprache übersetzen, um es z.B. im KHC-Emulator laufen zu lassen.|Lernpfad}}  





Version vom 26. Mai 2025, 12:09 Uhr

Programmieraufgaben Teil 2
Hier kommen ein paar weitere Programmieraufgaben, die schon etwas anspruchsvoller sind. Entsprechend länger und unübersichtlicher sind die Maschinenprogramme. Daher macht es Sinn, erst ein Assemblerprogramm zu schreiben. Auch dieses kann man mit Stift und Streichhölzern erst mal „von Hand” testen. Anschließend kann man es in die KHC-Maschinensprache übersetzen, um es z.B. im KHC-Emulator laufen zu lassen.


5. Aufgabe „Ist x < y ?”

Entscheide, ob der Wert der Variablen x kleiner ist als der Wert der Variablen y.

Vor dem Programmstart steht
in Speicherzelle 21 ein beliebiger Wert x, z.B. der Wert 5, und
in Speicherzelle 22 ein beliebiger Wert y, z.B. der Wert 7.
Nach dem Programmende steht
in Speicherzelle 23 der Wert 1, wenn der ursprüngliche Wert von x kleiner als der ursprüngliche Wert von y war,
andernfalls steht in Speicherzelle 23 weiterhin der Initialisierungswert 0.
Hier kann man sich am Grundaufbau des Programms aus der 4. Aufgabe „Ist x = y ?” und an den entsprechenden Tipps orientieren.

6. Aufgabe „x - y = ? (Betrag und Vorzeichen der Differenz für beliebige x und y)”

Berechne die Differenz zweier beliebiger natürlicher Zahlen x und y. Im Gegensatz zu Aufgabe 2 wird jetzt nicht mehr vorausgesetzt, dass y nicht größer als x sein darf. Das bedeutet, dass das Ergebnis nun auch negativ sein kann. Da im KHC negative Zahlen als Grunddatentypen nicht zugelassen sind, wird das Ergebnis in zwei Speicherzellen ausgegeben: die eine enthält den Betrag der Differenz und die andere das Vorzeichen des Ergebnisses, wobei der Wert 1 für ein negatives Ergebnis steht, der Wert 0 für ein nicht-negatives Ergebnis.

Vor dem Programmstart steht
in Speicherzelle 23 ein beliebiger Wert x, z.B. der Wert 3, und
in Speicherzelle 24 ein beliebiger Wert y, z.B. der Wert 5.
Nach dem Programmende steht
in Speicherzelle 23 der Betrag der Differenz x - y, im Beispiel also der Wert 2,
in Speicherzelle 24 der Wert 1, wenn das Ergebnis negativ ist und der Wert 0, wenn dies nicht der Fall ist.
Da im vorliegenden Beispiel das Ergebnis 3 - 5 = -2, also negativ ist, steht in diesem Fall
in Speicherzelle 23 der Betrag 2 und
in Speicherzelle 23 der Wert 1 für das negative Vorzeichen
Auch hier ist es sinnvoll, wie in den Programmen „Ist x = y ?” und „Ist x < y ?” eine entsprechende Fallunterscheidung durchzuführen.