Universität Ulm -Sektion Angewandte Informationsverarbeitung
12. + LETZTES Übungsblatt (02.02.00 bis 09.02.00)
zur Vorlesung Allgemeine Informatik I (WS 99)
Aufgabe 1 (10 Punkte)
Nachdem Sie die Supermarktdaten
erfolgreich nach Cash-Cows (Kunden mit häufiger Einkaufsfrequenz)
durchwühlt haben, bittet Sie ihr Freund um einen letzten Gefallen:
Sie sollen nun die häufigste Produktkombination in den Einkaufskörben
ermitteln, also das Produktpaar (p1, p2), das am häufigsten gemeinsam
bei einem Einkauf gekauft wurde. (Die Häufigkeit bitte als relative
Angabe in Prozent ausgeben.)
Ihr Freund spielt Ihnen einige Informationen aus der Informatik-Abteilung
des Supermarktes zu. Den Papieren entnehmen Sie, dass nicht mehr als 2000
Transaktionen pro Transaktionendatei kommen und es am besten ist, alle
Transaktionen in Records
abzulegen. Ein Record für eine Transaktion (eine Transaktion = ein
Einkaufskorb = "Basket") kann wie folgt aussehen:
TYPE Basket = RECORD OF
cid: INTEGER;
(* Kundennummer *)
items: ARRAY maxitems
OF INTEGER; (* Produkte *)
numofprod: INTEGER;
(* Anzahl Produkte in Transaktion *)
END;
Die Struktur leuchtet Ihnen sofort ein und Sie versprechen, Sie unbedingt in Ihrem Programm zu verwenden.
Schreiben Sie das passende Oberon-Programm, das die Produktnummern der häufigsten Produktkombination sowie deren relative Einkaufshäufigkeit ausgibt, und testen Sie das Programm mit den Daten vom letzten Übungsblatt.
(Tipp: die maximale relative Häufigkeit beträgt 8%)