Informatiker Board (http://www.informatikerboard.de/board/index.php)
- Themengebiete (http://www.informatikerboard.de/board/board.php?boardid=1)
--- Theoretische Informatik (http://www.informatikerboard.de/board/board.php?boardid=5)
---- Berechenbarkeits- und Komplexitätstheorie (http://www.informatikerboard.de/board/board.php?boardid=15)
----- Registermaschine Kleines Element einer Liste (http://www.informatikerboard.de/board/thread.php?threadid=2254)


Geschrieben von Jefferson1992 am 03.05.2015 um 13:44:

  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ß!



Geschrieben von eulerscheZahl am 03.05.2015 um 17:28:

 

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.



Geschrieben von Jefferson1992 am 04.05.2015 um 07:10:

 

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..



Geschrieben von Karlito am 04.05.2015 um 10:44:

 

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



Geschrieben von Jefferson1992 am 24.05.2015 um 19:49:

 

Hllo,

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

Danke euch!


Forensoftware: Burning Board, entwickelt von WoltLab GmbH