Universität Ulm - Abteilung Angewandte Informationsverarbeitung
Die Handelskette Liddl verkauft Ihre Artikel nur in den Farben rot, grün
und blau. Jede Filiale hat im Sortiment mehrere Artikel, aber ein bestimmter
Artikel wird nur in genau einer Filiale verkauft; d.h. jeder Artikel ist
genau einer Filiale zugeordnet (die Umkehrung gilt natürlich nicht).
Beispiel für 10 Artikel:
Der Chef von Liddl möchte nun wissen wieviele rote, grüne bzw. blaue Artikel insgesamt verkauft werden und wieviele Artikel welche Filiale anbietet (siehe Zusatzaufgabe). Außerdem ist er interessiert wieviele Artikel in allen seinen Filialen verkauft werden.
Folgende Datenstruktur bietet sich für Liddl an:
Teilaufgabe a:
Legt zuerst einen Record für Head und einen Record für die Artikel mit
den entsprechenden Zeigern an (Initprozedur) und erzeugt mit einem
Zufallsgenerator die Artikel (zu einem Artikel gehören die ID, die
Farbe, die Filiale und die Zeiger next, farbe und ort, wie in
Abbildung 1 gezeigt).
Tip:
Ein Array mit 4 Filialen(Ulm, Neu-Ulm, Blaubeuren, Erbach) und ein Array mit den 3 Farben (rot, grün, blau) anlegen. Wenn dann ein neuer Artikel erzeugt wird, kann per Zufall auf einfache Art und Weise eine Filiale sowie eine Farbe bestimmt werden! Prüft danach, ob die Erzeugung der Artikel korrekt funktioniert!
Teilaufgabe b:
Der Aufbau der Liste sollte dann in einer extra Prozedur (z.B. Insert)
erfolgen. Verwendet dabei nur die Zeiger first und next. (Die Zeiger
rot, grün, blau, farbe und ort erstmal außer acht lassen). Achtung:
Beim Aufbau der Liste nicht vergessen die Artikel gleich mit zu zählen.
In einer Prozedur Ausgabe soll dann die einfach verkettete Liste
(also die Artikel und ihre Eigenschaften) ausgegeben werden.
Teilaufgabe c:
Im letzten Schritt müßt Ihr dann die Prozedure Insert so modifizieren, daß
alle Artikel mit der gleichen Farbe verknüpft werden. Anschließend
sollen die Artikel nach Farben geordnet ausgegeben werden.
Legt eine weitere Liste an, in der die Orte der Filialen gespeichert werden können und deren Einträge auf die Artikel zeigen, bei denen erstmals neue Orte auftreten. Der Ortszeiger eines Artikels soll dann natürlich auf einen Artikel, der am gleichen Ort verkauft wird, ,,weiter`` zeigen.
Viel Erfolg!