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%)