Corso di Programmazione - Prova Pratica - Primo Appello - 25 gennaio 2002 - prova 114

L'esame di oggi ha a che fare con spettacoli di un Teatro e tessere di abbonamento.

Il tipo enumerazione Genere rappresenta le diverse tipologie di spettacolo: opera, concerto, commedia, tragedia.

Gli elementi del tipo record Spettacolo rappresentano i singoli spettacoli, caratterizzati dal titolo, dal genere, e dal numero di repliche previste.

Il tipo ListaSpettacoli è una lista semplice di Spettacoli.

Un valore di tipo Tessera è un array di stringhe: i suoi elementi sono i titoli degli N spettacoli per i quali lo spettatore in possesso di tale abbonamento ha diritto all'accesso gratuito.

	typedef enum Genere {opera, concerto, commedia, tragedia} Genere;
typedef struct {char* titolo; Genere genere; int repliche;} Spettacolo;
typedef struct ListaSpettacoli {Spettacolo spettacolo;
struct ListaSpettacoli *prossimo;} ListaSpettacoli; typedef char* Tessera[N];

Implementare le seguenti procedure:

  1. ListaSpettacoli* Specializza(ListaSpettacoli* s, Genere g);

    Questa funzione restituisce una nuova lista di tipo ListaSpettacoli, che contiene solo gli spettacoli della lista s passata come parametro attuale che appartengono al genere g.



  2. int Conta_serate(Tessera t, ListaSpettacoli* lista);

    Questa funzione deve restituire il numero totale di repliche degli spettacoli presenti nella tessera t. L'informazione relativa al numero di repliche per ogni spettacolo va cercata in lista (se lo spettacolo non è presente, il numero di repliche di quello spettacolo sarà ovviamente 0).



Per consegnare la prova, utilizzare la procedura di consegna delle esercitazioni usata durante il corso, come se fosse l'esercitazione 114, inserendo tutte e sole le procedure realizzate da voi in un unico esercizio.