Corso di Laboratorio di Informatica L-A

Appello d'Esame del 14 Gennaio 2002

Turno 2 - Compito B




È 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 liberi soltanto i record relativi ai tavoli non prenotati;

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

  4. [si visualizzi la lista costruita]
  5. richieda all'utente di inserire due numeri interi che rappresentano  il numero minimo e massimo di posti di un tavolo min, max;
  6. utilizzi una funzione int conta(lista l, int min, int max), specificatamente progettata, che restituisca il numero dei tavoli della lista con un numero di posti compreso nell'intervallo [min,max];
  7. (OPZIONALE) a partire dall'array liberi costruisca un'ulteriore lista di strutture (i cui campi sono il codice del tavolo e il numero di posti). Si progetti una procedura  void filtra(list l, int min, int max), che elimini dalla lista i tavoli con un numero di posti compreso nell'intervallo [min,max].
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).