BuK/IIm11/Studenten/sijeheid/ramwurzel

Aus ProgrammingWiki

Wiki-Quelltext dieser Seite.

{|| border="1" cellpadding="5" cellspacing="0"
!Nr
!Methode
!Bemerkung

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