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

L'esame di oggi ha a che fare con film e tessere cinematografiche.

Il tipo enumerazione Genere rappresenta le diverse tipologie di film: cartoon, vm18, commedia, azione.

Gli elementi del tipo record Film rappresentano i singoli film, caratterizzati dal titolo, dal genere, e dalla durata (in minuti).

Il tipo Stagione è una lista semplice di Film.

Il tipo Abbonamento è un array di lunghezza N fissata. Un valore di tipo Abbonamento è un array di stringhe: i suoi elementi sono i titoli degli N film della stagione per i quali lo spettatore in possesso di tale abbonamento ha diritto all'accesso gratuito.

	typedef enum Genere {cartoon, vm18, commedia, azione} Genere;
typedef struct {char* titolo; Genere genere; int durata;} Film;
typedef struct Stagione {Film film;
struct Stagione *prossimo;} Stagione; typedef char* Abbonamento[N];

Implementare le seguenti procedure:

  1. Stagione* resto(Abbonamento abb, Stagione* s);

    Questa funzione restituiscel'indirizzo di una nuova lista che contiene i film della stagione s che non sono presenti nell'abbonamento abb.

  1. void stampa_g(Stagione* s, Genere g);

    Questa funzione deve essere definita in modo ricorsivo, e deve produrre una rappresentazione completa sullo standard output dei film presenti nella lista s passata come parametro attuale che appartengono al genere g.



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