Corso di Fondamenti di Informatica - A.A. 2000/2001
Corso di Laurea in Ingegneria Elettronica (V.O. e N.O.) e
Ingegneria delle Telecomunicazioni (V.O.)

Appello del 20 settembre 2001 (recupero) - 1a prova scritta

tempo a disposizione: 2 ore

Problema 1 (18 punti)

In vista dell'introduzione dell'Euro, un supermercato decide di aggiornare il suo magazzino immettendo i nuovi prezzi in Euro per tutti i suoi prodotti. I prodotti sono memorizzati in una struttura come in figura: una tabella contiene le categorie merceologiche (in numero pari a 100), espresse come sequenze di 6 caratteri, ciascuna collegata ad una lista che contiene i prodotti che appartengono a quella categoria. Ogni lista contiene il codice del prodotto (4 caratteri), il suo prezzo in lire e un campo destinato al prezzo in Euro (inizialmente inizializzato a 0). Si tenga presente che per qualcuna delle categorie merceologiche la lista di prodotti potrebbe essere vuota.

  1. Descrivere le strutture di dati necessarie per rappresentare il magazzino e risolvere i due punti seguenti. Le liste devono essere rappresentate mediante strutture / record e puntatori.
  2. Scrivere una o pił funzioni C / funzioni o procedure Pascal tali che, dato in input il magazzino rappresentato come in figura, inserisca i prezzi in Euro negli appositi campi. (1 Euro = 1936.27 Lire).
  3. Scrivere una o pił funzioni C / funzioni o procedure Pascal che, dato in input il magazzino come restituito al punto 2, costruisca una lista, rappresentata tramite strutture / record e puntatori, che contenga i prezzi medi in Euro per ciascuna categoria merceologica. Le categorie merceologiche per le quali non vi è alcun prodotto non devono comparire nella lista. La lista deve essere ordinata in modo crescente rispetto al prezzo, e ogni elemento deve contenere la categoria merceologica, il prezzo medio in Euro e un puntatore all'elemento successivo.