Pseudocode in anderen Sprachen - auf Matthias-Draeger.info

Pseudocode in anderen Sprachen - auf Matthias-Draeger.info Pseudocode in anderen Sprachen - auf Matthias-Draeger.info

matthias.draeger.info
von matthias.draeger.info Mehr von diesem Publisher
29.06.2015 Aufrufe

Übungsblatt 3, Aufgabe 6 Aufgabe 6: MMIX – Unterprogramme (5+5=10) Informieren Sie sich über die Erstellung von Unterprogrammen in MMIX. a) Implementieren Sie ein Unterprogramm für die Berechnung der Fakultätsfunktion n! = 1∙ 2 ∙ . . . ∙ n und geben Sie ein Hauptprogramm an, vom dem das Unterprogramm aufgerufen wird. b) Die rekursive Berechnung des Binomialkoeffizienten kann mittels folgender Funktion durchgeführt werden: // rekursive Berechnung des Binomialkoeffizienten (Pseudocode) function binom (n,k : integer) : integer; begin if(k = 0 OR k = n) then binom := 1 else if k = 1 then binom := n else binom := binom(n-1,k) + binom(n-1,k-1) end; Schreiben Sie ein vollständiges MMIX Assemblerprogramm, welches mittels eines rekursiven Unterprogramms den Binomialkoeffizient berechnet. Hinweis: Benutzen Sie PUSHJ und POP. Technische Informatik II - Rechnerarchitektur, Pseudocode in anderen Sprachen, 20.05.2010 2

Pseudocode in anderen Sprachen (1) Pseudocode // rekursive Berechnung des Binomialkoeffizienten function binom (n,k : integer) : integer; begin if(k = 0 OR k = n) then binom := 1 else if k = 1 then binom := n else binom := binom(n-1,k) + binom(n-1,k-1) end; Haskell -- Berechnung des Binomialkoeffizienten (rekursiv) binom :: Integer -> Integer -> Integer binom n k | (n < 0 || k < 0) = error ("Fehler: Parameter muessen positiv sein!") | (k == 0 || k == n) = 1 | (k == 1) = n | otherwise = (binom (n-1) k) + (binom (n-1) (k-1)) Technische Informatik II - Rechnerarchitektur, Pseudocode in anderen Sprachen, 20.05.2010 3

Übungsblatt 3, Aufgabe 6<br />

Aufgabe 6: MMIX – Unterprogramme (5+5=10)<br />

Informieren Sie sich über die Erstellung von Unterprogrammen <strong>in</strong> MMIX.<br />

a) Implementieren Sie e<strong>in</strong> Unterprogramm für die Berechnung der Fakultätsfunktion n! = 1∙ 2 ∙ . . . ∙ n und geben<br />

Sie e<strong>in</strong> Hauptprogramm an, vom dem das Unterprogramm <strong>auf</strong>gerufen wird.<br />

b) Die rekursive Berechnung des B<strong>in</strong>omialkoeffizienten kann mittels folgender Funktion durchgeführt<br />

werden:<br />

// rekursive Berechnung des B<strong>in</strong>omialkoeffizienten (<strong>Pseudocode</strong>)<br />

function b<strong>in</strong>om (n,k : <strong>in</strong>teger) : <strong>in</strong>teger;<br />

beg<strong>in</strong><br />

if(k = 0 OR k = n) then b<strong>in</strong>om := 1<br />

else if k = 1 then b<strong>in</strong>om := n<br />

else b<strong>in</strong>om := b<strong>in</strong>om(n-1,k) + b<strong>in</strong>om(n-1,k-1)<br />

end;<br />

Schreiben Sie e<strong>in</strong> vollständiges MMIX Assemblerprogramm, welches mittels e<strong>in</strong>es rekursiven Unterprogramms<br />

den B<strong>in</strong>omialkoeffizient berechnet.<br />

H<strong>in</strong>weis: Benutzen Sie PUSHJ und POP.<br />

Technische Informatik II - Rechnerarchitektur, <strong>Pseudocode</strong> <strong>in</strong> <strong>anderen</strong> <strong>Sprachen</strong>, 20.05.2010<br />

2

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!