Appunti del 08-03-2023⚓︎
esercizio⚓︎
relazzare pseudocodice di una funzione che riceve in input una matrice (contiene solo 0, 1, 2)
n righe m colonne
righe giornate e colonne le squadre
dove G è giornata e S è squadra.
individuare capolista per ogni giornata
non conviene usare delle lettere per le giornate ma un numero, così diventa:
come prima idea di soluzione ci si limita a scandire riga per riga (GxG). per ogni giornata devo calcolare punteggio di ogni squadra fino alla G esaminata
Trovare iìvalore massimo dei punteggi calcolati.
La base dell'algoritmo è la seguente:
Text Only | |
---|---|
il vv LeCapolista
che conterrà le squadre in testa è un array a 1dim di int >
0.
si potrebbe
Text Only | |
---|---|
magari un nome migliore di A. A è un array coi punteggi già sommati per ogni squadra
riscriviamo l'alg meglio
Algoritmo generale⚓︎
INPUT:
risultati
- contiene i risultati di ogni squadra (sulle colonne) di tutte le giornate (righe) del campionato. I ris sono i valori 0, 1, 2. Array a 2dim di interi nell'intervallo \([0,\, 2]\).
NumSquadre
- numero di squadre che partecipano al campionato, intero maggiore di zero
NumGiornate
- numero di giornate disputate, intero maggiore di 0
OUTPUT:
LeCapolista
- contiene il nome delle squadre capolista di ogni giornata del campionato.
Array a una dimensione di interi, 0 <
LeCapolista
≤NumSquadre
. Ha dim pari aNumGiornate
.
LAVORO:
g
- giornata
ALGORITMO:
Text Only | |
---|---|
TrovareMassimo⚓︎
INPUT:
Classifica
- punteggio di tutte le squadre, array a 1dimm di interi maggiori o uguali a zero.
Dimensione
- numero di squadre che partecipano al campionato, intero maggiore di 1
OUTPUT:
Capolista
- la squadra in testa al campionato, intero, 0 <
Capolista
<=NumSquadre
.
LAVORO:
i
- contatore
ALGORITMO:
Text Only | |
---|---|
In questo caso se la prima squadra questo è inutile. Aggiungendo Capolista := 1, si ovvia a questo errore.
un appunto stilistico è che la funzione è generale, al posto di Classifica
sarebbe meglio avere InsiemeDiNumeri
ad esempio. L'algoritmo è troppo legato
a quello delle squadre, conviene slegarli. È solo una questione di leggibilità
etc.
CalcolareClassificaGiornata⚓︎
INPUT:
Risultati
- come già detto precedentemente.
NumGiornate
- come sopra.
NumGiornate
- come sopra.
Giornata
- giornata in cui calcolare la classifica, intero,
0 <
Giornata
<=NumGiornate
.
OUTPUT:
ClassificaGiornata
- contiene i punteggi delle squadre fino alla giornata
Giornata
. Array a 1dim di interi maggiori o uguali a zero. sarà di dimNumSquadre
(non ci serve per l'output).
LAVORO:
boh
ALGORITMO:
Text Only | |
---|---|
SommarePunti⚓︎
INPUT:
Risultati
- già data
Squadra
- squadra di cui si vuole calcolare il punteggio, intero
0 <
Squadra
<=NumSquadre
. Giornata
- già data
OUTPUT:
Punti
- punti ottenuti da sommare fino alla giornata
Giornata
, intero meggiore o uguale a zero, minore o uguale di2 * Giornata
.
ALGORITMO:
Text Only | |
---|---|
Test su Valori Limite
test per classi di equivalenza.
VALIDI \(]0,\, \text{NumGiornate}]\)
NON VALIDI \(]-\infty,\, 0]\), \(]\text{NumGiornate},\, +\infty[\).