ramwurzel
Aus ProgrammingWiki
< BuK | IIm11 | Studenten/sijeheid
Nr | Methode | Bemerkung |
---|---|---|
0 | R0 = 3 | R0 = n (Berechnung Wurzel von 3) |
1 | R2 = 1 | R2 = fixer Wert für Inkrement/Dekrement |
2 | R1 += R2 | R1 = aktuelle Testvariable |
3 | R3 = R1 | R3 = dekrementierter Wert bei Multiplikation |
4 | R4 = 0 | R4 = Summe bei Multiplikation |
5 | IFZERO R3 GOTO 9 | Quadratzahl des aktuellen Testwerts gebildet? |
6 | R4 += R1 | Aufsummierung für Multiplikation |
7 | R3 -= R2 | Dekrementierung des Multiplikation-Zählers |
8 | GOTO 5 | |
9 | R5 = R0 | Begin des Tests, ob gebildete Quadratzahl größer als n |
10 | IFZERO R5 GOTO 15 | Wenn n kleiner gleich gebildete Quadratzahl |
11 | IFZERO R4 GOTO 2 | gebildete Quadratzahl noch nicht groß genug. Mit nächsten Testkandidaten fortfahren |
12 | R4 -= R2 | gebildete Quadratzahl dekrementieren |
13 | R5 -= R2 | n dekrementieren |
14 | GOTO 10 | |
15 | IFZERO R4 GOTO 17 | Ist gebildete Quadratzahl = n, dann Ergebnis direkt erreicht. |
16 | R1 -= R2 | Ansonsten muss gebildete Quadratzahl "abgerundet" werden |
17 | R0 = R1 | Ergebnis in Rückgaberegister schreiben. |
Test mit 4:
Test mit 5: