IIm18-Kreativaufgabe7
Aus ProgrammingWiki
Archivierte Version vom 2019-06-16T13:39:05+00:00. Aktuelle Version
Inhaltsverzeichnis |
Random Access Maschine - Paul Bachmann, Johannes Thies
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
| Befehlszähler | Anweisung | Bemerkung |
|---|---|---|
| | 0 | xxx | xxx |
| | 1 | xxx | xxx |
| | 2 | xxx | xxx |
RAM Programm zur ermittlung des größten gemeinsamen Teilers (ggt) - Euklidischer Algorithmus
| Befehlszähler | Anweisung | Bemerkung |
|---|---|---|
| | 0 | R0 = a | belegen von R0 mit der ersten natürlichen Zahl a |
| | 1 | R1 = b | belegen von R1 mit der ersten natürlichen Zahl b |
| | 2 | IFZERO R1 GOTO 12 | Sprung zu 12 da R0 das Ergebnis beinhaltet |
| | 3 | IFZERO R0 GOTO 11 | Sprung zu 11 da R1 das Ergebnis beinhaltet |
| | 4 | R2 = R0 | Zwischenspeichern von R0 in R2 für Größer vergleich |
| | 5 | R2 -= R1 | R1 von R2 subtrahieren für Größer vergleich |
| | 6 | IFZERO R2 GOTO 9 | wenn R2 0 ist, ist R1 > R0 |
| | 7 | R0 -= R1 | R1 von R0 subtrahieren |
| | 8 | GOTO 2 | Sprung zum Schleifenanfang |
| | 9 | R1 -= R0 | R0 von R1 subtrahieren |
| | 10 | GOTO 2 | Sprung zum Schleifenanfang |
| | 11 | R0 = R1 | Ergebnis in R0 schreiben |
| | 12 | STOP |
Beispiel mit a = 2 und b = 4
| Anweisung | R0 | R1 | R1 |
|---|---|---|---|
| |R0 = a | 2 | 0 | 0 |
| |R1 = b | 2 | 4 | 0 |
| |IFZERO R1 GOTO 12 | 2 | 4 | 0 |
| |IFZERO R0 GOTO 11 | 2 | 4 | 0 |
| |R2 = R0 | 2 | 4 | 2 |
| |R2 -= R1 | 2 | 4 | 0 |
| |IFZERO R2 GOTO 11 | 2 | 4 | 0 |
| |R1 -= R0 | 2 | 2 | 0 |
| |GOTO 2 | 2 | 2 | 0 |
| |IFZERO R1 GOTO 12 | 2 | 2 | 0 |
| |IFZERO R0 GOTO 11 | 2 | 2 | 0 |
| |R2 = R0 | 2 | 2 | 2 |
| |R2 -= R1 | 2 | 2 | 0 |
| |IFZERO R2 GOTO 11 | 2 | 2 | 0 |
| |R1 -= R0 | 2 | 0 | 0 |
| |GOTO 2 | 2 | 0 | 0 |
| |IFZERO R1 GOTO 12 | 2 | 0 | 0 |
Beispiel mit a = 2 und b = 15
| Anweisung | R0 | R1 | R1 |
|---|---|---|---|
| |R0 = a | 2 | 0 | 0 |
| |R1 = b | 2 | 15 | 0 |
| |IFZERO R1 GOTO 12 | 2 | 15 | 0 |
| |IFZERO R0 GOTO 11 | 2 | 15 | 0 |
| |R2 = R0 | 2 | 15 | 2 |
| |R2 -= R1 | 2 | 15 | 0 |
| |IFZERO R2 GOTO 11 | 2 | 15 | 0 |
| |R1 -= R0 | 2 | 13 | 0 |
| |GOTO 2 | 2 | 13 | 0 |
| |IFZERO R1 GOTO 12 | 2 | 13 | 0 |
| |IFZERO R0 GOTO 11 | 2 | 13 | 0 |
| |R2 = R0 | 2 | 13 | 2 |
| |R2 -= R1 | 2 | 13 | 0 |
| |IFZERO R2 GOTO 11 | 2 | 13 | 0 |
| |R1 -= R0 | 2 | 11 | 0 |
| |GOTO 2 | 2 | 11 | 0 |
| |IFZERO R1 GOTO 12 | 2 | 11 | 0 |
| |IFZERO R0 GOTO 11 | 2 | 11 | 0 |
| |R2 = R0 | 2 | 11 | 2 |
| |R2 -= R1 | 2 | 11 | 0 |
| |IFZERO R2 GOTO 11 | 2 | 11 | 0 |
| |R1 -= R0 | 2 | 9 | 0 |
| |GOTO 2 | 2 | 9 | 0 |
| |IFZERO R1 GOTO 12 | 2 | 9 | 0 |
| |IFZERO R0 GOTO 11 | 2 | 9 | 0 |
| |R2 = R0 | 2 | 9 | 2 |
| |R2 -= R1 | 2 | 9 | 0 |
| |IFZERO R2 GOTO 11 | 2 | 9 | 0 |
| |R1 -= R0 | 2 | 7 | 0 |
| |GOTO 2 | 2 | 7 | 0 |
| |IFZERO R1 GOTO 12 | 2 | 7 | 0 |
| |IFZERO R0 GOTO 11 | 2 | 7 | 0 |
| |R2 = R0 | 2 | 7 | 2 |
| |R2 -= R1 | 2 | 7 | 0 |
| |IFZERO R2 GOTO 11 | 2 | 7 | 0 |
| |R1 -= R0 | 2 | 5 | 0 |
| |GOTO 2 | 2 | 5 | 0 |
| |IFZERO R1 GOTO 12 | 2 | 5 | 0 |
| |IFZERO R0 GOTO 11 | 2 | 5 | 0 |
| |R2 = R0 | 2 | 5 | 2 |
| |R2 -= R1 | 2 | 5 | 0 |
| |IFZERO R2 GOTO 11 | 2 | 5 | 0 |
| |R1 -= R0 | 2 | 3 | 0 |
| |GOTO 2 | 2 | 3 | 0 |
| |IFZERO R1 GOTO 12 | 2 | 3 | 0 |
| |IFZERO R0 GOTO 11 | 2 | 3 | 0 |
| |R2 = R0 | 2 | 3 | 2 |
| |R2 -= R1 | 2 | 3 | 0 |
| |IFZERO R2 GOTO 11 | 2 | 3 | 0 |
| |R1 -= R0 | 2 | 1 | 0 |
| |GOTO 2 | 2 | 1 | 0 |
| |IFZERO R1 GOTO 12 | 2 | 1 | 0 |
| |IFZERO R0 GOTO 11 | 2 | 1 | 0 |
| |R2 = R0 | 2 | 1 | 2 |
| |R2 -= R1 | 2 | 1 | 1 |
| |IFZERO R2 GOTO 11 | 2 | 1 | 1 |
| |R0 -= R1 | 1 | 1 | 1 |
| |GOTO 2 | 1 | 1 | 1 |
| |IFZERO R1 GOTO 12 | 1 | 1 | 1 |
| |IFZERO R0 GOTO 11 | 1 | 1 | 1 |
| |R2 = R0 | 1 | 1 | 1 |
| |R2 -= R1 | 1 | 1 | 0 |
| |IFZERO R2 GOTO 11 | 1 | 1 | 0 |
| |R1 -= R0 | 1 | 0 | 0 |
| |GOTO 2 | 1 | 0 | 0 |
| |IFZERO R1 GOTO 12 | 1 | 0 | 0 |
Beispiel mit a = 119 und b = 7
| Anweisung | R0 | R1 | R1 |
|---|---|---|---|
| |R0 = a | 119 | 0 | 0 |
| |R1 = b | 119 | 7 | 0 |
| |IFZERO R1 GOTO 12 | 119 | 7 | 0 |
| |IFZERO R0 GOTO 11 | 119 | 7 | 0 |
| |R2 = R0 | 119 | 7 | 119 |
| |R2 -= R1 | 119 | 7 | 112 |
| |IFZERO R2 GOTO 11 | 119 | 7 | 112 |
| |R0 -= R1 | 112 | 7 | 112 |
| |GOTO 2 | 112 | 7 | 112 |
| |IFZERO R1 GOTO 12 | 112 | 7 | 112 |
| |IFZERO R0 GOTO 11 | 112 | 7 | 112 |
| |R2 = R0 | 112 | 7 | 112 |
| |R2 -= R1 | 112 | 7 | 105 |
| |IFZERO R2 GOTO 11 | 112 | 7 | 105 |
| |R0 -= R1 | 105 | 7 | 105 |
| |GOTO 2 | 105 | 7 | 105 |
| |IFZERO R1 GOTO 12 | 105 | 7 | 105 |
| |IFZERO R0 GOTO 11 | 105 | 7 | 105 |
| |R2 = R0 | 105 | 7 | 105 |
| |R2 -= R1 | 105 | 7 | 98 |
| |IFZERO R2 GOTO 11 | 105 | 7 | 98 |
| |R0 -= R1 | 98 | 7 | 98 |
| |GOTO 2 | 98 | 7 | 98 |
| |IFZERO R1 GOTO 12 | 98 | 7 | 98 |
| |IFZERO R0 GOTO 11 | 98 | 7 | 98 |
| |R2 = R0 | 98 | 7 | 98 |
| |R2 -= R1 | 98 | 7 | 91 |
| |IFZERO R2 GOTO 11 | 98 | 7 | 91 |
| |R0 -= R1 | 91 | 7 | 91 |
| |GOTO 2 | 91 | 7 | 91 |
| |IFZERO R1 GOTO 12 | 91 | 7 | 91 |
| |IFZERO R0 GOTO 11 | 91 | 7 | 91 |
| |R2 = R0 | 91 | 7 | 91 |
| |R2 -= R1 | 91 | 7 | 84 |
| |IFZERO R2 GOTO 11 | 91 | 7 | 84 |
| |R0 -= R1 | 84 | 7 | 84 |
| |GOTO 2 | 84 | 7 | 84 |
| |IFZERO R1 GOTO 12 | 84 | 7 | 84 |
| |IFZERO R0 GOTO 11 | 84 | 7 | 84 |
| |R2 = R0 | 84 | 7 | 84 |
| |R2 -= R1 | 84 | 7 | 77 |
| |IFZERO R2 GOTO 11 | 84 | 7 | 77 |
| |R0 -= R1 | 77 | 7 | 77 |
| |GOTO 2 | 77 | 7 | 77 |
| |IFZERO R1 GOTO 12 | 77 | 7 | 77 |
| |IFZERO R0 GOTO 11 | 77 | 7 | 77 |
| |R2 = R0 | 77 | 7 | 77 |
| |R2 -= R1 | 77 | 7 | 70 |
| |IFZERO R2 GOTO 11 | 77 | 7 | 70 |
| |R0 -= R1 | 70 | 7 | 70 |
| |GOTO 2 | 70 | 7 | 70 |
| |IFZERO R1 GOTO 12 | 70 | 7 | 70 |
| |IFZERO R0 GOTO 11 | 70 | 7 | 70 |
| |R2 = R0 | 70 | 7 | 70 |
| |R2 -= R1 | 70 | 7 | 63 |
| |IFZERO R2 GOTO 11 | 70 | 7 | 63 |
| |R0 -= R1 | 63 | 7 | 63 |
| |GOTO 2 | 63 | 7 | 63 |
| |IFZERO R1 GOTO 12 | 63 | 7 | 63 |
| |IFZERO R0 GOTO 11 | 63 | 7 | 63 |
| |R2 = R0 | 63 | 7 | 63 |
| |R2 -= R1 | 63 | 7 | 56 |
| |IFZERO R2 GOTO 11 | 63 | 7 | 56 |
| |R0 -= R1 | 56 | 7 | 56 |
| |GOTO 2 | 56 | 7 | 56 |
| |IFZERO R1 GOTO 12 | 56 | 7 | 56 |
| |IFZERO R0 GOTO 11 | 56 | 7 | 56 |
| |R2 = R0 | 56 | 7 | 56 |
| |R2 -= R1 | 56 | 7 | 49 |
| |IFZERO R2 GOTO 11 | 56 | 7 | 49 |
| |R0 -= R1 | 49 | 7 | 49 |
| |GOTO 2 | 49 | 7 | 49 |
| |IFZERO R1 GOTO 12 | 49 | 7 | 49 |
| |IFZERO R0 GOTO 11 | 49 | 7 | 49 |
| |R2 = R0 | 49 | 7 | 49 |
| |R2 -= R1 | 49 | 7 | 42 |
| |IFZERO R2 GOTO 11 | 49 | 7 | 42 |
| |R0 -= R1 | 42 | 7 | 42 |
| |GOTO 2 | 42 | 7 | 42 |
| |IFZERO R1 GOTO 12 | 42 | 7 | 42 |
| |IFZERO R0 GOTO 11 | 42 | 7 | 42 |
| |R2 = R0 | 42 | 7 | 42 |
| |R2 -= R1 | 42 | 7 | 35 |
| |IFZERO R2 GOTO 11 | 42 | 7 | 35 |
| |R0 -= R1 | 35 | 7 | 35 |
| |GOTO 2 | 35 | 7 | 35 |
| |IFZERO R1 GOTO 12 | 35 | 7 | 35 |
| |IFZERO R0 GOTO 11 | 35 | 7 | 35 |
| |R2 = R0 | 35 | 7 | 35 |
| |R2 -= R1 | 35 | 7 | 28 |
| |IFZERO R2 GOTO 11 | 35 | 7 | 28 |
| |R0 -= R1 | 28 | 7 | 28 |
| |GOTO 2 | 28 | 7 | 28 |
| |IFZERO R1 GOTO 12 | 28 | 7 | 28 |
| |IFZERO R0 GOTO 11 | 28 | 7 | 28 |
| |R2 = R0 | 28 | 7 | 28 |
| |R2 -= R1 | 28 | 7 | 21 |
| |IFZERO R2 GOTO 11 | 28 | 7 | 21 |
| |R0 -= R1 | 21 | 7 | 21 |
| |GOTO 2 | 21 | 7 | 21 |
| |IFZERO R1 GOTO 12 | 21 | 7 | 21 |
| |IFZERO R0 GOTO 11 | 21 | 7 | 21 |
| |R2 = R0 | 21 | 7 | 21 |
| |R2 -= R1 | 21 | 7 | 14 |
| |IFZERO R2 GOTO 11 | 21 | 7 | 14 |
| |R0 -= R1 | 14 | 7 | 14 |
| |GOTO 2 | 14 | 7 | 14 |
| |IFZERO R1 GOTO 12 | 14 | 7 | 14 |
| |IFZERO R0 GOTO 11 | 14 | 7 | 14 |
| |R2 = R0 | 14 | 7 | 14 |
| |R2 -= R1 | 14 | 7 | 7 |
| |IFZERO R2 GOTO 11 | 14 | 7 | 7 |
| |R0 -= R1 | 7 | 7 | 7 |
| |GOTO 2 | 7 | 7 | 7 |
| |IFZERO R1 GOTO 12 | 7 | 7 | 7 |
| |IFZERO R0 GOTO 11 | 7 | 7 | 7 |
| |R2 = R0 | 7 | 7 | 7 |
| |R2 -= R1 | 7 | 7 | 0 |
| |IFZERO R2 GOTO 11 | 7 | 7 | 0 |
| |R1 -= R0 | 7 | 0 | 0 |
| |GOTO 2 | 7 | 0 | 0 |
| |IFZERO R1 GOTO 12 | 7 | 0 | 0 |