Corso di Laboratorio di Informatica L-A
Appello d'Esame del 14 Gennaio 2002
Turno 1 - Compito A
È dato un file
di testo VENDITE.TXT
che contiene il resoconto delle vendite natalizie relativo ai 20 prodotti distribuiti
da un negozio di giocattoli, un prodotto per riga. Più precisamente,
ogni riga contiene, nell'ordine:
- descrizione
del prodotto (non
più di 50 caratteri, senza spazi intermedi)
- uno e un solo
spazio
- codice
del prodotto (numero intero)
- uno e un solo
spazio
- numero
di pezzi venduti (numero intero)
- uno e un solo spazio
- prezzo unitario
del prodotto (numero float)
Si
chiede di scrivere un programma C che, dopo aver definito una struttura giocattolo
nel modo appropriato rispetto a quanto specificato sopra:
- legga il resoconto
delle vendite dal file e lo metta in un array di giocattolo
di nome vendite;
[si mostri a video
l'array così costruito]
- a partire dal
vettore vendite,
costruisca una lista ordinata di interi i cui elementi sono
gli incassi dovuti a ciascun prodotto (incasso = numero pezzi
venduti * prezzo unitario), convertiti
in numero intero. Si supponga per semplicità che i dati siano tali
da non superare mai il range di rappresentazione del tipo int
in C;
[si visualizzi la lista
costruita]
- richieda all'utente
di inserire un numero intero che rappresenti la soglia minima
di incasso min;
- utilizzi una procedura
void visualizza(lista
l, int min), specificatamente progettata, che mostri a video
tutti gli elementi della lista minori della soglia min;
- (OPZIONALE) a partire
dall'array vendite
costruisca una ulteriore lista catalogo
di stringhe i
cui elementi sono le descrizioni di tutti i prodotti. Si implementi inoltre
una funzione lista
eliminaDoppi(lista l),
che elimini eventuali ripetizioni di descrizioni esattamente uguali
e la si invochi correttamente su catalogo.
La funzione deve restituire la lista passata come argomento e privata delle
eventuali ripetizioni.
E' possibile utilizzare
librerie C (ad esempio per stringhe) e si devono utilizzare le librerie sulle
liste presentate a lezione (list.h,
list.c,
element.h).