Autor Beitrag
Therion
Hält's aus hier
Beiträge: 4



BeitragVerfasst: Fr 19.09.08 18:18 
Moin

Ich arbeite gerade an einem Delphi Projekt bei dem es sich um einen simplen Logik-Simulator handelt. Es besteht aus Objekten: AND, OR, NOT, INput, OUTPut
Diese Objekte möchte ich auf der Canvas-Fläche einfach platzieren und per Mausklicks verdrahten.
Nun habe ich Frage zur Datenstruktur. Ich habe mir überlegt das Ganze mit Hilfe der einfach verketteten Listen zu realisieren. Also ein Gatter wird beispielweise durch einen Listenelement dargestellt. Das problem ist hier aber das ein Listenelement ein Ausgang verfügt. Gatter eigentlich auch aber wenn dieses Gatter mit zwei Eingängen anderer Gatter verbunden wird, muss ja dieses Listenelement zwei Ausgänge haben. Also muss ich anscheinend jedes Listenelement mit mehreren Ausgängen machen.

Hat jemand eine Idee wie ich meine Datenstruktur einfacher realisieren könnte????

Eine Einschränkung habe ich bei diesem Projekt >>> Es darf nicht objectorientiert programmiert werden.

Danke im Voraus
Arthur

Moderiert von user profile iconNarses: überflüssige Leerzeilen entfernt
alzaimar
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2889
Erhaltene Danke: 13

W2000, XP
D6E, BDS2006A, DevExpress
BeitragVerfasst: Fr 19.09.08 18:56 
Eine verkettete Liste hat ja nur einen Verweis auf den einen Nachfolger bzw. Vorgänger. Du hast aber mehrere Verweise. Nimm doch einfach ein (dynamisches )Array, oder eine weitere Verkettete Liste.

_________________
Na denn, dann. Bis dann, denn.
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10183
Erhaltene Danke: 1256

W10ent
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Fr 19.09.08 18:56 
Moin und :welcome: im Forum!

user profile iconTherion hat folgendes geschrieben:
Eine Einschränkung habe ich bei diesem Projekt >>> Es darf nicht objectorientiert programmiert werden.
Darf ich mal fragen warum nicht und wer das festgelegt hat? :?

user profile iconTherion hat folgendes geschrieben:
mit Hilfe der einfach verketteten Listen zu realisieren.
[...]
Hat jemand eine Idee wie ich meine Datenstruktur einfacher realisieren könnte?
Mit einer einfachen Liste (je ein Nachfolger) wird das nix, das hast du ja schon selbst erkannt. ;) Vermutlich wirst du weiter kommen, wenn du einfach mehr als einen Nachfolger für jedes Listenelement erlaubst. :idea: Das ganze nennt man dann Baum. :)

Sollen auch Rückkopplungen erlaubt sein? Also so, dass der Ausgang eines Gatters wieder auf seinen Eingang zurückgeführt wird (ggfs. über andere Gatter)? Für den Anfang würde ich dir davon abraten, da das damit deutlich schwerer wird. :|

cu
Narses

_________________
There are 10 types of people - those who understand binary and those who don´t.
elundril
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 3747
Erhaltene Danke: 123

Windows Vista, Ubuntu
Delphi 7 PE "Codename: Aurora", Eclipse Ganymede
BeitragVerfasst: Fr 19.09.08 23:49 
user profile iconNarses hat folgendes geschrieben:
Moin und :welcome: im Forum!

user profile iconTherion hat folgendes geschrieben:
Eine Einschränkung habe ich bei diesem Projekt >>> Es darf nicht objectorientiert programmiert werden.
Darf ich mal fragen warum nicht und wer das festgelegt hat? :?


Das könnte eine böse auflage des Uniprof. aus der Vorlesung "logikorientiertes Programmieren" sein.

btw. Sorry, wegen OT.

lg elundril

_________________
This Signature-Space is intentionally left blank.
Bei Beschwerden, bitte den Beschwerdebutton (gekennzeichnet mit PN) verwenden.
Therion Threadstarter
Hält's aus hier
Beiträge: 4



BeitragVerfasst: Sa 20.09.08 13:53 
Hallo

Also erstmal bedanke ich mich bei allen für die Antworten.

Dieses Softwareprojekt muss ich prozedural programmieren, weil es uns der Prof. der FH so vorschreibt. Ein OOP Projekt kommt noch später auf mich zu ;)

Momentan denke ich einfach für jedes Element der Liste einen Element mit 5 Ausgänge zu machen (Next1, Next2, Next3, Next4, Next5). Jedes Element kriegt auch einen Typ (AND, OR, NOT, IN, OUT, CONTACT) Das Element CONTACT gilt als Verzweigung und benutzt dann mehrere Ausgänge. Für alle anderen Elemente reicht ein Ausgang völlig aus.

Ein Verzweigungelement ist sinnvoll wenn ich zB. zwei Gatterausgänge miteinander verbinde. Es wäre vielleicht noch sinnvoll die Anzahl der Ausgänge variabel zu halten.
Ich frage mich ob es den Speicher sparrt bzw. einfach realisierbar ist.

Arthur

Moderiert von user profile iconNarses: überflüssige Leerzeilen entfernt