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 |
||
| Zeile 16: | Zeile 16: | ||
{{Lösung versteckt|Das Beispielprogramm „Von x auf 0“ kann als Grundlage für dieses Programm verwendet werden.|Tipp|Tipp verstecken}} | {{Lösung versteckt|Das Beispielprogramm „Von x auf 0“ kann als Grundlage für dieses Programm verwendet werden.|Tipp|Tipp verstecken}} | ||
Hier kannst du dir eine mögliche Lösung anzeigen lassen: | |||
{{Lösung versteckt|<pre>; Lösung zur 1. Aufgabe: „x + y = ?” | |||
1: isz 8; Ist der Inhalt von Speicherzelle M(8) gleich 0? | |||
2: jmp 4; Nein: weiter mit Befehl in Speicherzelle M(4) | |||
3: stp ; Ja: Fertig | |||
4: inc 7; Erhöhe Inhalt von Speicherzelle M(7) um 1 | |||
5: dec 8; Verringere Inhalt von Speicherzelle M(8) um 1 | |||
6: jmp 1; Zurück zu Befehl in Speicherzelle M(1) | |||
7: 5 ; Startwert in Speicherzelle M(7) ist der Wert x=5 | |||
8: 4 ; Startwert in Speicherzelle M(8) ist der Wert y=4 </pre>}} | |||
{{Box|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. | {{Box|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. | ||
| Zeile 31: | Zeile 43: | ||
: in Speicherzelle 13 der Wert 1, wenn der ursprüngliche Wert x eine ungerade Zahl war. <br> Wenn x gerade war, steht in Speicherzelle 13 weiterhin der Initialisierungswert 0. <br> Im Beispiel steht also am Ende in Speicherstelle 13 eine 1.|3=Üben}} | : in Speicherzelle 13 der Wert 1, wenn der ursprüngliche Wert x eine ungerade Zahl war. <br> Wenn x gerade war, steht in Speicherzelle 13 weiterhin der Initialisierungswert 0. <br> Im Beispiel steht also am Ende in Speicherstelle 13 eine 1.|3=Üben}} | ||
{{Lösung versteckt|1=Lösungsidee: Während x schrittweise bis auf 0 heruntergezählt wird, wird der Wert in y ebenso schrittweise zwischen 0 und 1 hin- und hergeschaltet.|2=Tipp|3=Tipp verstecken}} | {{Lösung versteckt|1=Lösungsidee: Während x schrittweise bis auf 0 heruntergezählt wird, wird der Wert in y ebenso schrittweise zwischen 0 und 1 hin- und hergeschaltet.|2=Tipp|3=Tipp verstecken}}<br> | ||
{{Lösung versteckt|<pre>; Lösung zur 3. Aufgabe: „Ist x ungerade?” | |||
1: isz 12 ; x=0? | |||
2: jmp 4 ; nein: weiter bei 4 | |||
3: stp ; ja: fertig | |||
4: dec 12 | |||
5: isz 13 ; y=0? | |||
6: jmp 10 ; nein: weiter bei 10 | |||
7: jmp 8 ; ja: weiter bei 8 | |||
8: inc 13 | |||
9: jmp 1 | |||
10: dec 13 | |||
11: jmp 1 | |||
12: 5 | |||
13: 0 </pre>}} | |||
{{Box|1=4. Aufgabe „Ist x = y ?”|2=Entscheide, ob die Werte x und y, die in zwei verschiedenen Speicherzellen stehen, gleich sind oder nicht. | {{Box|1=4. Aufgabe „Ist x = y ?”|2=Entscheide, ob die Werte x und y, die in zwei verschiedenen Speicherzellen stehen, gleich sind oder nicht. | ||
Version vom 20. Mai 2025, 15:02 Uhr
Programmieraufgaben Teil 1
In den bisherigen Kapiteln hast du alles erfahren, was du zum Programmieren des Know-How-Computers wissen musst. Hier kommen die ersten Programmieraufgaben für dich.
Für alle Übungsaufgaben gelten folgende Grundvoraussetzungen:
- Am Anfang ist der Hauptspeicher erst mal standardmäßig leer. Das heißt, dass jede Zelle den Wert 0 enthält, solange nicht etwas anderes hineingeschrieben wird.
- Nach dem Programmende darf der Datenwert, der dann in einer Speicherzelle steht, von dem ursprünglichen Wert abweichen, der vor der Programmausführung in der Zelle stand.
1. Aufgabe „x + y = ?”
Berechne die Summe zweier Zahlen x und y.
- Vor dem Programmstart steht
- in Speicherzelle 7 ein beliebiger Wert x, z.B. der Wert 5 und
in Speicherzelle 8 ein beliebiger Wert y, z.B. der Wert 4. - Nach dem Programmende steht
- in Speicherzelle 7 die Summe x + y, im Beispiel also der Wert 9.
- Erweiterung
- Sorge zusätzlich dafür, dass am Ende in Speicherstelle 8 wieder der ursprüngliche Wert y steht.
Das Beispielprogramm „Von x auf 0“ kann als Grundlage für dieses Programm verwendet werden.
Hier kannst du dir eine mögliche Lösung anzeigen lassen:
; Lösung zur 1. Aufgabe: „x + y = ?” 1: isz 8; Ist der Inhalt von Speicherzelle M(8) gleich 0? 2: jmp 4; Nein: weiter mit Befehl in Speicherzelle M(4) 3: stp ; Ja: Fertig 4: inc 7; Erhöhe Inhalt von Speicherzelle M(7) um 1 5: dec 8; Verringere Inhalt von Speicherzelle M(8) um 1 6: jmp 1; Zurück zu Befehl in Speicherzelle M(1) 7: 5 ; Startwert in Speicherzelle M(7) ist der Wert x=5 8: 4 ; Startwert in Speicherzelle M(8) ist der Wert y=4
2. Aufgabe „x - y = ? für x >= y”
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.
- Vor dem Programmstart steht
- in Speicherzelle 7 ein beliebiger Wert x, z.B. der Wert 5 und
in Speicherzelle 8 ein beliebiger Wert y, der aber nicht größer als x sein darf, hier z.B. der Wert 3. - Nach dem Programmende steht
- in Speicherzelle 7 die Differenz x - y, im Beispiel also der Wert 2.
Das Programm aus der 1. Aufgabe „x + y =?“ kann als Grundlage für dieses Programm verwendet werden.
3. Aufgabe „Ist x ungerade?”
Entscheide, ob der Wert x in Speicherzelle 12 gerade oder ungerade ist.
- Vor dem Programmstart steht
- in Speicherzelle 12 ein beliebiger Wert x, z.B. der Wert 3 und
in Speicherzelle 13 der Wert 0. - Nach dem Programmende steht
- in Speicherzelle 13 der Wert 1, wenn der ursprüngliche Wert x eine ungerade Zahl war.
Wenn x gerade war, steht in Speicherzelle 13 weiterhin der Initialisierungswert 0.
Im Beispiel steht also am Ende in Speicherstelle 13 eine 1.
Lösungsidee: Während x schrittweise bis auf 0 heruntergezählt wird, wird der Wert in y ebenso schrittweise zwischen 0 und 1 hin- und hergeschaltet.
; Lösung zur 3. Aufgabe: „Ist x ungerade?” 1: isz 12 ; x=0? 2: jmp 4 ; nein: weiter bei 4 3: stp ; ja: fertig 4: dec 12 5: isz 13 ; y=0? 6: jmp 10 ; nein: weiter bei 10 7: jmp 8 ; ja: weiter bei 8 8: inc 13 9: jmp 1 10: dec 13 11: jmp 1 12: 5 13: 0
4. Aufgabe „Ist x = y ?”
Entscheide, ob die Werte x und y, die in zwei verschiedenen Speicherzellen stehen, gleich sind oder nicht.
- 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 3. - Nach dem Programmende steht
- in Speicherzelle 23 der Wert 1, wenn die ursprünglichen Werte x und y gleich waren, andernfalls steht
in Speicherzelle 23 weiterhin der Initialisierungswert 0.
