Viene richiesto di scrivere funzioni per risolvere vari problemi, e viene fornito anche uno strumento che mette alla prova il comportamento delle funzioni che avete scritto.
Create una cartella, nella quale saranno creati sia i file contenenti le funzioni che avete scritto (una per ciascun file), sia i file di test (forniti dal docente).
I nomi di questi file devono essere esattamente i seguenti:
labEserc8_1.py
, labEserc8_2.py
, labEserc8_3.py
, labEserc8_4.py
, labEserc8_5.py
, labEserc8_6.py
, per i cinque files contenenti le funzioni scritte da voi,test_labEserc8_1.py
, test_labEserc8_2.py
, test_labEserc8_3.py
, test_labEserc8_4.py
, test_labEserc8_5.py
, test_labEserc8_6.py
per i file di test (forniti dal docente)Per ciascuno dei problemi elencati nel seguito dovrete scrivere un file contenente la soluzione richiesta, in cui il nome della funzione deve essere esattamente quello indicato nel testo seguente.
Una volta salvato il file nella cartella, e salvato anche il corrispondente file di test fornito dal docente, dovete eseguire il comando
python3 test_labEserc8_X.pydove
X
è il numero da 1 a 5 corrispondente all'esercizio che volete verificare.
Il risultato del test è una schermata (o più schermate) nella quale si mostra:
Per ogni funzione scritta vengono eseguite chiamate con diversi valori dei parametri. L'esito dei test viene riportato con il carattere
Scrivere una funzione stampa_mat(m)
che:
m
;TypeError
se il parametro ricevuto non è una lista, o se gli elementi della lista non sono liste;m
, sotto forma di tabella, andando a capo alla fine
di ciascuna riga. Ad esempio, se viene chiamata con parametro[ [2, 4, 3, 6, 8], [3, 1, 4, 0, 0], [1, 5, 1, 7, 4] ]
2 4 3 6 8 3 1 4 0 0 1 5 1 7 4
Per questo esercizio non viene fornito un file di test. Provare a chiamare la funzione con argomenti diversi e verificare l'aspetto della stampa.
Scrivere una funzione somma_mat(m)
che:
m
;TypeError
se il parametro ricevuto non è una lista, o se gli elementi della lista non sono liste;TypeError
se gli elementi della matrice non sono numeri;Il file di test da memorizzare nella propria cartella per questo esercizio è test_labEserc8_1.py
La soluzione deve essere prodotta in un file di nome labEserc8_1.py
Scrivere una funzione min_mat(m)
che:
m
;TypeError
se il parametro ricevuto non è una lista, o se gli elementi della lista non sono liste;ValueError
se la prima riga della matrice non contiene almeno un elemento;TypeError
se gli elementi della matrice non sono numeri;Il file di test da memorizzare nella propria cartella per questo esercizio è test_labEserc8_2.py
La soluzione deve essere prodotta in un file di nome labEserc8_2.py
Scrivere una funzione pos_max_mat(m)
che:
m
;TypeError
se il parametro ricevuto non è una lista, o se gli elementi della lista non sono liste;ValueError
se la prima riga della matrice non contiene almeno un elemento;TypeError
se gli elementi della matrice non sono numeri;return i, j
)
che sono rispettivamente l'indice di riga e di colonna in cui compare il massimo elemento della matrice. In caso di più elementi pari al massimo deve essere restituita la posizione del primo di essi (minima riga e, in caso di più massimi sulla riga, minima colonna).Il file di test da memorizzare nella propria cartella per questo esercizio è test_labEserc8_3.py
La soluzione deve essere prodotta in un file di nome labEserc8_3.py
Scrivere una funzione somma_diagonale_mat(m)
che:
m
;TypeError
se il parametro ricevuto non è una lista, o se gli elementi della lista non sono liste;TypeError
se gli elementi della matrice non sono numeri;ValueError
se la matrice non è quadrata (ciascuna riga ha la stessa lunghezza, che è anche il numero di righe);n
righe ed n
colonne si devono sommare solo n
elementi.Il file di test da memorizzare nella propria cartella per questo esercizio è test_labEserc8_4.py
La soluzione deve essere prodotta in un file di nome labEserc8_4.py
Scrivere una funzione somme_per_riga_mat(m)
che:
m
;TypeError
se il parametro ricevuto non è una lista, o se gli elementi della lista non sono liste;TypeError
se gli elementi della matrice non sono numeri;i
è la somma degli elementi della riga i
-esima. La lunghezza di tale lista è uguale al numero di righe della matrice. Se viene passata una matrice vuota (quindi []
) deve essere restituita una lista vuota (quindi []
).Il file di test da memorizzare nella propria cartella per questo esercizio è test_labEserc8_5.py
La soluzione deve essere prodotta in un file di nome labEserc8_5.py
Scrivere una funzione somme_per_colonna_mat(m)
che:
m
;TypeError
se il parametro ricevuto non è una lista, o se gli elementi della lista non sono liste;ValueError
se le righe della matrice non sono tutte della stessa lunghezza;TypeError
se gli elementi della matrice non sono numeri;i
è la somma degli elementi della colonna i
-esima. La lunghezza di tale lista è uguale al numero di colonne della matrice. Se viene passata una matrice vuota (quindi []
) deve essere restituita una lista vuota (quindi []
).Il file di test da memorizzare nella propria cartella per questo esercizio è test_labEserc8_6.py
La soluzione deve essere prodotta in un file di nome labEserc8_6.py
Scrivere una funzione pos_riga_massima_mat(m)
che:
m
;TypeError
se il parametro ricevuto non è una lista, o se gli elementi della lista non sono liste;TypeError
se gli elementi della matrice non sono numeri;[ [2, 4, 3, 6, 8], [3, 1, 4, 0, 0], [9, 5, 9, 7, 4] ]
[]
) deve essere restituito il valore -1
.
Il file di test da memorizzare nella propria cartella per questo esercizio è test_labEserc8_7.py
La soluzione deve essere prodotta in un file di nome labEserc8_7.py