Registrierung Kalender Mitgliederliste Teammitglieder Suche Häufig gestellte Fragen Zur Startseite

Informatiker Board » Themengebiete » Praktische Informatik » Adressmaschine Berechnung » Hallo Gast [Anmelden|Registrieren]
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | An Freund senden | Thema zu Favoriten hinzufügen
Neues Thema erstellen Antwort erstellen
Zum Ende der Seite springen Adressmaschine Berechnung
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
MarcoZ
Grünschnabel


Dabei seit: 27.10.2017
Beiträge: 4

Adressmaschine Berechnung Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Hi Leute,

ich bin relativ neu in der Welt der Informatik und verstehe da etwas nicht ganz.

Bei mir geht es um die 3-Adressmaschine... Ich habe die Befehle ADD/SUB/MUL/DIV

gegeben. Was diese bedeuten, weiß sicherlich jeder, aber ich sage es gerne noch mal: Addieren, Subtrahieren, Multiplizieren,Dividieren.

So und jetzt habe ich 5 Aufgaben und weiß noch ganz korrekt, wie ich da vorgehen soll.

Eine Aufgabe wäre zum Beispiel:

a) A * (A - B)

Und jetzt soll ich halt auf Grundlage der Befehle, einen Code schreiben.

Ich habe das vorher aber noch nie gemacht und bin mir unsicher... wäre es so richtig? :

SUB A B A
MUL A A A

Das sieht mir aber irgendwie falsch aus und so leicht kann es doch auch nicht sein, oder?

In einem Beispiel was ich mir angeguckt habe, da war die Aufgabe: A + B + C und die Lösung war:

ADD A B A
ADD A C C

Daran hatte ich mich orientiert...

Hier noch die anderen Aufgaben:

MarcoZ hat dieses Bild (verkleinerte Version) angehängt:
hgfhfg.jpg

27.10.2017 19:18 MarcoZ ist offline Beiträge von MarcoZ suchen Nehmen Sie MarcoZ in Ihre Freundesliste auf
Karlito Karlito ist männlich
Kaiser


Dabei seit: 11.04.2011
Beiträge: 1.461

RE: Adressmaschine Berechnung Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Hallo MarcoZ,

leider ist dir ein Denkfehler unterlaufen.
Zitat:
Original von MarcoZ
SUB A B A
MUL A A A

Macht
[latex]<br />
(A - B)(A-B)<br />
[/latex]

Vielleicht kommst Du ja ohne weitere Tipps auf die Lösung.

Besten Gruß,

Karlito
28.10.2017 11:46 Karlito ist offline E-Mail an Karlito senden Beiträge von Karlito suchen Nehmen Sie Karlito in Ihre Freundesliste auf
MarcoZ
Grünschnabel


Dabei seit: 27.10.2017
Beiträge: 4

RE: Adressmaschine Berechnung Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Zitat:
Original von Karlito
Hallo MarcoZ,

leider ist dir ein Denkfehler unterlaufen.
Zitat:
Original von MarcoZ
SUB A B A
MUL A A A

Macht
[latex]<br />
(A - B)(A-B)<br />
[/latex]

Vielleicht kommst Du ja ohne weitere Tipps auf die Lösung.

Besten Gruß,

Karlito



Hi
,

erstmal danke für die Antwort.

Also ich habe mich jetzt etwas im Internet "schlau" gemacht... aber leider findet man nicht soooo viel im Internet dazu.

Arbeitet man dabei mit "r1" zum Beispiel?

Also bei der Aufgabe:

A * ( A - B )


Habe ich zum Beispiel jetzt halt gerechnet mit:

SUB A B r1

MUL r1 A r1


Falls das Falsch ist... wo ist denn da mein Denkfehler? Sonst komme ich da nicht alleine drauf. Man macht doch zuerst das in der Klammer... also sage ich ihm SUB A und B und speicher es in r1

und dann sage ich ihm multipliziere das was in r1 ist und multipliziere es mit A und speicher es erneut in r1?
28.10.2017 18:02 MarcoZ ist offline Beiträge von MarcoZ suchen Nehmen Sie MarcoZ in Ihre Freundesliste auf
as_string as_string ist männlich
Haudegen


Dabei seit: 06.11.2013
Beiträge: 638
Herkunft: Heidelberg

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Woher kommt denn jetzt r1? Du hast A, B und C. Wenn Du aber mit SUB A B A das Ergebnis der Subtraktion A-B in A speicherst, dann hast Du ja den ursprünglichen Wert von A überschreiben und kannst danach die Differenz nicht mehr mit dem ursprünglichen Wert von A multiplizieren.
Wo könntest Du also das Ergebnis der Subtraktion speichern? A ist auf jeden Fall der ungünstigste Ort...

Gruß
Marco
28.10.2017 23:21 as_string ist offline E-Mail an as_string senden Beiträge von as_string suchen Nehmen Sie as_string in Ihre Freundesliste auf
MarcoZ
Grünschnabel


Dabei seit: 27.10.2017
Beiträge: 4

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Zitat:
Original von as_string
Woher kommt denn jetzt r1? Du hast A, B und C. Wenn Du aber mit SUB A B A das Ergebnis der Subtraktion A-B in A speicherst, dann hast Du ja den ursprünglichen Wert von A überschreiben und kannst danach die Differenz nicht mehr mit dem ursprünglichen Wert von A multiplizieren.
Wo könntest Du also das Ergebnis der Subtraktion speichern? A ist auf jeden Fall der ungünstigste Ort...

Gruß
Marco


Ich habe mich für die Lösung an eine Beispielösung in meiner Aufgabe gerichtet. Dort war als Beispiel die Aufgabe A+B+C gegeben. Gelöst wurde diese wie folgt:

ADD A B A
ADD A C C


Begründung: Der Erste Ausdruck addiert die Zahlen in Register A sowie B und schreibt das Ergebnis zuruck in das Register A. Der zweite Ausdruck addiert dieses Ergebnis in Register A sowie die Zahl in Register C und
schreibt das Ergebnis in das Register C.


Mit der selben Logik, bin ich bei meinen Aufgaben rangegangen. Das r1 ist ja nichts anderes als ein Register. Ich könnte es auch Z1 nennen, oder sonst wie. Theoretisch gesehen ist (A-B) = r1

Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von MarcoZ: 29.10.2017 00:44.

29.10.2017 00:43 MarcoZ ist offline Beiträge von MarcoZ suchen Nehmen Sie MarcoZ in Ihre Freundesliste auf
as_string as_string ist männlich
Haudegen


Dabei seit: 06.11.2013
Beiträge: 638
Herkunft: Heidelberg

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Nein, Du kannst es nicht r1 oder Z1 nennen. Du hast A, B und C als Register!
Wenn Du SUB A B A ausführst, wo ist dann der ursprüngliche Wert, der in A stand? Richtig, der ist weg, weil Du ihn überschrieben hast. Deshalb sagt MUL A A C auch nur, dass der neue Wert in A schlicht quadriert wird und in C geschrieben. Das sagt ja auch Karlito wenn er schreibt, Du hast (A-B)*(A-B) gerechnet.
Du willst aber das Ergebnis aus der Subtraktion eben nicht in A speichern, damit Du den ursprünglichen Wert in A nicht überschreibst. Du hast noch zwei weitere Register zur Verfügung, warum nimmst Du nicht einen von diesen beiden?

Gruß
Marco
29.10.2017 01:03 as_string ist offline E-Mail an as_string senden Beiträge von as_string suchen Nehmen Sie as_string in Ihre Freundesliste auf
MarcoZ
Grünschnabel


Dabei seit: 27.10.2017
Beiträge: 4

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Zitat:
Original von as_string
Nein, Du kannst es nicht r1 oder Z1 nennen. Du hast A, B und C als Register!
Wenn Du SUB A B A ausführst, wo ist dann der ursprüngliche Wert, der in A stand? Richtig, der ist weg, weil Du ihn überschrieben hast. Deshalb sagt MUL A A C auch nur, dass der neue Wert in A schlicht quadriert wird und in C geschrieben. Das sagt ja auch Karlito wenn er schreibt, Du hast (A-B)*(A-B) gerechnet.
Du willst aber das Ergebnis aus der Subtraktion eben nicht in A speichern, damit Du den ursprünglichen Wert in A nicht überschreibst. Du hast noch zwei weitere Register zur Verfügung, warum nimmst Du nicht einen von diesen beiden?

Gruß
Marco


Aber warum machen Sie es dann in der Beispielaufgabe auch so?

Aber in der Aufgabe A * ( A - B ) habe ich ja auch kein C. Da habe ich nur die Register A und B und kein C. Das heißt ich muss es ja in ein Register überschreiben.
29.10.2017 08:11 MarcoZ ist offline Beiträge von MarcoZ suchen Nehmen Sie MarcoZ in Ihre Freundesliste auf
as_string as_string ist männlich
Haudegen


Dabei seit: 06.11.2013
Beiträge: 638
Herkunft: Heidelberg

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Erstens sehe ich nicht, warum Du bei einer 3-Adressmaschine nicht auch C haben solltest und zweitens kannst Du auch B nehmen, nur eben nicht A weil das der einzige Wert ist, den Du für die weitere Berechnung noch brauchst und ausgerechnet den überschreibst Du...

Gruß
Marco
29.10.2017 09:44 as_string ist offline E-Mail an as_string senden Beiträge von as_string suchen Nehmen Sie as_string in Ihre Freundesliste auf
as_string as_string ist männlich
Haudegen


Dabei seit: 06.11.2013
Beiträge: 638
Herkunft: Heidelberg

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Ok, da hab ich Dir etwas unrecht getan.
Habe gerade etwas gegooglet und festgestellt, dass man wohl die Register tatsächlich benennen kann und auch so viele verwenden kann, wie man möchte.
Außerdem ist mir aufgefallen, dass man meistens das Ziel der Rechnung eher an erster Stelle hat und die beiden Operanden an zweiter und dritter. Aber das ist natürlich reine Definitionssache...

Gruß
Marco
29.10.2017 11:00 as_string ist offline E-Mail an as_string senden Beiträge von as_string suchen Nehmen Sie as_string in Ihre Freundesliste auf
Baumstruktur | Brettstruktur
Gehe zu:
Neues Thema erstellen Antwort erstellen
Informatiker Board » Themengebiete » Praktische Informatik » Adressmaschine Berechnung