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
KKeine Bearbeitungszusammenfassung Markierung: Quelltext-Bearbeitung 2017 |
KKeine Bearbeitungszusammenfassung Markierung: Quelltext-Bearbeitung 2017 |
||
| (4 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
| Zeile 195: | Zeile 195: | ||
|3=Lösunge in Assembler verstecken}} | |3=Lösunge in Assembler verstecken}} | ||
====Schaffst du das auch ohne Hilfe?==== | |||
Hier kommen Aufgaben, zu denen es in diesem Lernpfad ganz bewusst keine Tipps und keine Lösungen gibt. Bist du so fit und schaffst es auch ohne Hilfe, diese KHC-Maschinenprogramme zu schreiben? Um dein Programm zu testen, verwende am besten den KHC-Emulator mit den 40 Speicherzellen in diesem Kapitel. | |||
{{Box | |||
|1=10. Aufgabe "x nach y kopieren" | |||
|2=Kopiere den Inhalt von Zelle x so nach Zelle y, dass nach dem Programmende sowohl in x als auch in y der ursprüngliche Wert von x steht. | |||
; Vor dem Programmstart steht | |||
: in Speicherzelle x ein beliebiger Wert, z.B. der Wert 4, und <br />in den Speicherzellen y der Wert 0. | |||
; Nach dem Programmende steht | |||
: in den Speicherzellen x und y der ursprüngliche Wert von x, also im Beispiel der Wert 4. | |||
|3=Üben}} | |||
{{Box | {{Box | ||
|1=10. Aufgabe "x | |1=11. Aufgabe "x verdoppeln" | ||
|2=Verdopple den Wert in Zelle x. | |||
; Vor dem Programmstart steht | |||
: in Speicherzelle x ein beliebiger Wert, z.B. der Wert 5. | |||
; Nach dem Programmende steht | |||
: in Speicherzellen x das Doppelte seines ursprünglichen Wertes, im Beispiel also der Wert 10. | |||
|3=Üben}} | |||
{{Box | |||
|1=12. Aufgabe "x halbieren mit Rest" | |||
|2=Berechne die Hälfte von x als ganze Zahl mit Rest. Beispiel: 7 / 2 = 3 Rest 1 | |2=Berechne die Hälfte von x als ganze Zahl mit Rest. Beispiel: 7 / 2 = 3 Rest 1 | ||
; Vor dem Programmstart steht | ; Vor dem Programmstart steht | ||
: in Speicherzelle | : in Speicherzelle x ein beliebiger Wert, z.B. der Wert 7, und <br />in den Speicherzellen y und z der Wert 0. | ||
; Nach dem Programmende steht | ; Nach dem Programmende steht | ||
: in Speicherzelle | : in Speicherzelle y die Hälfte des ursprünglichen x-Wertes, abgerundet auf eine ganze Zahl, im Beispiel also der Wert 3 und<br /> in Speicherzelle z der Divisionsrest, im Beispiel also der Wert 1, denn 7 / 2 = 3 Rest 1. | ||
|3=Üben}} | |3=Üben}} | ||
{{Box | |||
|1=13. Aufgabe "x geteilt durch y mit Rest" | |||
|2=Berechne den ganzzahligen Quotient von x geteilt durch y mit Rest, wobei der Versuch einer Division durch 0 abgefangen wird. Beispiel: 14 / 4 = 3 Rest 2 | |||
; Vor dem Programmstart steht | |||
: in Speicherzelle x ein beliebiger Wert, z.B. der Wert 14, <br /> in Speicherzelle y ein weiterer beliebiger Wert, z.B. der Wert 4 und <br /> in den Speicherzellen q, r und f der Wert 0. | |||
; Nach dem Programmende steht | |||
: in Speicherzelle q der ganzzahlige Quotient von x geteilt durch y, im Beispiel also der Wert 3, da die Zahl 4 dreimal vollständig in die 14 passt, und <br /> in Speicherzelle r der Divisionsrest, im Beispiel also der Wert 2. <br /> In Speicherzelle f steht normalerweise der Wert 0 außer in dem Fall, dass in y der Wert 0 stand, denn durch 0 darf bekanntlich nicht dividiert werden. In diesem Fehlerfall steht in f der Wert 1. | |||
|3=Üben}} | |||
</div> | </div> | ||
| Zeile 313: | Zeile 341: | ||
{{Box|1= | {{Box|1=Programm Testen im KHC-Emulator | ||
|2={{KnowHowComputer | |2={{KnowHowComputer | ||
|Speicherkonfiguration1=# Alles auf 0 | |Speicherkonfiguration1=# Alles auf 0 | ||
| Zeile 348: | Zeile 376: | ||
30: 0 | 30: 0 | ||
|nohelp=true | |nohelp=true | ||
|Speichergroesse= | |Speichergroesse=40 | ||
}} | }} | ||
|3=Experimentieren | |3=Experimentieren | ||
| Zeile 355: | Zeile 383: | ||
</div> | </div> | ||
</div> | </div> | ||
{{Fortsetzung| | {{Fortsetzung| | ||
vorher=zurück| | vorher=zurück| | ||
| Zeile 365: | Zeile 393: | ||
übersichtlink=Lernpfad_Know-How-Computer}} | übersichtlink=Lernpfad_Know-How-Computer}} | ||
[[Kategorie:Know-How-Computer]] | |||
[[Kategorie: | |||
Aktuelle Version vom 8. August 2025, 20:05 Uhr
Anspruchsvollere Programmieraufgaben für Könner
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 auf dem Papier testen. Anschließend kann man es in die KHC-Maschinensprache übersetzen, um es z.B. im KHC-Emulator laufen zu lassen.
