Bei komplexen core Strukturen sind manchmal abstrakte DatenTYPEN wie eine Liste, Stack, Ring oder gar ein Baum vorteilhaft.
Es gibt eine Implementation im Ensemble MONARK.
Mich würden einfache Beispiele interessieren, wie man in Core zum Beispiel eine Liste erstellt.
Das Zeigerprinzip ist mir klar, doch wie man es am einfachsten realisiert noch nicht.
Hat jemand Interesse, daran zu mit zu arbeiten?
Hier ist Literatur z.B.
verkettete Liste (wikipedia)
Baum (wikipedia)
http://www.u-helmich.de/inf/BlueJ/kurs1 ... liste.html
ciao herw
ABSTRAKTE DATENTYPEN (ADT)
Moderator: herw
- herw
- moderator
- Beiträge: 3123
- Registriert: 13. März 2006, 18:28
- Wohnort: Dortmund
-
- user
- Beiträge: 28
- Registriert: 5. November 2009, 21:50
Re: ABSTRAKTE DATENTYPEN (ADT)
Hi herw,
langsam habe ich Blut gelckt.
Was willste denn machen?
Vielleicht lerne ich noch was dabei.
Gruß
Ette
langsam habe ich Blut gelckt.
Was willste denn machen?
Vielleicht lerne ich noch was dabei.
Gruß
Ette
- herw
- moderator
- Beiträge: 3123
- Registriert: 13. März 2006, 18:28
- Wohnort: Dortmund
Re: ABSTRAKTE DATENTYPEN (ADT)
Nun wie der Zufall so will, habe ich mich gerade heute wieder mit dem Problem beschäftigt. Ich habe persönliche Erläuterungen von Max und steige so langsam durch. Ich möchte die aktuell gewählten Pitchwerte eines Akkords abrufen und zwar in der Reihenfolge, in der sie eingegeben wurden und dann für einen Arpeggiator abrufen.ettette hat geschrieben:Hi herw,
langsam habe ich Blut gelckt.
Was willste denn machen?
Vielleicht lerne ich noch was dabei.
Gruß
Ette
Das Prinzip, wie die Zeiger verwaltet werden habe ich zu 90% verstanden. Es handelt sich um eine doppelt verkettete Liste; das ist mir bekannt von TurboPascal und damit kenne ich mich aus; ich muss nur noch wissen, wo der Kopf der Liste ist und dann die Zeiger entlang laufen.
ciao herw
-
- user
- Beiträge: 28
- Registriert: 5. November 2009, 21:50
Re: ABSTRAKTE DATENTYPEN (ADT)
Aber wie willst du die Verkettung realisieren?
Mit mehreren Arrays?
Eins für den Wert (Float) eins für den Zeiger nach vorne (int) und eins für den nach hinten(int)?
Liebe Grüße Ette
Mit mehreren Arrays?
Eins für den Wert (Float) eins für den Zeiger nach vorne (int) und eins für den nach hinten(int)?
Liebe Grüße Ette
- herw
- moderator
- Beiträge: 3123
- Registriert: 13. März 2006, 18:28
- Wohnort: Dortmund
Re: ABSTRAKTE DATENTYPEN (ADT)
Die Verkettung ist einfach. Das geht genauso wie in allen Programmiersprachen: jedes Listenelement, den so genannten Knoten, besteht aus drei Komponenten, dem eigentlichen Wert und zwei Zeigern pre und post, die auf den Index des vorangegangenen und folgenden Listenelements verweisen.ettette hat geschrieben:Aber wie willst du die Verkettung realisieren?
Mit mehreren Arrays?
Eins für den Wert (Float) eins für den Zeiger nach vorne (int) und eins für den nach hinten(int)?
Liebe Grüße Ette
Wenn ich also zum Beispiel die gehaltenen Noten registrieren möchte, dann sind das maximal 128 (von 0 bis 127) Werte. Also brauche ich ein Feld mit 3·128=384 Elementen und einen Zeiger auf das erste Feld. Das Array enthält also 385 Elemente.
Da ich einen Arpeggiator bauen möchte, werden alle Operationen durch den MIDI-Note/Gate-Event getaktet (Registrierung der gehaltenen Noten). Die Abfrage der Werte geschieht dann durch die Clock. Soweit habe ich das auch durchschaut. Wie gesagt, ich muss die Ausführungen von Max erst einmal selbst verstehen. Wenn du MONARK besitzt, dann kannst du die Realisierung im Makro „note list” wiederfinden. Es gibt dort zwei Felder, das eine (ein Stack) verwaltet nur die freien Indizes, das andere ist die eigentliche verkettete Liste. Das ist natürlich der speziellen Anwendung in MONARK geschuldet und muss für meine Bedürfnisse angepasst werden.
Wenn du dir dieses Makro genauer ansiehst (Analyse in einem extra-Programm, in dem du die Felder von außen durch eine Iteration jeweils abfragen und in den ACEW übertragen kannst), dann steigst du nach und nach durch, was passiert. In dem Stadium bin ich gerade. Die Ausführungen von Max sind relativ umfangreich. Wenn ich alles beherrsche, werde ich mal darüber schreiben.
ciao herw
Links:
http://www.saar.de/~awa/data/ADT_Liste_Klasse11.pdf
http://www.u-helmich.de/inf/BlueJ/kurs1 ... ite14.html
http://dbs.uni-leipzig.de/skripte/ADS1/PDF2/kap3.pdf
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.