ram

Aus ProgrammingWiki

Wechseln zu: Navigation, Suche

Inhaltsverzeichnis

Kreativaufgabe RAM Programm

Aufgabenstellung

Geben Sie mind. ein RAM-Programm zur Berechnung der Funktion $w : \N \mapsto \N$ mit $w(n) = \left\lfloor \sqrt{n} \right\rfloor$ an.

RAM Programm 1

BNr Befehl Kommenter
0
R0 = 5 R0 = n
1
R3 = 1 Inkrement-/Dekrement-Variable
2
R4 = 0 Zurücksetzen des Multiplikatioszwischenergebnisses
3
IFZERO R2 GOTO 7 wenn Multiplikationszähler (R2) gleich 0, Multiplikation beendet
4
R4 += R1 Zwischenergebnis der Multiplikation
5
R2 -= R3 Multiplikationszähler dekrementieren
6
GOTO 3 nächster Multiplikationszyklus
7
R5 = R4 Quadrat der Testvariable in R5 zwischenspeichern
8
R6 = R0 n in R6 zwischenspeichern
9
IFZERO R6 GOTO 17 wenn R6 gleich 0, Quadrat der Testvariable >= n
10
IFZERO R5 GOTO 14 wenn R5 gleich 0, Quadrat der Testvariable <= n
11
R5 -= R3 temp-Quadrat dekrementieren
12
R6 -= R3 temp-n dekrementieren
13
GOTO 9 nächster Testzyklus
14
R1 += R3 Testvariable inkrementieren
15
R2 = R1 Multiplikationszähler gleich der Testvariable setzen
16
GOTO 2 nächster Zyklus mit inkrementierter Testvariable
17
IFZERO R5 GOTO 19 wenn Quadrat der Testvariable = n, dann kein Abrunden nötig
18
R1 -= R3 Ergebnis dekrementieren zwecks Abrunden
19
R0 = R1 Ergebnis nach R0 übernehmen
20
STOP Programmende

Programm Beispiel für RAM Programm 1

RAM Programm 2

BNr Befehl Kommenter
0
R0 = 5 R0 = n
1
R3 = 1 Inkrement-/Dekrement-Variable
2
IFZERO R2 GOTO 6 wenn Multiplikationszähler (R2) gleich 0, Multiplikation beendet
3
R4 += R1 Zwischenergebnis der Multiplikation
4
R2 -= R3 Multiplikationszähler dekrementieren
5
GOTO 2 nächster Multiplikationszyklus
6
R4 -= R0 Subtraktion zum Test ob das Quadrat der Testvariablen (R1) größer ist als n
7
IFZERO R4 GOTO 9 wenn Ergebnis der Subtraktion gleich 0 ist, Test mit inkrementierter Testvariable wiederholen
8
GOTO 12 Ergebnis der Subtraktion größer 0, Ergebnis gefunden
9
R1 += R3 Testvariable inkrementieren
10
R2 = R1 Multiplikationszähler gleich der Testvariable setzen
11
GOTO 2 nächster Testzyklus
12
R1 -= R3 Ergebnis dekrementieren zwecks Abrunden
13
R0 = R1 Ergebnis nach R0 übernehmen
14
STOP Programmende

Programm Beispiel für RAM Programm 2

Persönliche Werkzeuge