Corso di Programmazione - Prova Pratica - Secondo Appello - 13 febbraio 2002 - prova 126

L'esame di oggi ha a che fare con le Olimpiadi invernali di Salt Lake City.

Il tipo enumerazione Sport rappresenta le diverse discipline sportive: fondo, slittino, discesa, pattinaggio.

Il tipo enumerazione Nazione rappresenta i diversi paesi di provedinenza : Italia, Usa, Germania, Austria, Canada.

Il tipo enumerazione Medaglia rappresenta le tre medaglie attribuibili in ogni specialità: oro, argento, bronzo.

Gli elementi del tipo record Atleta rappresentano i singoli atleti, caratterizzati dal numero di pettorale, dalla nazione di provenienza, dallo sport praticato, e dalla posizione in classifica (1 se ha vinto, 2 se e' arrivato secondo, eccetera. 0 rappresenta il fatto che non ha ancora disputato la gara).

Il tipo ListaAtleti è una lista semplice di Atleti.

Il tipo Medagliere è un array bidimensionale di interi: se m è una variabile di tipo Medagliere che rappresenta lo stato dell'attribuzione delle medaglie, la cella m[oro][Usa] conterrà il numero di medaglie d'oro conquistate dalla squadra statunitense.

	typedef enum Sport {fondo, slittino, discesa, pattinaggio} Sport;
	typedef enum Nazione {Italia, Usa, Germania, Austria, Canada} Nazione;
	typedef enum Medaglia {oro, argento, bronzo} Medaglia;

typedef struct {int pettorale; Sport sport; Nazione nazione; int posizione;} Atleta;
typedef struct ListaAtleti {Atleta atleta;
struct ListaAtleti *prossimo;} ListaAtleti; typedef int Medagliere[3][5];

Implementare le seguenti procedure:

  1. ListaAtleti* unisci(ListaAtleti* squadra1, ListaAtleti* squadra2);

    Questa procedura deve restituire l'indirizzo della lista ottenuta aggiungendo in coda alla lista squadra1 tutti gli atleti presenti nella lista squadra2.



  2. void stampa_medaglie_nazione(Medagliere m, Nazione n);

    Questa procedura deve produrre sullo standard output una rappresentazione completa della situazione del medagliere m relativa alla nazione n.


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