Datenstrukturen

Herrzattacke
BASIC-Programmierer
BASIC-Programmierer
Beiträge: 143
Registriert: 20. Nov 2004 16:04

Datenstrukturen

Beitrag von Herrzattacke »

Hallo,

Ich hab mir schon mal ein paar Gedanken gemacht und komme aber nicht so wirklich weiter.
Wie Herr Koch auch schon angemerkt hat, sollte das parsen der einzelnen Dateien eine Fingerübung sein. Außerdem kann ich mir auch für jedes der Teilprobleme eine Datenstruktur ausdenken die für diesen Zweck funktioniert.
Wie bekommt man das aber jetzt zusammen?

Ideen austauschen ist ja laut Veranstalter erlaubt und in anbetracht der kurzen Zeit auch unumgänglich.

Ich hatte mir gedacht ein Interface für die clb's und die IO-Blöcke zu erstellen, damit man dann später ein zweidimensionales array erstellen kann, dessen Einträge von diesem Interface abgeleitet sind.

Was haltet ihr davon?

So jetzt seid ihr dran :lol:

Gruß
Herrzattacke
Alle sagten: "Das geht nicht!" Dann kam einer, der wusste das nicht und hat´s gemacht.

Herrzattacke
BASIC-Programmierer
BASIC-Programmierer
Beiträge: 143
Registriert: 20. Nov 2004 16:04

Beitrag von Herrzattacke »

Da keiner von euch auf mein Statement geantwortet hat mach ich das jetzt selbst.
Ein einfache "ist ja totaler Quatsch da ein Array zu nehmen" wäre mir ja schon genug gewesen. Zu dieser Ansicht bin ich nämlich gekommen, da es durchaus sein kann, dass dieses Array garnicht dicht besetzt ist und daher einfach nur sinnlos Speicher verbraucht.
Alle sagten: "Das geht nicht!" Dann kam einer, der wusste das nicht und hat´s gemacht.

Tillmann
BASIC-Programmierer
BASIC-Programmierer
Beiträge: 131
Registriert: 5. Dez 2003 21:27
Wohnort: Frankfurt

Beitrag von Tillmann »

Ich halte das nicht für totalen Quatsch, da ein Array zu nehmen.

Es sind doch verschiedene Fragen zur Laufzeit zu beantworten:
  • Welcher Block befindet sich an Koordinate (x, y)? Beste Datenstruktur: 2D-Array of Block
  • An welcher Koordinate befindet sich ein Block? Beste Datenstruktur: Datenfelder in der Blockstruktur
  • Welche Blocks gibt es überhaupt? Beste Datenstruktur: 1D-Array of Block
  • Und bestimmt noch viel mehr...
Da alle diese Abfragen schnell laufen sollen, werden wir wohl kaum drumrumkommen, manche Datenstrukturen parallel zu führen. Ist halt dann zu prüfen, ob Speicherbedarf, Aufwand für das Führen der Datenstruktur und Effizienzsteigerung durch das schnellere Nachschlagen im Verhältnis stehen.

Um Speicherbedarf müssen wir uns aber glaube ich an dieser Stelle nicht so viele Gedanken machen. Prof. Koch hat in der Vorlesung gesagt, daß es maximal 30 x 30 = 900 Blocks geben wird. Für jeden Block muß im 2D-Array ja nur ein 32bit-Zeiger gespeichert werden. Insgesamt werden also 900 x 4 Byte = 3600 Byte benötigt. Um 4kB zusätzlichen Speicherverbrauch würde ich mir keine Gedanken machen.

Herrzattacke
BASIC-Programmierer
BASIC-Programmierer
Beiträge: 143
Registriert: 20. Nov 2004 16:04

Beitrag von Herrzattacke »

naja totaler quatsch ist zuviel gesagt, ich war nur über die rege Beteiligung etwas erboßt.
Irgendwo muss man ja Buch darüber führen was denn an Resourcen auf dem virtuellen FPGA schon belegt ist. Ob man dazu einfach nur ein array von boolean Werten nimmt oder lieber seine eigenen Objekte initialisiert bleib einem selbst überlassen.

Danke für deine Antwort.
Alle sagten: "Das geht nicht!" Dann kam einer, der wusste das nicht und hat´s gemacht.

Tillmann
BASIC-Programmierer
BASIC-Programmierer
Beiträge: 131
Registriert: 5. Dez 2003 21:27
Wohnort: Frankfurt

Beitrag von Tillmann »

Ein einzelner Boolean-Wert braucht doch auch 32bit, nehme ich jedenfalls an. Man kann also genausogut auch eine Referenz auf den Block abspeichern, und eben null für ungenutzte Blöcke. Dann hat man mehr Informationen auf demselben Platz untergebracht, und wer weiß, vielleicht braucht man sie ja noch mal.

Herrzattacke
BASIC-Programmierer
BASIC-Programmierer
Beiträge: 143
Registriert: 20. Nov 2004 16:04

Beitrag von Herrzattacke »

ein einzelner boolean wert schon, aber wenn ich das richtig in Erinnerung habe dann braucht bei einem array von booleans jeder wert nur ein bit.
Ansonsten hast du recht.
Alle sagten: "Das geht nicht!" Dann kam einer, der wusste das nicht und hat´s gemacht.

Antworten

Zurück zu „Archiv“