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

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

Il tipo enumerazione Genere rappresenta le diverse tipologie di film: per_bambini, vietato_ai_minori, impegnato, thriller.

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 film, di lunghezza N fissata: al momento dell'acquisto dell'abbonamento, l'abbonato deve fissare gli N film della stagione per i quali ha diritto all'accesso gratuito.

	typedef enum Genere {per_bambini, vietato_ai_minori, impegnato, thriller} Genere;
typedef struct {char* titolo; Genere genere; int durata;} Film;
typedef struct Stagione {Film film;
struct Stagione *prossimo;} Stagione; typedef Film Abbonamento[N];

Implementare le seguenti procedure:

  1. void Seleziona(Stagione* s, Abbonamento abb, Genere g);

    Questa procedura deve selezionare i primi N film di genere g presenti nella stagione s (che è una lista) ed assegnarli agli elementi della tabella abb. Se nella lista s sono presenti meno di N film di genere g, la procedura deve produrre un messaggio di errore sullo standard output..



  2. void Stampa_a(Abbonamento a);

    Questa funzione deve produrre una rappresentazione completa sullo standard output dei film associati al valore di tipo Abbonamento passato come parametro attuale.


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