Corso di Laboratorio di Informatica L-A
Appello d'Esame del 14 Gennaio 2002
Turno 1 - Compito B
È 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 che giacciono in magazzino (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:
- richieda
all'utente di inserire un numero intero resti;
- legga il resoconto
delle vendite dal file e ne metta gli elementi in un array di giocattolo
di nome grandiResti,
se e solo se il numero di pezzi rimasti in magazzino di quel
prodotto è maggiore di resti;
[si mostri a video
l'array così costruito]
- a partire dal
vettore grandiResti,
costruisca una lista ordinata di interi i cui elementi sono
il numero di pezzi venduti per ogni prodotto. Si
supponga che il negozio avesse inizialmente un numero uguale NUM=2000
di pezzi di ogni prodotto;
[si visualizzi la
lista costruita]
- utilizzi una funzione
float mediaVenduti(lista
l), specificatamente progettata, che restituisca il valore
medio aritmetico degli elementi della lista, ottenuto scartando
l'elemento più grande. Il programma principale stampi inoltre
a video tale valore medio;
- (OPZIONALE) costruisca
una ulteriore lista l2
di strutture in cui ogni elemento è
una struttura contenente due campi, la descrizione del prodotto ed il suo
codice.
Appartengano alla lista l2
i soli elementi di grandiResti
il cui valore dei pezzi giacenti in magazzino (numero pezzi
* prezzo unitario) è superiore ad un numero intero valore
richiesto dinamicamente all'utente. Sia inoltre la lista
l2
ordinata in base al campo codice.
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).