Corso di Laboratorio di Informatica L-A
Appello d'Esame del 14 Gennaio 2002
Turno 1 - Compito D
È 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 valoreResti;
- legga il resoconto
delle vendite dal file e ne metta gli elementi in un array di giocattolo
di nome piccoliResti,
se e solo se il valore dei pezzi rimasti (numero pezzi magazzino
* prezzo unitario) in magazzino di quel prodotto è maggiore
di valoreResti;
[si mostri a video
l'array così costruito]
- a partire dal
vettore piccoliResti,
costruisca una lista ordinata di interi i cui elementi sono
il numero di pezzi che giacciono in magazzino per ogni prodotto;
[si visualizzi la
lista costruita]
- utilizzi una funzione
double
mediaRimasti(lista l), specificatamente progettata, che
restituisca il valore medio aritmetico degli elementi della
lista, ottenuto scartando l'elemento più piccolo e 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, il codice del prodotto e
la sua descrizione.
Appartengano alla lista l2
i soli elementi di piccoliResti
la cui descrizione ha lunghezza inferiore ad un numero intero
lung
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).