Nachricht für neue Nutzer.
Nachricht für engagierte Nutzer.
Lernpfad Know-How-Computer/KHC Programmieraufgaben Teil 1: Unterschied zwischen den Versionen
Aus ZUM-Unterrichten
KKeine Bearbeitungszusammenfassung Markierung: Quelltext-Bearbeitung 2017 |
KKeine Bearbeitungszusammenfassung Markierung: Quelltext-Bearbeitung 2017 |
||
| (13 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
| Zeile 2: | Zeile 2: | ||
{{Fortsetzung| | {{Fortsetzung| | ||
vorher=zurück| | vorher=zurück| | ||
vorherlink= | vorherlink=Lernpfad_Know-How-Computer/KHC-Maschinensprache_-_erste_Schritte_Teil_2 | | ||
weiter=weiter| | weiter=weiter| | ||
weiterlink= | weiterlink=Lernpfad_Know-How-Computer/Know-How-Assembler| | ||
übersicht=Startseite|übersichtlink= | übersicht=Startseite|übersichtlink=Lernpfad_Know-How-Computer}} | ||
{{Box| | {{Box|Einfache Übungsaufgaben für Programmiereinsteiger|In den bisherigen Kapiteln hast du alles erfahren, was du zum Programmieren des Know-How-Computers wissen musst. Jetzt kannst du loslegen und deine eigenen Programme schreiben! Hier kommen ein paar Programmieraufgaben für dich. Die ersten sind quasi zum Warmwerden noch ziemlich einfach, im zweiten Teil kommen aber auch einige deutlich anspruchsvollere Aufgaben. | ||
Beim Lösen der Aufgaben | Beim Lösen der Aufgaben kannst du auf verschiedene Arten vorgehen: | ||
* | * Eine Möglichkeit besteht natürlich darin, das Programm im KHC-Papiermodell zu schreiben und zu testen. | ||
* Du | * Du kannst deinen Programmcode auch direkt in das Hauptspeicher-Textfeld des KHC-Emulators tippen. Dabei ist es wichtig, in jeder Zeile die Reihenfolge Adresse, Doppelpunkt, KHC-Befehl einzuhalten. Die Eingabe beendest du mit dem Schalter "Neustart" (Funktionstaste F8). | ||
* Statt deinen Programmcode gleich direkt in das Hauptspeicher-Textfeld einzutippen, kannst du ihn auch erst in einem Texteditor | * Statt deinen Programmcode gleich direkt in das Hauptspeicher-Textfeld einzutippen, kannst du ihn auch erst in einem Texteditor schreiben und anschließend durch "Kopieren und Einfügen" (Drag and Drop) in das Hauptspeicher-Textfeld kopieren. | ||
* Wenn du | * Wenn du dein Programm in einer Textdatei speichern möchtest, geht das natürlich in der umgekehrten Richtung ebenfalls mit Kopieren und Einfügen. | ||
* | * Die meisten Lösungen kannst du über die entsprechenden Schalter unter dem Hauptspeicher-Textfeld als Speicherkonfiguration laden. Aber vielleicht kommst du vorher ja auch selbstständig auf eine eigene Lösung? | ||
|Lernpfad}} | |Lernpfad}} | ||
<div style="width: 100%; overflow: hidden;"> | <div style="width: 100%; overflow: hidden;"> | ||
{{Box | {{Box | ||
| Zeile 77: | Zeile 25: | ||
|3=Kurzinfo}} | |3=Kurzinfo}} | ||
<div style="width: 60%; float: left;"> | |||
{{Box | {{Box | ||
|1=1. Aufgabe | |1=1. Aufgabe "x + y = ?" | ||
|2=Berechne die Summe zweier Zahlen x und y. | |2=Berechne die Summe zweier Zahlen x und y. | ||
; Vor dem Programmstart steht | ; Vor dem Programmstart steht | ||
| Zeile 87: | Zeile 36: | ||
|3=Üben}} | |3=Üben}} | ||
{{Lösung versteckt|Das Beispielprogramm | {{Lösung versteckt|Das Beispielprogramm "Von x auf 0" kann als Grundlage für dieses Programm verwendet werden.|Tipp 1 anzeigen|Tipp 1 verstecken}} | ||
{{Lösung versteckt|1=Pseudocode für das Programm | {{Lösung versteckt|1=Pseudocode für das Programm "x + y = ?": | ||
<pre> | <pre> | ||
solange nicht y = 0 wiederhole | solange nicht y = 0 wiederhole | ||
| Zeile 100: | Zeile 49: | ||
{{Box | {{Box | ||
|1=2. Aufgabe | |1=2. Aufgabe "x - y = ? für x >= y" | ||
|2=Berechne die Differenz zweier Zahlen x und y, wobei vorausgesetzt wird, dass y nicht größer als x ist, das Ergebnis also nicht negativ werden kann. | |2=Berechne die Differenz zweier Zahlen x und y, wobei vorausgesetzt wird, dass y nicht größer als x ist, das Ergebnis also nicht negativ werden kann. (Eine Subtraktionsaufgabe, bei der das Ergebnis auch negativ werden darf, findest du im Kapitel [[Lernpfad_Know-How-Computer/KHC_Programmieraufgaben_Teil_2|Lernpfad Know-How-Computer/KHC Programmieraufgaben Teil 2]] in der 6. Aufgabe.) | ||
; Vor dem Programmstart steht | ; Vor dem Programmstart steht | ||
: in Speicherzelle 7 ein beliebiger Wert x, z.B. der Wert 5 und <br> in Speicherzelle 8 ein beliebiger Wert y, der aber nicht größer als x sein darf, hier z.B. der Wert 3. | : in Speicherzelle 7 ein beliebiger Wert x, z.B. der Wert 5 und <br> in Speicherzelle 8 ein beliebiger Wert y, der aber nicht größer als x sein darf, hier z.B. der Wert 3. | ||
| Zeile 108: | Zeile 57: | ||
|3=Üben}} | |3=Üben}} | ||
{{Lösung versteckt|1=Das Programm aus der 1. Aufgabe | {{Lösung versteckt|1=Das Programm aus der 1. Aufgabe "x + y =?" kann als Grundlage für dieses Programm verwendet werden.|2=Tipp anzeigen|3=Tipp verstecken}} | ||
{{Box | {{Box | ||
|1=3. Aufgabe | |1=3. Aufgabe "Ist x ungerade?" | ||
|2=Entscheide, ob der Wert x in Speicherzelle 12 gerade oder ungerade ist. | |2=Entscheide, ob der Wert x in Speicherzelle 12 gerade oder ungerade ist. | ||
; Vor dem Programmstart steht | ; Vor dem Programmstart steht | ||
| Zeile 123: | Zeile 72: | ||
|2=Tipp 1 anzeigen|3=Tipp 1 verstecken}} | |2=Tipp 1 anzeigen|3=Tipp 1 verstecken}} | ||
{{Lösung versteckt|1=Pseudocode für das Programm | {{Lösung versteckt|1=Pseudocode für das Programm "Ist x ungerade?": | ||
<pre> | <pre> | ||
solange nicht x = 0 wiederhole | solange nicht x = 0 wiederhole | ||
| Zeile 137: | Zeile 86: | ||
{{Box | {{Box | ||
|1=4. Aufgabe | |1=4. Aufgabe "Ist x = y ?" | ||
|2=Entscheide, ob die Werte x und y, die in zwei verschiedenen Speicherzellen stehen, gleich sind oder nicht. | |2=Entscheide, ob die Werte x und y, die in zwei verschiedenen Speicherzellen stehen, gleich sind oder nicht. | ||
; Vor dem Programmstart steht | ; Vor dem Programmstart steht | ||
| Zeile 156: | Zeile 105: | ||
{{Lösung versteckt|1=[[Datei:KHC PAP 4. Aufgabe x gleich y Arial24.png|center|500px|Programmablaufplan zur 4. Aufgabe]] | {{Lösung versteckt|1=[[Datei:KHC PAP 4. Aufgabe x gleich y Arial24.png|center|500px|Programmablaufplan zur 4. Aufgabe]] | ||
{{Box|1=<i class="fa fa-universal-access fa-2x" aria-hidden="true"></i> Hinweis | |||
|2=Diese Grafik gibt es im [[Lernpfad_Know-How-Computer/Anhang|Anhang]] auch als taktile Schwellpapier-Kopiervorlage mit Braillebeschriftung. | |||
{{ | |3=}} | ||
< | |2=PAP anzeigen | ||
|3=PAP verstecken}} | |||
</div> | |||
|2= | |||
<div style="margin-left: 62%;"> | |||
{{Box|1=Programm testen im KHC-Emulator | |||
|2={{KnowHowComputer | |||
|Speicherkonfiguration1=# Alles auf 0 | |||
|Speicherkonfiguration2=# x + y = ? | |||
1: isz 8 | |||
2: jmp 4 | |||
3: stp | |||
4: inc 7 | |||
5: dec 8 | |||
6: jmp 1 | |||
7: 5 | |||
8: 4 | |||
|Speicherkonfiguration3=# x - y = ? | |||
1: isz 8 | |||
2: jmp 4 | |||
3: stp | |||
4: dec 7 | |||
5: dec 8 | |||
6: jmp 1 | |||
7: 5 | |||
8: 3 | |||
|Speicherkonfiguration4=# Ist x ungerade? | |||
1: isz 12 | |||
2: jmp 4 | |||
3: stp | |||
4: dec 12 | |||
5: isz 13 | |||
6: jmp 8 | |||
7: jmp 10 | |||
8: dec 13 | |||
9: jmp 1 | |||
10: inc 13 | |||
11: jmp 1 | |||
12: 5 | |||
13: 0 | |||
|Speicherkonfiguration5=# Ist x = y? | |||
1: isz 21 | |||
2: jmp 4 | |||
3: jmp 7 | |||
4: isz 22 | |||
5: jmp 10 | |||
6: jmp 14 | |||
7: isz 22 | |||
8: jmp 14 | |||
9: jmp 13 | |||
10: dec 21 | |||
11: dec 22 | |||
12: jmp 1 | |||
13: inc 23 | |||
14: stp | |||
21: 5 | |||
22: 3 | |||
23: 0 | |||
|nohelp=true | |||
|Speichergroesse=23 | |||
}} | |||
|3=Experimentieren | |||
}} | |||
</div> | </div> | ||
</div> | </div> | ||
{{Fortsetzung| | {{Fortsetzung| | ||
vorher=zurück| | vorher=zurück| | ||
vorherlink= | vorherlink=Lernpfad_Know-How-Computer/KHC-Maschinensprache_-_erste_Schritte_Teil_2 | | ||
weiter=weiter| | weiter=weiter| | ||
weiterlink= | weiterlink=Lernpfad_Know-How-Computer/Know-How-Assembler| | ||
übersicht=Startseite|übersichtlink= | übersicht=Startseite|übersichtlink=Lernpfad_Know-How-Computer}} | ||
[[Kategorie:Know-How-Computer]] | |||
Aktuelle Version vom 30. Juli 2025, 19:23 Uhr
Einfache Übungsaufgaben für Programmiereinsteiger
In den bisherigen Kapiteln hast du alles erfahren, was du zum Programmieren des Know-How-Computers wissen musst. Jetzt kannst du loslegen und deine eigenen Programme schreiben! Hier kommen ein paar Programmieraufgaben für dich. Die ersten sind quasi zum Warmwerden noch ziemlich einfach, im zweiten Teil kommen aber auch einige deutlich anspruchsvollere Aufgaben.
Beim Lösen der Aufgaben kannst du auf verschiedene Arten vorgehen:
- Eine Möglichkeit besteht natürlich darin, das Programm im KHC-Papiermodell zu schreiben und zu testen.
- Du kannst deinen Programmcode auch direkt in das Hauptspeicher-Textfeld des KHC-Emulators tippen. Dabei ist es wichtig, in jeder Zeile die Reihenfolge Adresse, Doppelpunkt, KHC-Befehl einzuhalten. Die Eingabe beendest du mit dem Schalter "Neustart" (Funktionstaste F8).
- Statt deinen Programmcode gleich direkt in das Hauptspeicher-Textfeld einzutippen, kannst du ihn auch erst in einem Texteditor schreiben und anschließend durch "Kopieren und Einfügen" (Drag and Drop) in das Hauptspeicher-Textfeld kopieren.
- Wenn du dein Programm in einer Textdatei speichern möchtest, geht das natürlich in der umgekehrten Richtung ebenfalls mit Kopieren und Einfügen.
- Die meisten Lösungen kannst du über die entsprechenden Schalter unter dem Hauptspeicher-Textfeld als Speicherkonfiguration laden. Aber vielleicht kommst du vorher ja auch selbstständig auf eine eigene Lösung?
