Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.
Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung Nächste Überarbeitung | Vorherige Überarbeitung | ||
gf_informatik:computerarchitektur_sca:zusatzaufgaben [2023-08-27 19:13] – [Lösungen] sca | gf_informatik:computerarchitektur_sca:zusatzaufgaben [2023-09-28 19:47] (aktuell) – [Lösungen] sca | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
====== Zusatzaufgaben LMC ====== | ====== Zusatzaufgaben LMC ====== | ||
+ | Empfohlene **Vorgehensweise für alle Aufgaben**: | ||
- | ==== Multiplikation ==== | + | 1) Programmiere das Programm zuerst mit **Python**. Verwende dabei nur diejenigen Elemente, die in ähnlicher Form auch im Befehlssatz des LMC vorkommen, also: |
- | **Ziel:** Die Benutzerin soll nacheinander zwei Zahlen eingeben. Diese werden dann multipliziert. Das Resultat wird ausgegeben und gespeichert. | + | * Variablen mit ganzen Zahlen (z.B. $x = 42$) aber keine Listen |
+ | * Mathematische Operationen: $+$ & $-$ | ||
+ | * while-Schleife, | ||
- | 1) Programmiere | + | 2) Mache einen **Plan**: Wie kannst du das Programm mit dem LMC schreiben? Zum Beispiel: Welche Art von Schleife macht hier Sinn? |
+ | |||
+ | 3) Implementiere es mit dem **LMC**. | ||
+ | |||
+ | ==== Schnapps-Aufgabe ==== | ||
+ | |||
+ | **Ziel:** BenutzerIn gibt Alter ein. LMC bestimmt, was die Person trinken darf und gibt entsprechenden Output aus: | ||
+ | |||
+ | * " | ||
+ | * " | ||
+ | * " | ||
++++Lösung| | ++++Lösung| | ||
+ | < | ||
+ | INP | ||
+ | SUB SZN | ||
+ | BRP ALK | ||
+ | LDA H | ||
+ | OTC | ||
+ | HLT | ||
+ | ALK SUB TWO | ||
+ | BRP SCHN | ||
+ | LDA B | ||
+ | OTC | ||
+ | HLT | ||
+ | SCHN LDA S | ||
+ | OTC | ||
+ | HLT | ||
+ | SZN DAT 16 | ||
+ | TWO DAT 2 | ||
+ | H DAT 72 | ||
+ | B DAT 66 | ||
+ | S DAT 83 | ||
+ | </ | ||
+ | ++++ | ||
+ | |||
+ | ==== Multiplikation ==== | ||
+ | |||
+ | **Ziel:** Die Benutzerin soll nacheinander zwei Zahlen eingeben. Diese werden dann multipliziert. Das Resultat wird ausgegeben und gespeichert. | ||
+ | |||
+ | ++++Lösung Python-Code| | ||
<code python> | <code python> | ||
Zeile 24: | Zeile 65: | ||
++++ | ++++ | ||
- | 2) Mache einen Plan: Wie kannst du das Programm mit dem LMC schreiben? | + | ==== Fibonacci-Folge ==== |
- | 3) Implementiere es mit dem LMC. | + | **Ziel:** Der Benutzer soll eine Zahl $n$ als Input eingeben. Der Code gibt dann die ersten $n$ Zahlen der Fibonacci-Folge aus: $1,1,2,3, |
- | ==== Zusatzaufgabe: | ||
- | Gebe die Zahlen der Fibonacci-Folge aus: $1, | ||
+ | ==== Ganzzahldivision ==== | ||
- | ==== Zusatzaufgabe: Ganzzahldivision ==== | + | **Ziel:** Die Benutzerin soll nacheinander zwei Zahlen eingeben. Der Code ermittelt dann die Ganzzahldivision |
- | Implementiere die Ganzzahldivision. | ||
+ | ==== Lösungen ==== | ||
- | < | ||
+ | < | ||
++++Weitere Codeideen| | ++++Weitere Codeideen| | ||
Zeile 52: | Zeile 92: | ||
</ | </ | ||
- | |||
- | ==== Lösungen ==== | ||
<nodisp 2> | <nodisp 2> | ||
Zeile 81: | Zeile 119: | ||
</ | </ | ||
++++ | ++++ | ||
+ | |||
+ | ++++Lösung Fibonacci| | ||
+ | < | ||
+ | LOOP LDA N | ||
+ | BRZ END | ||
+ | SUB ONE | ||
+ | STO N | ||
+ | LDA X | ||
+ | ADD Y | ||
+ | OUT | ||
+ | STO TEMP | ||
+ | LDA Y | ||
+ | STO X | ||
+ | LDA TEMP | ||
+ | STO Y | ||
+ | BRA LOOP | ||
+ | END HLT | ||
+ | X DAT 1 | ||
+ | Y DAT 1 | ||
+ | TEMP DAT 0 | ||
+ | N DAT 8 | ||
+ | ONE DAT 1 | ||
+ | </ | ||
+ | ++++ | ||
+ | |||
+ | ++++Ganzzahldivision| | ||
+ | < | ||
+ | LOOP LDA X | ||
+ | SUB Y | ||
+ | STO X | ||
+ | BRP CONT | ||
+ | LDA Q | ||
+ | OUT | ||
+ | LDA X | ||
+ | ADD Y | ||
+ | OUT | ||
+ | HLT | ||
+ | CONT LDA Q | ||
+ | ADD ONE | ||
+ | STA Q | ||
+ | BRA LOOP | ||
+ | X DAT 25 | ||
+ | Y DAT 5 | ||
+ | Q DAT 0 | ||
+ | ONE DAT 1 | ||
+ | </ | ||
+ | ++++ | ||
+ | |||
+ | ++++Schnapps-Aufgabe| | ||
+ | < | ||
+ | // BenutzerIn gibt Alter ein | ||
+ | // LMC gibt aus: | ||
+ | // H für Himbeersirup | ||
+ | // B für Bier | ||
+ | // S/W für Schnapps/ Whisky | ||
+ | INP // Alter eingeben | ||
+ | SUB SIXTN | ||
+ | BRP ALK // Alter >= 16 -> springe zu Bier oder Schnapps | ||
+ | LDA H // Himbeersirup | ||
+ | OTC | ||
+ | HLT | ||
+ | ALK SUB TWO // Entscheide ob Bier oder Schnapps | ||
+ | BRP SCHN // springe zu Schnapps | ||
+ | LDA B // Bier | ||
+ | OTC | ||
+ | HLT | ||
+ | SCHN LDA S // Schnapps | ||
+ | OTC | ||
+ | HLT | ||
+ | B DAT 66 | ||
+ | H DAT 72 | ||
+ | S DAT 85 | ||
+ | SIXTN DAT 16 | ||
+ | TWO DAT 2 | ||
+ | </ | ||
</ | </ | ||
+ | ++++ | ||
+ |