Registermaschine Kleines Element einer Liste |
|
Registermaschine Kleines Element einer Liste |
|
Hallo Leute.
Ich bin am verzweifeln.
Alle haben es gesagt und es bewahrheitet sich. Theoretische Informatik ist schwierig. Aber ich muss da durch und möchte es auch schaffen.
Aber ich komme bei einer Aufgabe überhaupt nicht weiter.
Vieleicht könnt Ihr mir ja ein Denkanstoß geben.
Meine Ideen:
So wie ich das verstehe, habe ich eine Liste, deren Elemente bei C(8) anfangen. Das heißt ich lade mir dieses Element und schaue, ob es 0 ist, wenn nicht lade ich C(C(9)) und schaue dann ob das 0 ist, wenn nicht schaue ich ob C(8) > oder < ist als C(C(9)) und speichere diesen Wert wieder ab. Dann gehe ich zum nächsten Feld und schaue wiederum ob dieses Fel 0 ist, wenn nicht schae ich ob die Different dieses Elementes mit dem davor < ist als die DIfferenz zuvor, wenn ja speichere ich diese ab, wenn nein, nicht.
Das mache ich solange, bis ich das kleinste Element gefunden habe.
Mein Problem ist, wenn es so wäre, wie ich es beschrieben habe, wäre es eine Endlsschleife..
Dankbar für jeden Denkanstoß!
Jefferson1992 hat dieses Bild (verkleinerte Version) angehängt:
|
|
03.05.2015 13:44 |
|
|
|
Warum speicherst du nicht einfach den kleinsten Wert der bisher geprüften Zahlen, statt die Differenz?
Und eine Endlosschleife sehe ich hier nicht, irgendwann wird der Wert ja 0 und du kannst abbrechen.
__________________ Syntax Highlighting fürs Board (Link)
|
|
03.05.2015 17:28 |
|
|
|
Naja, wir haben noch keinen Befehl kennen helernt, um zu überprüfen, ob eine Zahl größer oder kleiner ist. Deshalb muss ich mir der Differenz arbeiten. Da ist nur das Problem, dass ich negative Werte nicht speichern kann.
Ich stehe echt auf dem schlauch..
|
|
04.05.2015 07:10 |
|
|
Karlito
Kaiser
Dabei seit: 11.04.2011
Beiträge: 1.461
|
|
Hallo Jefferson,
speichere dir als erstes die erste Zahl in einem Hilfsregister. Danach gehst Du die Liste durch und rechnest die aktuelle Zahl - die Zahl im Hilfsregister. Wenn das Ergebnis 0 ist, dann ist die Zahl in der Liste kleiner oder gleich der im Hilfsregister und das Hilfsregister kann mit der aktuellen Zahl ersetzt werden.
Für das Durchlaufen der Liste speicherst Du dir auch in einem Hilfsregister die aktuelle Zelle, in der der Wert steht. Zelle + 1 ist der Verweis auf die neue Zelle. Bei jedem durchlauf ersetzt Du am Ende das Hilfsregister mit dem Wert des Verweises auf das nächste Listenelement bis die Abbruchbedingung erreicht ist.
Hilft das weiter?
Gruß,
Karlito
|
|
04.05.2015 10:44 |
|
|
|
Hllo,
sorry für die späte Rückmeldung. Hbe es durch die Hilfestellung hinbekommen.
Danke euch!
|
|
24.05.2015 19:49 |
|
|
|