===== File: doping.txt ===== ============================================================================ Esercizio di esame dell'appello del 11/9/1998 (per la versione Pascal) ============================================================================ La Societa` Sportiva Olimpia dispone di un archivio in cui memorizza i farmaci che vengono assunti da ciascun atleta. L'archivio, realizzato attraverso strutture dati C in memoria centrale, consiste di un vettore di 22 componenti, ciascuna delle quali e` costituita da una struttura in cui sono memorizzati: - la matricola dell'atleta (un intero) ed - il puntatore ad una lista, rappresentata mediante strutture e puntatori, i cui elementi sono costittuiti da: - la sigla del farmaco (una stringa di al piu` 12 caratteri); - la data 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 in cui sono memorizzate le nuove informazioni. In particolare, ogni riga del file e` costituito da tre campi, separati da uno spazio, rispettivamente: - la sigla del farmaco (una striga di al piu` 12 caratteri); - una cifra intera 0 o 1, ad indicare se il farmaco e` vietato (cifra 0) o ammesso (cifra 1); - la data a partire dalla quale il farmaco e` vietato o ammesso, a seconda dei casi, rappresentata nel formato GG-MM-AA. (1) Definire i tipi di dato C adeguati a risolvere i problemi di cui ai successivi punti (2) e (3). (2) Scrivere una funzione C che, dati come parametri l'archivio degli atleti della Societa` Olimpia ed il nome del file contenente le nuove informazioni sui farmaci vietati o ammessi, elimini dall'archivio tutte le prescrizioni dei farmaci vietati avvenute NON ANTERIORMENTE alla data del divieto. (3) Scrivere una funzione C che, dato come parametro il nome del file con le nuove informazioni sui farmaci, 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.DAT. In fig.(c) e` mostrato l'archivio dopo l'esecuzione della funzione richiesta al punto (2), ed in fig.(d) la lista fornita dalla funzione di cui al punto (3). Figura (a) Figura (c) +----+---+ +----+---+ | 12 | ----> Y, 30/3/97 ---> Z, 31/7/98 / | 12 | / | +----+---+ +----+---+ | 5 | / | | 5 | / | +----+---+ +----+---+ | 39 | ----> Z, 30/6/98 / | 39 | ----> Z, 30/6/98 / +----+---+ +----+---+ | 21 | / | | 21 | / | +----+---+ +----+---+ | 16 | / | | 16 | / | +----+---+ +----+---+ | 87 | ----> Z, 1/7/98 ---> T, 31/8/98 / | 87 | ----> T, 31/8/98 / +----+---+ +----+---+ Figura (b) Figura (d) Z 0 01-07-98 X, 1/1/98 ---> S, 30/6/98 / X 1 01-01-98 S 1 30-06-98 Y 0 01-01-97 R 1 01-01-98