Corso di Laboratorio di Informatica L-A

Appello d'Esame del 14 Gennaio 2002

Turno 2 - Compito A




È dato un file di testo TAVOLI.TXT che contiene informazioni sui tavoli di una birreria, un tavolo per riga. Più precisamente, ogni riga contiene, nell'ordine:

Si chiede di scrivere un programma C che, dopo aver definito una struttura tavolo nel modo appropriato rispetto a quanto specificato sopra:
  1. legga i dati dal file e metta in un array di tavolo di nome prenotati soltanto i record relativi ai tavoli prenotati;

  2. [si mostri a video l'array così costruito]
  3. a partire dal vettore prenotati, costruisca una lista di interi i cui elementi sono i posti dei tavoli del vettore.

  4. [si visualizzi la lista costruita]
  5. richieda all'utente di inserire un numero intero che rappresenti  il numero minimo di posti di un tavolo min;
  6. utilizzi una funzione double frazione(lista l, int min), specificatamente progettata, che restituisca la frazione dei tavoli della lista con un numero di posti maggiore o uguale a min;
  7. (OPZIONALE) a partire dall'array prenotati costruisca un'ulteriore lista di strutture (i cui campi sono il codice del tavolo e il numero di posti). Si progetti una procedura  void stampa_tavoli(list l, int nposti), che visualizzi il codice dei tavoli con un numero di posti inferiore a nposti.
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).