Corso di Laboratorio di Informatica L-A

Esame dell'11 luglio 2002

Compito 3







È dato un file di testo dispo.txt che contiene l'elenco degli ingredienti utilizzati nella cucina di un agriturismo  (si suppone siano in numero non superiore a 20), un ingrediente per riga. Più precisamente, ogni riga contiene, nell'ordine:

E' dato, inoltre, un secondo file neces.txt relativo alla quantita' necessaria degli ingredienti. Più precisamente, ogni riga contiene, nell'ordine:


Si chiede di scrivere un programma C che, dopo aver definito una struct ingredienti (relativa ai dati del file dispo.txt) e una seconda struct quantita (relativa al file neces.txt), nel modo appropriato rispetto a quanto specificato sopra:

  1. legga i dati degli ingredienti disponibili dal file dispo.txt e li memorizzi in un array di ingredienti di nome ingre_dispo;

  2. [si mostri a video l'array così costruito]
  3. legga i dati delle quantita' necessarie dal file neces.txt e li memorizzi in un array di quantita di nome ingre_neces;

  4. [si mostri a video l'array così costruito]
  5. a partire dal vettore ingre_neces, cerchi nel vettore ingre_dispo i codici corrispondenti agli ingredienti disponibili in quantita' inferiore al 50% di quella necessaria (cioe' quantita' disponibile < quantita' necessaria * 0.5) e, con tali codici, costruisca una lista di interi. Si chiami tale lista urgente;

  6. [si visualizzi la lista urgente]
  7. utilizzi una procedura void seleziona(list l), specificatamente progettata, che chieda all'utente di introdurre un codice e stampi a video tutti gli elementi della lista diversi da tale codice.

  8. [si visualizzino i risultati dell'invocazione della procedura sulla lista seleziona]
  9. FACOLTATIVO. A partire dal vettore ingre_dispo, si costruisca una lista (ordinata in ordine crescente di codice) i cui elementi sono i record del vettore ingre_dispo. Si chiami tale lista lista_ingre_dispo.

  10. [si visualizzi la lista lista_ingre_dispo]
E' possibile utilizzare librerie C (ad esempio per stringhe) e si devono utilizzare le librerie sulle liste presentate a lezione (list.h, list.c, element.h).