Concetti Chiave

  • Le strutture dati per rappresentare le partite includono il nome delle squadre e i relativi goal, mentre la classifica gestisce i nomi delle squadre e i punti accumulati.
  • La funzione risultato() determina il vincitore della partita, restituendo 1 per la vittoria della squadraA, -1 per quella della squadraB e 0 in caso di pareggio.
  • La funzione giornata() aggiorna i punteggi delle squadre basandosi sui risultati delle partite, assegnando 3 punti per vittoria e 1 punto per pareggio.
  • È necessario implementare la funzione cercaSquadra() per supportare la modifica dei punteggi all'interno della funzione giornata().
  • Tutti i record devono essere passati per indirizzo, evidenziando l'importanza della gestione della memoria nelle funzioni implementate.

Definizione delle strutture dati

Siano date le seguenti strutture dati per rappresentare il tipo di dato partita contenente il nome della squadraA e della squadraB, il numero di goal della squadraA e il numero di goal della squadraB e il tipo di dato classifica (contenente un array con i nomi delle squadre e un array di interi rappresentante i punti conseguiti dalla varie squadre)

#define MAX_SQUADRE 18

#define DIM_STR 21

typedef struct {

char squadraA[DIM_STR];

char squadraB[DIM_STR];

int goalSqA, goalSqB;

}partita;

typedef struct {

char squadre[MAX_SQUADRE][DIM_STR];

int punti[MAX_SQUADRE];

}classifica;

Utilizzando le strutture dati così dichiarate si implementino le seguenti funzioni:

Implementazione della funzione risultato

(a) risultato() che riceve in ingresso una partita e restituisce 1 in caso di vittoria della sqaudraA, -1 in caso di vittoria della squadraB e 0 in caso di pareggio;
(b) giornata() che riceve in ingresso un array di 9 partite e un parametro di tipo classifica contenente i nomi delle squadre e i punti conseguiti nelle precedenti giornate di campionato. La funzione deve modificare opportunamente i punteggi delle squadre sulla base dei risultati delle partite (si ricordi che in caso di vittoria vengono assegnati 3 punti alla squadra vincente e 0 alla perdente mentre in caso di pareggio viene assegnato un punto ad entrambe le squadre). A tale scopo la funzione giornata() deve far uso della funzione risultato() e della funzione cercaSquadra() (da implementare). Scrivi l’istruzione di chiamata della funzione giornata() e definisci le variabili utilizzate.

Direzionalità dei parametri

Indica la direzionalità dei parametri di tutte le funzioni implementate.

N.B. I record devono essere passati per indirizzo.

Domande da interrogazione

  1. Qual è la funzione della struttura dati "partita"?
  2. La struttura dati "partita" rappresenta una partita di calcio, contenendo il nome delle due squadre, il numero di goal segnati da ciascuna squadra.

  3. Come viene calcolato il punteggio delle squadre nella funzione "giornata"?
  4. Nella funzione "giornata", i punteggi delle squadre vengono aggiornati in base ai risultati delle partite: 3 punti per la squadra vincente, 0 per la perdente e 1 punto per ciascuna squadra in caso di pareggio.

  5. Qual è la direzionalità dei parametri nelle funzioni implementate?
  6. I record devono essere passati per indirizzo, il che significa che le funzioni ricevono puntatori alle strutture dati per modificare direttamente i valori all'interno delle strutture.

Domande e risposte

Hai bisogno di aiuto?
Chiedi alla community