Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
10-Definire una funzione che riceva in input una lista di interi e restituisca la media
armonica dei valori in essa contenuti. Si ricordi che:
11-Definire una funzione i cui parametri di input siano l ed x. La funzione deve restituire
la frequenza di x all’interno di l, ovvero il numero di volte che x compare in l.
12-Definire una funzione che riceva in input una lista e ne restituisca la moda, ovvero
l’elemento che è presente con maggior frequenza nella lista.
13- Definire una funzione che riceva in input una lista di interi e ne restituisca il valore
mediano. Il valore mediano è l'elemento che occupa la posizione centrale nella
distribuzione ordinata dei valori.
ESEMPIO:
ESEMPIO:
Per la lista L = [ 1 14 2 14 1 5 6 7 1 14 5 8] viene restituita la lista L1 = [ 1 14 2 5 6 7 8 ]
4- Definire una funzione che riceva come argomenti tre liste contenenti le ascisse
[ x1;…;xn], le ordinate [y1;…;yn] e le masse di un insieme di punti [m1;…;mn] e
restituisca una lista contenente le coordinate del loro centro di massa [xc, yc] definite
come segue:
ESEMPIO:
Per la lista L = [18 23 5 8 -8 95 -1] viene restituita la lista L2 = [18 23 95]
ESEMPIO:
Se L = [12 9 7 2 1 1 3 12] allora la funzione restituisce True, perché:
12 + 12 > 9 + 7 + 2 + 1 + 1 + 3
9+3>7+2+1+1
7+1 >2+1
2+1>0
13-Si scriva una funzione lista_maggiori che riceve una lista L1 di interi e restituisce
una lista L2, della stessa lunghezza di L1, il cui generico elemento L2[i] è pari al
primo elemento maggiore di L1[i] presente in L1. Se nessun elemento è maggiore di
L1[i], allora L2[i] dev’essere posto pari a L1[i].
ESEMPIO:
Se L1 = [6 1 7 3 7 8 9 4], allora lista_maggiori (L1) restituisce la lista L2 = [7 6 8 6 8 9 9 6],
perché il primo elemento in L1 maggiore di 6 è 7, il primo elemento in L1 maggiore di 1 è 6, il primo
elemento in L1 maggiore di 7 è 8 e così via.
15-Si scriva una funzione azzera_duplicati che riceve una lista L1 di interi positivi e
restituisce una lista L2 della stessa lunghezza di L1 tale che, per ogni elemento L1[i]:
se L1[i] non ha elementi uguali che lo precedono, allora L2[i] sarà uguale a L1[i],
altrimenti L2[i] deve essere pari a zero.
ESEMPIO:
Se L1 = [2 1 5 2 7 5 1 9] allora azzera_duplicati(L1) restituisce la lista L2 = [2 1 5 0 7 0 0 9]
16-Si scriva una funzione verifica_liste che riceve una lista L1 di interi positivi distinti
ed una lista L2 di interi. La funzione restituisce True se e solo se per ogni elemento
x = L1[i], la lista L2 contiene una sottolista di lunghezza almeno x contenente solo
elementi uguali ad x.
Esempio:
17-Si scriva una funzione elabora_lista che riceve una lista L1 di interi, la cui media
indichiamo con m, e restituisce una lista L2 contenente gli elementi di L1 posizionati
in modo tale che gli elementi minori o uguali ad m precedano i valori maggiori di m.
Si noti che sono possibili diversi risultati corretti, purché sia rispettata la suddetta
condizione.
ESEMPIO:
18-Si scriva una funzione verifica che riceve una lista L di interi e un intero k e
restituisce True se e solo se L contiene almeno k elementi consecutivi uguali.
ESEMPIO:
Se L = [1 8 2 1 1 1 2 1] e k = 3 allora verifica(L,k) restituisce True perché L contiene 3 elementi
consecutivi uguali.
19-Si scriva una funzione filtra_lista che riceve una lista L1 di interi non negativi e
restituisce una lista L2 costruita come segue:
la funzione verifica se ogni elemento di L1 avente valore x > 0 è preceduto da
almeno x zeri e seguito da almeno x zeri;
se tale condizione è vera, allora L2 contiene tutti gli elementi maggiori di zero
presenti in L1; altrimenti, L2 è vuota.
ESEMPIO:
Se L1 = [0, 1, 0, 0, 0, 3, 0, 0, 0, 2, 0, 0, 1, 0, 0] allora la funzione restituisce la lista L2 = [1, 3, 2, 1].
20-Si scriva una funzione verifica_liste che riceve due liste L1 ed L2 di interi e un intero
k e restituisce True se e solo se L1 ed L2 contengono due sottoliste uguali di
lunghezza k.
ESEMPIO:
Se L1 = [1, 2, 3, 7, 3, 5, 3], L2 = [8, 7, 3, 5, 4] e k = 3, allora la funzione restituisce True perché le
liste contengono entrambe la sottolista [7, 3, 5].
21-Si scriva una funzione verifica_liste che riceve due liste L1 ed L2 di interi e un intero
k e restituisce True se e solo se L1 contiene una sottolista di lunghezza k i cui
elementi sono presenti in L2 nello stesso ordine (anche se in posizioni non
consecutive).
ESEMPIO:
Se L1 = [3, 1, 2, 5, 7, 3, 5, 3], L2 = [8, 1, 7, 4, 2, 6, 3, 5, 4] e k = 3, allora la funzione restituisce
True perché la lista L1 contiene la sottolista [1, 2, 5] i cui elementi sono presenti in L2 nello stesso
ordine.
22-Si scriva una funzione verifica_liste che riceve due liste L1 ed L2 di interi e un intero
k e restituisce True se e solo se ogni elemento L1[i] è presente in L2 in i-esima
posizione oppure in una posizione che dista al più k posizioni dall’i-esima.
Esempio:
Se L1 = [3, 1, 8, 5, 4], L2 = [8, 1, 3, 4, 5] e k = 2, allora la funzione restituisce True perché
l’elemento L1[0] è presente in L2 in posizione 2, l’elemento L1[1] è presente in L2 in posizione 1,
l’elemento L1[2] è presente in L2 in posizione 0 e così via.
23-Si scriva una funzione verifica_lista che riceve una lista L di interi e restituisce True
se e solo se ogni elemento di L avente valore n > 0 è immediatamente seguito da
almeno n elementi aventi valore minore o uguale a 0.
ESEMPIO:
Se L = [-3, 1, -2, 2, 0, -1, -3, 3, 0, -1, -3, -1], allora la funzione restituisce True perché l’elemento
L[1] = 1 è seguito da un elemento minore o uguale a 0, l’elemento L[3] = 2 è seguito da 3 elementi
minori o uguali a 0 e l’elemento L[7] = 3 è seguito da 4 elementi minori o uguali a 0.
24-Si scriva una funzione verifica_liste che riceve una lista L1 di interi e una lista L2 di
booleani. La funzione restituisce True se e solo se per tutti gli indici i tali che
L2[i]==True, la lista L1 non contiene elementi di valore uguale a L1[i] in posizione
diversa da i.
ESEMPIO:
25- Si scriva una funzione elabora_lista che riceve una lista L1 di interi e restituisce una
lista L2 della stessa lunghezza di L1 così costruita:
se il generico elemento L1[i] è pari, allora l’elemento L2[i] contiene la somma dei tre
elementi di L1 successivi all’i-esimo;
se L1[i] è dispari, allora l’elemento L2[i] contiene la somma dei tre elementi di L1
precedenti all’i-esimo.
Se gli elementi precedenti o successivi all’i-esimo sono meno di tre, si considerino
nella somma solo quelli presenti.
Esempio:
Se L1 = [7, 4, 7, 3, 6, 8], allora la funzione restituisce la lista L2 = [0, 16, 11, 18, 8, 0].