Registermaschine Kleines Element einer Liste

Neue Frage »

Auf diesen Beitrag antworten »
Jefferson1992 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ß!
 
Auf diesen Beitrag antworten »
eulerscheZahl

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.
Auf diesen Beitrag antworten »
Jefferson1992

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..
Auf diesen Beitrag antworten »
Karlito

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
 
Auf diesen Beitrag antworten »
Jefferson1992

Hllo,

sorry für die späte Rückmeldung. Hbe es durch die Hilfestellung hinbekommen.

Danke euch!
 
Neue Frage »
Antworten »


Verwandte Themen

Die Beliebtesten »
Die Größten »
Die Neuesten »