Sei sulla pagina 1di 5

ESERCIZIARIO SULLE MATRICI

1. Esercizi di base sulle matrici

1. Scrivere una funzione che riceva in input due interi positivi R e C e un valore
numerico V. La funzione deve restituire una matrice di dimensione RxC che
contiene il valore V in tutte le sue celle.
2. Definire una funzione stampa_matrice che riceve in input una matrice e ne
stampa il contenuto per righe.
3. Definire un metodo leggi_matrice che chieda all’utente di inserire in input le
dimensioni della matrice che si intende creare e i valori che dovranno essere
inseriti nella matrice. La funzione restituisce in output la matrice creata.
4. Definire una funzione che, data in input una matrice, restituisce il valore
minimo, massimo e la media fra tutti quelli che essa contiene.
5. Definire una funzione che riceve in input una matrice di interi M e un intero q
e restituisca il numero di volte che q compare in M.
6. Definire una funzione che riceve in input una matrice quadrata e restituisca la
sua diagonale principale.
7. Definire una funzione che riceve in input una matrice quadrata e restituisca la
sua diagonale secondaria.
8. Definire una funzione che riceve in input un intero positivo D e restituisce la
matrice identità di dimensione DxD.
9. Definire un metodo tavola_pitagorica che restituisce una matrice 10x10 dove la
generica riga di indice i contiene la tabellina di i+1. La matrice che si deve
ottenere è la seguente:
2. Verifiche sulle matrici

1. Definire una funzione che restituisca il valore True se e solo se la matrice


ricevuta in input è quadrata.
2. Definire un metodo che riceve in input una matrice quadrata M e restituisce
True se e solo se M è una matrice triangolare superiore.
3. Definire un metodo che riceve in input una matrice quadrata M e restituisce
True se e solo se M è una matrice triangolare inferiore.
4. Definire un metodo che riceve in input una matrice quadrata M e restituisce
True se e solo se M è una matrice diagonale.
5. Definire un metodo che restituisce True se e solo se la somma degli elementi
della diagonale principale della matrice quadrata che riceve in input è uguale
alla somma degli elementi della diagonale secondaria.

ESEMPIO:

Per la matrice

1 4
-1 2

la funzione restituisce True perché 1+2 = 4-1

6. Definire un metodo che riceve in input una matrice quadrata e restituisce True
se e solo se la somma degli elementi al di sopra della diagonale principale è
uguale alla somma degli elementi al di sotto della diagonale principale.
7. Definire una funzione che restituisca True se e solo se la matrice quadrata
ricevuta in input è simmetrica.
8. Definire una funzione che prende una Matrice ed un vettore e restituisca True
se tutte le righe della matrice sono uguali al vettore.
9. Definire una funzione che prende una Matrice ed un vettore e restituisca True
se tutte le colonne della matrice sono uguali al vettore.
10.Definire una funzione che prende una Matrice ed un vettore e restituisca il
numero di righe uguali al vettore (conta)
11.Definire una funzione che prende una Matrice ed un vettore e restituisca il
numero di colonne uguali al vettore (conta)
12.Definire una funzione che riceve in input una matrice e restituisca True se e
solo se la somma degli elementi contenuti nelle righe di indice pari è anch’essa
pari.

3. Elaborazioni su matrici

1. Definire una funzione che riceve in input due matrici di uguale dimensione,
M1 ed M2 e restitusce una nuova matrice M3 tale che M3 = M1 + M2.
2. Definire un metodo estrai_colonna che riceve in input una matrice M e un
indice ammissibile di colonna C e restituisce in output la colonna di indice C di
M.
3. Definire una funzione che riceve in ingresso una matrice e restituisca in output
la sua trasposta.
4. Definire una funzione remove_row che riceve in input una matrice e un indice
ammissibile di riga R. La funzione dovrà restituire una nuova matrice ottenuta
a partire da quella ricevuta in input rimuovendone la riga di indice R.
5. Definire un metodo remove_column che riceve in input una matrice e un indice
ammissibile di colonna C e restituisca in output una nuova matrice ottenuta a
partire da quella di input rimuovendone la colonna di indice C.
6. Definire una funzione swap_rows che riceve in input una matrice e due indici
ammissibili di riga R1 ed R2. La funzione dovrà restituire una matrice ottenuta
a partire da quella di input scambiando la riga di indice R1 con la riga di indice
R2.
7. Definire una funzione swap_columns che riceve in input una matrice e due
indici ammissibili di colonna C1 ed C2. La funzione dovrà restituire una
matrice ottenuta a partire da quella di input scambiando la riga di indice C1
con la riga di indice C2. Successivamente fornire un’implementazione della
funzione che esegua la stessa operazione modificando la matrice in input.
8. Definire una funzione che riceva in input una matrice e restituisca l’indice
della riga che contiene gli elementi la cui somma è la maggiore possibile.
9. Definire una funzione che riceva in input una matrice e restituisca l’indice
della colonna contenente gli elementi la cui somma è la minore possibile.
10.Definire una funzione massimi_riga che riceva in input una matrice M e
restituisca in output una lista L tale che l’elemento L[i] contenga il valore
massimo contenuto nella riga di indice i di M.
11.Definire una funzione minimi_colonna che riceva in input una matrice M e
restituisca in output una lista L tale che l’elemento L[i] contenga in valore
minimo contenuto nella colonna di indice i di M.
12.Definire un metodo che riceve in input una matrice e restituisce True se e solo
se la somma degli elementi contenuti nelle colonne di indice dispari è uguale
alla somma degli elementi contenuti nelle colonne di indice pari.
13.Data una matrice quadrata di interi M, un elemento M[i,j] è detto “punto di
sella” se risulta essere contemporaneamente il minimo della riga i e il massimo
della colonna j. Si scriva una funzione Python punti_di_sella che riceve una
matrice quadrata di interi M e restituisce una lista di coppie di indici (i,j) che
individuano la riga e la colonna in cui si trovano i punti di sella in M (se
esistono).

ESEMPIO:

Per la seguente matrice:


4 5 5 9
6 7 6 7
6 8 6 9
5 2 3 3

il metodo restuirà L = [(1,0), (1,2), (2,0), (2,2)]


14.Si scriva una funzione verifica che riceve una matrice M di interi e restituisce
True se e solo se il primo elemento di ogni riga i è il massimo oppure il
minimo della riga i.
15.Si scriva una funzione verifica che riceve una matrice M di interi e restituisce
True se e solo se, per ogni generico elemento x = M[i][j], il valore x compare
almeno x volte in M.
16.Definire una funzione che riceve in input una matrice M e un indice di riga
ammissibile R e restituisca una lista contenente tutti gli indici di riga diversi da
R la cui somma degli elementi sia uguale alla somma degli elementi contenuti
nella riga di indice R.
17. Definire una funzione che riceve in input una matrice. Dato un indice di
colonna j definiamo sj come la somma degli elementi positivi cui si aggiunge la
differenza degli elementi negativi della colonna j. La funzione deve restituire
True se e solo se vale che per ogni colonna di indice pari I sI deve essere
uguale a sI+1.

ESEMPIO:
Per la matrice

2 -3 3 -7
4 2 1 1
4 -5 6 -2
la funzione restituisce True.
18.Definire una funzione che riceve in input una matrice M quadrata. La funzione
restituisce in output una lista di valori booleani L. L’elemento L[i] sarà uguale
a True se e solo se la somma degli elementi della riga di indice i di M è uguale
alla somma degli elementi appartenenti alla colonna di indice j di M.
ESEMPIO: per la tavola pitagorica la funzione restituirà una lista contenente
solo valori True.
19. Definire un metodo verifica_vittoria_tris che riceve in input una matrice 3x3
che rappresenta una situazione del gioco del tris. Le celle contenenti valori pari
a 1 rappresentano le celle occupate dal giocatore X mentre le celle contenenti
valori pari a -1 rappresentano le celle occupate dal giocatore O. Tutte le celle
non ancora selezionate da un giocatore contengono 0. Il metodo dovrà
stampare il giocatore che ha vinto la partita, se esiste, oppure stampare che
nessuno ha ancora vinto. Si noti che se nessuno ha ancora vinto ma non ci sono
celle con valori pari a zero nella matrice, allora la funziona dovrà stampare che
i giocatori hanno pareggiato.

Potrebbero piacerti anche