Disclaimer: Dieser Thread wurde aus dem alten Forum importiert. Daher werden eventuell nicht alle Formatierungen richtig angezeigt. Der ursprüngliche Thread beginnt im zweiten Post dieses Threads.
Aufgabe 8.3
Die Aufgabe verwirrt mich ein wenig.
wie kann man denn prüfen, ob bei einem crunch der richtige Index mitgegeben wurde.
ich habe eigentlich gedacht, man muss bei den inputNumbers schauen, aber bei dem Add test wird einmal Index 1 und einmal 0 mitgegeben, obwohl in den inputNumbers nur 0 steht.
???
Schau dir die Abbildung mal an: Jeder Cruncher hat Eingänge, die mit Nummern angesprochen werden. In inputNumbers stehen die Eingangsnummern der folgenden Cruncher, an die das eigene Ergebnis weitergeleitet werden soll.
okay, ich soll also schauen, ob der mitgegebene Index mit einer meiner eingangsnummer übereinstimmt?
Ja. Da gibt es ja je nach Art (Unary, Binary) verschieden gültige Werte.
und woher krieg ich die? sind die für alle unary bzw binary gleich?
Da sie per Definition immer bei 0 beginnen, sollten sich da gewisse Gemeinsamkeiten ergben
ict du musst das anders erklären:
das komische 0-basierte-zeugs heißt es fängt von 0 an zu zählen
bei 2 eingängen (als der binary) bedeutet es dass der den eingang 0 und den eingang 1 hat
also wenn als index 0 bzw. 1 übergeben werden an den binären dann passts ansonsten net
und du bekommst die nachrichten nacheinander geliefert… des heißt du speicherst dir das zwischen (immer mit index)
und wenn die maschine dann schon mal was an einem index zwischengespeichert hat und es kommt was am anderen index an, dann kannste des zeugs verrechnen
bei unary ist dann eben 0 der gültige eingang
mein geschribsel oben ist zwar jetzt auch noch etwas schwammig, aber ich denke es ist besser als des von ict
ach ict auch gleich mal noch die frage
kann eine maschine mehrmals verwendet werden
sprich dass ich dann eventuell zwischengespeicherte eingänge wieder reseten muss?
meine letzte frage ist auch mal wieder aus der aufgabenstellung nicht ersichtlich
aah okay jetzt hab ich es verstanden, danke
Ich kann auch gleich die Lösung diktieren. Ist aber nicht Sinn der Sache.
Gegenfrage: Wieso sollte man das nicht können? Resetten muss man aber eigentlich nichts, es werden ja nur Eingangsänderungen mittels [m]input()[/m] bekannt gegeben. Ändert sich einer von [m]n[/m] Eingängen, wird eben auf Basis aller Eingänge ein neuer Wert berechnet. Deswegen soll ja auch nur ein tatsächlich geänderter Wert an angeschlossene Listener weitergegeben werden.
@ict also mein post sieht nicht nach lsg aus, aber
Dein zweites geschriebene hab ich auch nicht ganz verstanden, liegt aber wahrscheinlich daran, dass du von einer anderen implementierung ausgehst
Deswegen nochmal die Nachfrage:
Wenn die Maschine schon einmal was gerechnet hat, soll sie dann sofort, wenn ein weiterer Eingang bspw. wieder die 0 anliegt…
soll diese maschine dann sofort erneut rechnen oder auch in diesem fall warten bis wieder an „beiden“ eingängen was anliegt
also an 0 und an 1
oder soll wenn bei der 0 was neues anliegt…
0 mit der alten 1 verrechnet werden
Das
Thx das war mal schön Eindeutig^^