Salta ai contenuti. | Salta alla navigazione

Strumenti personali

8 marzo 2011

FONDAMENTI DI INFORMATICA (Moduli A+B) (tempo 3h) – 8 Marzo 2011

 

Esercizio n. 1 (punti 16)

 

Al fine di evitare costosi ricoveri in ospedale, l'azienda ospedaliera ha deciso di mandare le infermiere a casa dei pazienti che hanno bisogno di cure semplici. L'azienda ha un file di testo visite.txt che contiene le visite che verranno effettuate durante la settimana (al massimo 100); per ogni visita si hanno:

  • Paziente: nome del paziente. Dato di tipo stringa contenente al più 20 caratteri, senza spazi.
  • Infermiera: nome dell'infermiera che visiterà il paziente. Dato di tipo stringa con al più 20 caratteri, senza spazi
  • Giorno: Numero intero che rappresenta il giorno della settimana in cui avviene la visita (da 1 per lunedì, a 7 per domenica);

 

Si scriva un programma C che:

  1. A partire dal file, crei un albero binario di ricerca T in memoria centrale (supponendo che la memoria heap sia sufficiente) che riporta il contenuto del file, ordinato sul campo Paziente e a parità di paziente ordinato sul campo Giorno; la funzione del punto 1) riceve il puntatore a file, e restituisce l'albero creato - un puntatore di tipo tree – (ed eventuali altri parametri a vostra scelta);
  2. Accedendo all'albero T, si crei un array V di strutture che riporta, per ogni struttura, solo nome del Paziente e Giorno di visita (si crei V in modo che sia ordinato sul campo Paziente e a parità di Paziente sul campo Giorno); la funzione al punto 2) riceve il puntatore T e l'array V (ed eventuali altri parametri a vostra scelta);
  3. Accedendo all'array V, determinare qual è il paziente che riceve più visite nella settimana e stamparne nel file paziente.txt il nome; la funzione al punto 3) riceve l'array e il puntatore al file aperto in uscita.

 

È possibile utilizzare librerie C (ad esempio per le stringhe). Nel caso si strutturi a moduli l'applicazione qualunque libreria utente va riportata nello svolgimento.

Facoltativo (4 punti)

Poiché è preferibile che un paziente venga visitato sempre dalla stessa infermiera, o, al limite, da poche infermiere diverse, diventa importante sapere qual è il paziente che viene visitato da più infermiere diverse.

Si modifichi il programma in modo tale da visualizzare

  • il nome del paziente che viene visitato da più infermiere diverse
  • il numero di infermiere diverse che visitano tale paziente.

Si strutturi l'applicazione su più file; i file devono essere almeno i seguenti:

  • un file funzioni.c che contiene le funzioni comuni alle due versioni (esercizio base e facoltativo)
  • un file main.c che contiene il main e le funzioni usate solo nell'esercizio base
  • un file facoltativo.c che contiene il main e le funzioni usate solo nell'esercizio facoltativo

Si consegnino tutti i file .c più tutti i file header ritenuti necessari.