Die letzten 10 Beiträge |
eulerscheZahl |
Ja, die a) passt. |
Shizmo |
Hmmm, eigenartig. Aber die a) passt soweit? |
eulerscheZahl |
Ich komme bei deiner Rechnung auf .
a/(b+a) zu kopieren macht denke ich keinen Sinn, weil man es nur einmal verwenden kann.
Ich würde erst mal schauen, dass ich die Doppelbrüche wegbekomme: .
Dadurch wird die Rechnung aber eher länger als kürzer
|
Shizmo |
Hoppala, war ein Fehler beim Abtippen:
|
eulerscheZahl |
Du hast in der polnischen Notation ein fünftes a dazubekommen. Nimm das mal wieder weg. |
Shizmo |
Ich hätte hier noch ein Beispiel, wo ich mir nicht ganz sicher bin, die Angabe:
Zitat: |
Implementieren Sie folgende Anweisung auf einer Stackmaschine:
a) Sie haben die Befehle push, pop, add, div zur Verfügung.
b) Sie haben zusätzlich den Befehl dup zur Verfügung. |
Also eh wieder sehr ähnlich:
Also erst einmal ordentlich hinschreiben:
Dann polnische Notation:
Wenn das soweit passt ist a):
PUSH A
PUSH B
ADD
PUSH A
DIV
PUSH B
ADD
PUSH A
DIV
PUSH B
ADD
PUSH A
DIV
POP C
bei b) bin ich mir allerdings nicht ganz sicher:
PUSH A
PUSH B
ADD
PUSH A
DIV
DUP
PUSH B
ADD
DIV
POP C
Denn wenn ich das jetzt wieder auflöse, wäre das:
Wenn ich von rechts nach links gehe teile ich durch was ja eigentlich nicht richtig ist.
Wo liegt mein Fehler?
|
eulerscheZahl |
Ich habe die ganze Zeit von den Taktzyklen gesprochen.
Das einzige, was ich zum Speicherzugriff geschrieben habe:
Zitat: |
Original von Shizrmo
12*1Byte (alle Codes) + 6*2Bytes (alle PUSH) + 5*4Bytes(alle ADD und MULT) = 44 Bytes ???? |
Zitat: |
Original von eulerscheZahl
Beim letzten Teil denke ich, dass die Variablen noch vom Speicher in den Prozessor geladen werden müssen. Aber an der Stelle bin ich auch keine verlässliche Quelle. |
|
Shizmo |
Hmm okay, aber dann wäre
Zitat: |
Zählen Sie die Anzahl der Taktzyklen, die das Programm benötigt |
dasselbe wie die Anzahl der Speicherzugriffe ohne dem Einlesen der Befehlscodes. |
eulerscheZahl |
Kosten für Befehl selbst und Befehlscode ohne Gewähr:
PUSH a 3 3
PUSH b 3 3
ADD 1 3
PUSH d 3 3
MULT 5 3
PUSH c 3 3
ADD 1 3
PUSH a 3 3
PUSH b 3 3
ADD 1 3
MULT 5 3
POP 3 3
gesamt: 34 36
Also 34 für die Befehle alleine. 34+36=70, wenn du den Code noch laden musst.
Die b) passt so. |
Shizmo |
Zitat: |
Original von eulerscheZahl
Zitat: |
Ah okay und ohne Einlesen der Befehlscodes wäre es dann 34+7*3 = 55 ? Oder 18+12*3 = 54 ? |
Das musst du mir jetzt erklären.
Ich komme wir oben ausgerechnet auf 34 da waren deine ursprünglichen 6 pop ja schon mit dabei. |
Laut Angabe gibt es die Anzahl der Speicherzugriffe mit und ohne dem Einlesen der Befehlscodes.
Mit wären ja: 34+12*3 = 70
Und bei ohne dachte ich mir ohne den (3 ADD und 2 MULT)-POPs, also 34+7*3 = 55
Dann noch zu b)
Würde das dann in etwa so aussehen?
PUSH a
PUSH b
ADD
DUP
PUSH d
MULT
PUSH c
ADD
MULT
POP |
Es sind weitere Beiträge zu diesem Thema vorhanden. Klicken Sie hier, um sich alle Beiträge anzusehen. |