Università di Roma La Sapienza

Corso di Fondamenti di Informatica

Facoltà di Ingegneria

Ambiente e Territorio

Appello dell' 11-9-1998

Esercizio 1 (18 punti)

La Società Sportiva Olimpia dispone di un archivio in cui memorizza i farmaci che vengono assunti da ciascun atleta. L'archivio, realizzato in C, consiste di un array di 22 componenti, ciascuna delle quali è costituita da una struttura in cui sono memorizzati la matricola dell'atleta (un intero) ed il puntatore ad una lista collegata, rappresentata mediante strutture e puntatori, i cui elementi sono costituiti da: sigla del farmaco (una stringa di 12 caratteri), data (una stringa con formato GGMMAA) della prescrizione della terapia. La Commissione Nazionale Antidoping ha aggiornato l'elenco delle sostanze vietate. In particolare, ha vietato alcune sostanze che precedentemente erano ammesse ed ha ammesso alcune sostanze che erano vietate. La Commissione ha prodotto, e distribuito su floppy disk, un file di testo NODOPING.TXT in cui sono memorizzate le nuove informazioni. In particolare, nel file è presente una riga per ogni farmaco e ciascuna riga contiene le informazioni sul relativo farmaco nel seguente formato: la sigla del farmaco (una stringa di 12 caratteri), una cifra intera 0 o 1, ad indicare se il farmaco è vietato (cifra: 0) o ammesso (cifra: 1) e la data (una stringa con formato GGMMAA) a partire dalla quale il farmaco è vietato o ammesso, a seconda dei casi. Si può assumere che tali informazioni siano separate nel file tramite il carattere ' '.

  1. Definire i tipi di dato C adeguati a risolvere i problemi di cui ai successivi punti 2) e 3).
  2. Scrivere una funzione (o più) C che, dati come parametri l'archivio degli atleti della Società Olimpia ed il file NODOPING.TXT, elimini dall'archivio tutte le prescrizioni dei farmaci vietati avvenute non anteriormente alla data del divieto.
  3. Scrivere una funzione (o più) C che, dato come parametro il file NODOPING. TXT, costruisca e fornisca in uscita la lista, rappresentata mediante strutture e puntatori, di tutti i farmaci ammessi, unitamente alle date di ammissione.

Esempio.

Si consideri in fig. (a) l'archivio di atleti ed in fig. (b) il file NODOPING.TXT. In fig. (c) è mostrato l'archivio dopo l'esecuzione della procedura richiesta al punto 2), ed in fig. (d) la lista fornita dalla procedura di cui al punto 3).

 

 

 

 

 

 

 

(a) (c)

Z

0

01-07-98

X

1

01-01-98

S

1

30-06-98

Y

0

01-01-97

R

0

01-01-98

eof

(b)

 

 

(d)