IIm18-Kreativaufgabe7

Aus ProgrammingWiki

Wiki-Quelltext dieser Seite.

=Random Access Maschine=

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: <tt>Paul Bachmann, Johannes Thies</tt> ==

{|| border="1" cellpadding="5" cellspacing="0"
!Befehlszähler
!Anweisung
!Bemerkung

|-
||<div align="right">0</div>||xxx|| xxx
|-
||<div align="right">1</div>||xxx|| xxx
|-
||<div align="right">2</div>||xxx|| xxx
|}

== RAM Programm zur ermittlung des größten gemeinsamen Teilers (ggt) - Euklidischer Algorithmus ==

{|| border="1" cellpadding="5" cellspacing="0"
!Befehlszähler
!Anweisung
!Bemerkung
|-
||<div align="right">0</div>||R0 = a|| belegen von R0 mit der ersten natürlichen Zahl a 
|-
||<div align="right">1</div>||R1 = b|| belegen von R1 mit der ersten natürlichen Zahl b 
|-
||<div align="right">2</div>||IFZERO R1 GOTO 12|| Sprung zu 12 da R0 das Ergebnis beinhaltet 
|-
||<div align="right">3</div>||IFZERO R0 GOTO 11|| Sprung zu 11 da R1 das Ergebnis beinhaltet 
|-
||<div align="right">4</div>||R2 = R0|| Zwischenspeichern von R0 in R2 für Größer vergleich
|-
||<div align="right">5</div>||R2 -= R1|| R1 von R2 subtrahieren für Größer vergleich
|-
||<div align="right">6</div>||IFZERO R2 GOTO 9|| wenn R2 0 ist, ist R1 > R0
|-
||<div align="right">7</div>||R0 -= R1|| R1 von R0 subtrahieren
|-
||<div align="right">8</div>||GOTO 2|| Sprung zum Schleifenanfang
|-
||<div align="right">9</div>||R1 -= R0|| R0 von R1 subtrahieren
|-
||<div align="right">10</div>||GOTO 2|| Sprung zum Schleifenanfang
|-
||<div align="right">11</div>||R0 = R1|| Ergebnis in R0 schreiben
|-
||<div align="right">12</div>||STOP||
|}