ram
Aus ProgrammingWiki
< BuK | IIm14 | Studenten/s3tomack
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 |