Seguono 28 esercizi con gli array bidimensionali (o matrici) in C++, affrontabili anche con altri linguaggi di programmazione quali ad esempio: C, Java, Python, Pascal.
Gli esercizi tuttavia sono svolti in C++, le soluzioni sono linkate sotto ogni esercizio.
Per ripassare la teoria vai all’articolo matrici (array bidimensionali) in C++.
Se invece cerchi esercizi con gli array classici vai alla pagina esercizi con array.
Es 0. Letta un array bidimensionale 9 per 9 e letto un ulteriore numero n, verificare se n è presente all’interno della matrice.
(Soluzione C++)
Es 1. Memorizzare in un array bidimensionale 10 x 10 la tavola pitagorica, quella delle tabelline, e stampare il contenuto della matrice (nella prima riga si dovrà trovare la tabellina del 1: 1 2 3 4 5 6 7 8 9 10).
(Soluzione C++)
Es 2. Memorizzare in un array bidimensionale 10 x 10 dei numeri casuali compresi tra zero e nove, stamparne il contenuto e dire quanti zeri sono memorizzati all’interno dell’array (per ripassare come generare numeri vai al link).
(Soluzione C++)
Es 3. Memorizzare in un array bidimensionale 5 per 5 tutti zeri tranne nelle celle della diagonale principale dove memorizzare uno (non usare l’inizializzazione con parentesi grafe nemmeno per gli zeri)
ovvero:
1 0 0 0 0
0 1 0 0 0
0 0 1 0 0
0 0 0 1 0
0 0 0 0 1
(Soluzione C++, Soluzione C++ alternativa)
Es 4. Memorizzare una matrice di dimensioni 6×6 e verificare se è “somma-palindroma-per-riga” ovvero se la somma degli elementi nella prima riga è uguale alla somma degli elementi nell’ultima, se la somma degli elementi della seconda è uguale a quella degli elementi della penultima, ecc.
(soluzione C++ con array di appoggio, soluzione C++ senza array di appoggio)
Es 5. Data una matrice 4×4 di interi trovare la riga o la colonna con somma più alta.
(soluzione C++)
Es 6. Data una matrice 5×5 di interi e due numeri interi n e m verificare se tutte le celle della matrice hanno valori compresi tra n e m.
(soluzione C++)
Es 7. Verificare se una matrice 8×8 di interi è una “scacchiera” ovvero se vi sono presenti solo 0 e 1 alternati tra loro.
(soluzione C++)
Es 8. Data una matrice 9×9 verificare se la somma delle celle delle due diagonali è uguale.
(soluzione C++)
Es 9. Data una matrice 6×6 verificare se è simmetrica rispetto alla diagonale principale.
(per diagonale principale si intende quella che va dall’elemento [0][0] all’elemento [5][5])
Una matrice si dice simmetrica rispetto rispetto alla diagonale principale se è uguale alla sua trasposta.
La trasposta di una matrice si ottiene prendendo in ordine le righe della matrice originale e facendole diventare le colonne della matrice trasposta.
(soluzione C++)
Es 10. Data una matrice 5×5 di interi verificare se rispetta la seguente proprietà: il contenuto di ogni cella non deve essere maggiore di quello delle celle nelle righe e/o nelle colonne successive.
(soluzione C++)
Es 11. Verificare se una matrice 6×6 è la matrice identità (la matrice identità è formata da zeri su tutte le celle tranne quelle della diagonale dove ci sono uni).
(soluzione C++)
Es 12. Verificare se in una matrice 5×5 in ogni cella è memorizzato il prodotto dei suoi indici di riga e di colonna.
(soluzione C++)
Es 13. Verificare se in una matrice 5×5 ogni cella è uguale alla somma delle celle che la precedono sulla stessa riga.
(soluzione C++)
Es 14. Verificare se tutte le celle dei “bordi” di una matrice 6×6 contengono lo stesso valore (per bordi di una matrice si intendono la prima e l’ultima riga e la prima e l’ultima colonna).
(soluzione C++)
Es 15. Date due matrici 4×4 calcolarne la somma (la somma tra matrici si calcola sommando i contenuti delle celle nella stessa posizione).
(soluzione C++)
Es 16. Data una matrice 5×5 verificare se la somma delle celle sopra la diagonale principale è maggiore della somma delle celle sotto la diagonale principale.
(soluzione C++)
Es 17. Memorizzare in una matrice 8×8 delle cornici una di zeri e di uni alternate tra loro, usando al massimo due for, alla fine stampare la matrice.
(soluzione C++)
Es 18. Data una matrice m1 5×5 memorizzare in ogni cella di una matrice m2 5×5 la somma di tutte le celle della matrice m1 che non abbiano gli stessi indici di riga o colonna della cella in oggetto.
(soluzione C++)
Es 19. Data una matrice 8×8 riempirla con numeri casuali compresi tra zero e uno, e verificare se in ogni riga c’è un numero di uni pari a quello della riga precedente.
(soluzione C++)
Es 20. Una matrice 5×5 rappresenta il numero di punti realizzati da dei giocatori di basket in un piccolo torneo, in ogni riga c’è il totale dei punti realizzati da un giocatore in per ogni partita, in ogni colonna ci sono i punti realizzati dai giocatori in una specifica partita.
Stampare il numero di punti realizzati nella partita in cui sono stati fatti più punti dal giocatore che nel totale delle partite ha realizzato più punti.
(Per semplicità si consideri che non ci siano giocatori con lo stesso numero di punti o partite con lo stesso numero di punti totali).
(soluzione C++)
Es 21. Letta una matrice M di dimensione 4×2 e una matrice N di dimensioni 2×4 calcolare la matrice P data dal calcolo del prodotto tra le matrici M e N. La matrice P avrà tante righe quante la prima e tante colonne quanto la seconda matrice, per calcolare il contenuto della cella P[i][j] si calcola il prodotto tra vettori tra la riga i-esima della prima matrice per la colonna j-esima della seconda matrice.
Il prodotto tra due vettori V e W si calcola facendo la somma dei prodotti delle celle che si trovano nelle stessa posizioni nei due vettori (se V e W hanno dimensione 3, il loro prodotto sarà V[0]*W[0]+V[1]*W[1]+V[2]*W[2].
(soluzione C++)
Es 22. Letta una matrice M di dimensione 5×5 e un numero naturale n, calcolare la potenza ennesima di M, usando il prodotto tra matrici come spiegato nell’esercizio precedente.
Es 23. Scrivi un programma che letta una matrice 6 per 6 trasla gli elementi delle righe pari avanti di una colonna, riportando l’ultimo elemento della riga come primo.
Es 24. Scrivi un programma che verifica se in una matrice 7 per 7 ci sono prevalentemente zeri.
Es 25. Scrivi un programma che calcola la somma degli elementi maggiori di ogni riga di una matrice 6 per 6.
Es 26. Letta una matrice 8 per 8, si calcoli il prodotto degli elementi che si trovano sotto la diagonale principale della matrice.
Es 27. Trovare l’elemento minimo di una matrice 8 per 8 e dire tutte le coordinate delle celle in cui si trova quel valore.