Università degli Studi di Roma "La Sapienza"

Facoltà di Ingegneria

Corso di Fondamenti di Informatica

Corso di laurea: Ambiente e Territorio

14 aprile 2000

(Riservato agli iscritti al 5° anno nel 1998/99 o in anni precedenti)

1ª prova - tempo a disposizione: 120 minuti

 

Problema 1 (18 punti)

Un appassionato di calcio gestisce le informazioni relative ad un campionato di calcio (18 squadre) in un file (binario) di strutture, in cui ciascuna struttura è associata ad una squadra e contiene le seguenti informazioni:

Denominiamo, per comodità, un file di tale tipologia file di squadre.

Come è noto, in base ai regolamenti attuali, vengono attributi alle squadre, ai fini della classifica, 3 punti per la vittoria, 1 punto per il pareggio e 0 punti per la sconfitta.

Con riferimento al linguaggio ANSI C, si richiede di risolvere i seguenti punti:

  1. Definire i tipi e le eventuali variabili globali necessarie per risolvere i successivi punti 2 e 3. Qualora vengano usate variabili globali è necessario motivare adeguatamente la scelta.
  2. Scrivere una funzione (o più) che, ricevendo come parametro il nome con cui è stato memorizzato un file di squadre, calcoli e restituisca il nome della squadra che guida la classifica corrente. A parità di punteggio, si scelga la squadra con migliore differenza reti. A parità di punteggio e differenza reti, si scelga arbitrariamente una delle squadre.
  3. Scrivere una funzione (o più) che, ricevendo come parametro il nome con cui è stato memorizzato un file di squadre, costruisca, restituendola, una lista collegata (strutture e puntatori) in cui ciascun elemento, costituito da tre campi, è associato ad una squadra avente differenza reti (reti segnate meno reti subite) migliore o pari a quella della squadra che guida attualmente la classifica. I campi sono utilizzati per memorizzare il nome della squadra, la sua differenza reti ed il puntatore all'elemento successivo nella lista.

 

N.B. Nel risolvere i punti di cui sopra tenere presente che: