Compito di Fondamenti di Informatica

18 Settembre 2000

La societa’ autostrade ha deciso di informatizzare la gestione dei pedaggi come segue:

In ingresso: sono presenti piu’ caselli, ciascuno dei quali gestisce le auto in transito tenendo memoria della targa dell’autoveicolo e dell’orario di ingresso. Le informazioni acquisite vengono temporaneamente immagazzinate in un buffer per ogni casello. Un processo P esegue periodicamente un polling dei buffer di tutti i caselli, provvedendo a svuotare interamente ciascun buffer. I dati scaricati vanno inseriti in maniera ordinata all’interno di una struttura dati di tipo lista condivisa.

In uscita: sono presenti piu’ caselli, ciascuno dei quali gestisce le auto in transito estraendo dalla lista condivisa il record identificato dal numero di targa dell’autoveicolo. La tariffazione viene calcolata valutando in maniera lineare il costo in base al chilometraggio percorso. Il costo base è di 70 Lire/Km. La velocita’ media consentita è di 100 Km/h. Una segnalazione all’ufficio di polizia viene effettuata se per un dato autoveicolo viene riscontrata una velocita’ media superiore al valore limite consentito.

Si assuma che il tratto di autostrada interessato abbia N caselli ciascuno con un numero di caselli I di ingresso ed O di uscita. Si stabilisca opportunamente la distanza tra i diversi caselli autostradali Si assumi l’esistenza di una funzione time( ) che restituisce l’ora corrente nel formato hh:mm:ss. Si definiscano la struttura dati e tutte le funzioni che permettono di risolvere il quesito posto effettuandone la codifica in linguaggio C.