24 Gennaio 2018 Python
24 Gennaio 2018 Python
10 Luglio 2017
Tempo a disposizione: 2 ore
Esercizio 1
Si vuole scrivere un programma Python che restituisce TRUE se un anno è bisestile o FALSE
altrimenti (vedi definizione successiva). Il codice seguente tuttavia contiene errori.
def isLeapYear(anno)
{
resto1 = anno / 400;
resto2 = anno / 40; }
resto3 = anno // 100;
if (resto1 == 0 && resto2 == 0 && resto3 != 0)
return true;
else
return false;
Lo studente deve indicare con un cerchio il codice errato e scrivere il codice corretto.
/*Un anno è bisestile se è divisibile per 400 oppure per 4 ma non per 100.
Esercizio 2
Definire una funzione che riceva due liste, la prima contenenti i cognomi dei candidati a una carica
elettorale (assumendo che non ci siano omonimie), la seconda lista contenente l’espressione di
voto degli elettori, cioè (il cognome di un candidato, o una stringa vuota nel caso di scheda bianca
o non valida).
Esempio:
• lista dei candidati: ["Brambilla", "Galli", "Ferrari"]
• lista dei voti: ["Galli", "", "Ferrari", "Galli", "Brambilla",
"Galli", ""]
La funzione deve stampare in output gli esiti della votazione nel formato indicato nell’esemio: di
ogni candidato deve essere riportato il cognome, il numero di voti ottenuti, e la percentuale di tali
voti rispetto al numero dei votanti, approssimata alla parte intera; deve essere inoltre scritto il
numero di schede bianche o non valide. Nell’esempio precedente sarebbe:
Brambilla voto 1 percentuale 14%
Galli voto 3 percentuale 42%
Ferrari voto 1 percentuale 14%
Schede bianche o non valide: 2
Esercizio 3
(1) Scrivere una funzione altopiano che prende in input a) una matrice intera di dimensione n x
n (con n ≤ 500) rappresentante l’altitudine in metri di una zona di terreno e b) un intero
positivo k e verifica se esiste o no un altopiano di estensione k interamente compreso nella
matrice. Si definisce altopiano di estensione k un quadrato di dimensione k per k tale che la
differenza tra il valore minimo e massimo all’interno del quadrato è al più 10 metri (<= 10).
Esempio:
Si consideri la seguente matrice M (con n=14) e k=3
(2) Scrivere una funzione vettoreMatrice che prende in input un vettore di interi V di
lunghezza m e una matrice M di dimensioni n x m e restituisca in output una matrice M2 ottenuta
eliminando la colonna j-esima di M se M[i][j]=V[i].
Esempio:
V = [2, 4, 6, 1]
|2 14 7 4|
|4 8 12 0|
M = |0 12 18 0|
|0 16 24 0|
|0 0 30 0|
|0 0 36 0|
|14 7 |
| 8 12 |
M2 = |12 18 |
|16 24 |
|0 30 |
|0 36 |