Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.

Link zu der Vergleichsansicht

Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung
Nächste Überarbeitung
Vorherige Überarbeitung
gf_informatik:computerarchitektur_sca:aufgaben_d [2023-08-25 07:11] – [Aufgabe D1: It's the final countdown] scagf_informatik:computerarchitektur_sca:aufgaben_d [2023-09-25 07:24] (aktuell) – [Lösungen] sca
Zeile 88: Zeile 88:
  
 <code> <code>
-        LDA TEN+        LDA START // Lade Startwert in Akk.
 LOOP    OUT LOOP    OUT
         SUB ONE         SUB ONE
-        BRP LOOP+        BRP LOOP // Falls Akk. > 0, Countdown also noch nicht fertig springe nach oben (zu LOOP)
         HLT         HLT
 ONE     DAT 1 ONE     DAT 1
-TEN     DAT 10+START   DAT 10
 </code> </code>
  
Zeile 105: Zeile 105:
 <code> <code>
         LDA START         LDA START
-JMP     BRP LOOP +JMP     BRP LOOP // springe zum Codeblock des Loops 
-        BRA END+        BRA END // springe zum Ende, falls Loop fertig (Ziel erreicht) 
 +LOOP    OUT // Anfang Codeblock des Loops 
 +        SUB ONE 
 +        BRA JMP // Ende des Codeblocks, springe zur Überprüfung der Bedingung 
 +END     HLT // Beende Programm 
 +START   DAT 10 
 +ONE     DAT 1 
 +</code> 
 + 
 +Eine weitere Lösung: 
 +<code> 
 +        LDA START
 LOOP    OUT LOOP    OUT
 +        BRZ END
         SUB ONE         SUB ONE
-        BRA JMP+        BRA LOOP
 END     HLT END     HLT
 START   DAT 10 START   DAT 10
 ONE     DAT 1 ONE     DAT 1
 </code> </code>
- 
  
 ++++ ++++
Zeile 157: Zeile 168:
  
  
-==== Aufgabe D3: Multiplikation ====+==== Aufgabe D3: 3er-Reihe ====
  
-**Ziel:** Die Benutzerin soll nacheinander zwei Zahlen eingeben. Diese werden dann multipliziert. Das Resultat wird ausgegeben und gespeichert.+**Ziel:** Der Benutzer soll eine Zahl $n$ eingeben. Es werden dann die ersten $n$ Zahlen der 3-er Reihe ausgegeben: $3,6,9,\ldots$.
  
 1) Programmiere das Programm zuerst mit Python. Dabei dürfen nur die mathematischen Operationen $+$ und $-$ verwendet werden. 1) Programmiere das Programm zuerst mit Python. Dabei dürfen nur die mathematischen Operationen $+$ und $-$ verwendet werden.
Zeile 166: Zeile 177:
  
 <code python> <code python>
-= input() += input()
-b = input() +
-r = 0 # result +
- +
-while a > 0: +
-    r = r + b +
-    a = a - 1+
  
-print(r)+x = 3 
 +while n > 0: 
 +    print(x) 
 +    x = x + 3 
 +    n = n - 1
 </code> </code>
  
Zeile 182: Zeile 191:
  
 3) Implementiere es mit dem LMC. 3) Implementiere es mit dem LMC.
 +
  
  
 ===== Lösungen ===== ===== Lösungen =====
  
-<nodisp 2>+<nodisp 1>
 ++++Lösungen| ++++Lösungen|
  
Zeile 208: Zeile 218:
 </code> </code>
  
-== Multiplikation == +== 3er-Reihe ==
  
 <code> <code>
         INP         INP
-        STO A +        STO N 
-        INP +LOOP    LDA N 
-        STO B +        BRZ END // jump to end if N=0
-JUP     LDA A +
-        BRZ FINE+
         SUB ONE         SUB ONE
-        STA A +        STO N 
-        LDA +        LDA X
-        ADD B +
-        STA R +
-        BRA JUP +
-FINE    LDA R+
         OUT         OUT
-        HLT+        ADD STEP 
 +        STO X 
 +        BRA LOOP 
 +END     HLT 
 +N       DAT 0 
 +X       DAT 3 
 +STEP    DAT 3
 ONE     DAT 1 ONE     DAT 1
-A       DAT 0 
-B       DAT 0 
-R       DAT 0 
 </code> </code>
  
-<code python> 
-def linear_search(li,el): 
-    i = 0​ 
-    while i < len(li):​ 
-        if el == li[i]:​ 
-            return i​ 
-        i = i + 1​ 
-    return None​ 
- ​ 
-print(linear_search(['Adam','Berta','Christine','Dagobert'],'Berta'))​ 
-</code> 
  
 ++++ ++++
  
 </nodisp> </nodisp>
  • gf_informatik/computerarchitektur_sca/aufgaben_d.1692947498.txt.gz
  • Zuletzt geändert: 2023-08-25 07:11
  • von sca