Esercizi Array Multidimensionali in C# Esercizio 1 Esercizio 2 Esercizio 3 Esercizio 4 Esercizio 5 Esercizio 6 Esercizio 7 Esercizio 8 Esercizio 9 Esercizio 10 Ecco degli esercizi semplici con soluzione per praticare le basi degli array multidimensionali in C#.
Esercizio 1
Scrivi un programma che definisca una matrice di interi e calcoli la somma di tutti gli elementi della matrice.
int [,] matrice = { { 1 , 2 , 3 }, { 4 , 5 , 6 }, { 7 , 8 , 9 } };
for ( int riga = 0 ; riga < matrice. GetLength ( 0 ); riga ++ )
for ( int colonna = 0 ; colonna < matrice. GetLength ( 1 ); colonna ++ )
somma += matrice[riga, colonna];
Console. WriteLine ( "La somma degli elementi della matrice è: " + somma);
Esercizio 2
Scrivi un programma che definisca una matrice di interi e cerchi un valore specifico nella matrice. Stampa un messaggio se il valore viene trovato o se non viene trovato.
int [,] matrice = { { 1 , 2 , 3 }, { 4 , 5 , 6 }, { 7 , 8 , 9 } };
for ( int riga = 0 ; riga < matrice. GetLength ( 0 ); riga ++ )
for ( int colonna = 0 ; colonna < matrice. GetLength ( 1 ); colonna ++ )
if (matrice[riga, colonna] == valoreCercato)
Console. WriteLine ( "Il valore è stato trovato nella matrice." );
Console. WriteLine ( "Il valore non è presente nella matrice." );
Esercizio 3
Scrivi un programma che definisca una matrice di numeri interi e calcoli la media di tutti gli elementi della matrice.
int [,] matrice = { { 1 , 2 , 3 }, { 4 , 5 , 6 }, { 7 , 8 , 9 } };
for ( int riga = 0 ; riga < matrice. GetLength ( 0 ); riga ++ )
for ( int colonna = 0 ; colonna < matrice. GetLength ( 1 ); colonna ++ )
somma += matrice[riga, colonna];
double media = ( double )somma / (matrice. GetLength ( 0 ) * matrice. GetLength ( 1 ));
Console. WriteLine ( "La media degli elementi della matrice è: " + media);
Esercizio 4
Scrivi un programma che definisca una matrice di interi e crei una copia della matrice originale in una nuova matrice.
int [,] matriceOriginale = { { 1 , 2 , 3 }, { 4 , 5 , 6 }, { 7 , 8 , 9 } };
int [,] matriceCopia = new int [matriceOriginale. GetLength ( 0 ), matriceOriginale. GetLength ( 1 )];
for ( int riga = 0 ; riga < matriceOriginale. GetLength ( 0 ); riga ++ )
for ( int colonna = 0 ; colonna < matriceOriginale. GetLength ( 1 ); colonna ++ )
matriceCopia[riga, colonna] = matriceOriginale[riga, colonna];
Console. WriteLine ( "Matrice originale: " );
for ( int riga = 0 ; riga < matriceOriginale. GetLength ( 0 ); riga ++ )
for ( int colonna = 0 ; colonna < matriceOriginale. GetLength ( 1 ); colonna ++ )
Console. Write (matriceOriginale[riga, colonna] + " " );
Console. WriteLine ( "Matrice copia: " );
for ( int riga = 0 ; riga < matriceCopia. GetLength ( 0 ); riga ++ )
for ( int colonna = 0 ; colonna < matriceCopia. GetLength ( 1 ); colonna ++ )
Console. Write (matriceCopia[riga, colonna] + " " );
Esercizio 5
Scrivi un programma che definisca una matrice di numeri interi e trovi il valore massimo presente nella matrice.
int [,] matrice = { { 1 , 2 , 3 }, { 4 , 5 , 6 }, { 7 , 8 , 9 } };
int valoreMassimo = matrice[ 0 , 0 ];
for ( int riga = 0 ; riga < matrice. GetLength ( 0 ); riga ++ )
for ( int colonna = 0 ; colonna < matrice. GetLength ( 1 ); colonna ++ )
if (matrice[riga, colonna] > valoreMassimo)
valoreMassimo = matrice[riga, colonna];
Console. WriteLine ( "Il valore massimo nella matrice è: " + valoreMassimo);
Esercizio 6
Scrivi un programma che definisca una matrice di numeri interi e trovi il valore minimo presente nella matrice.
int [,] matrice = { { 1 , 2 , 3 }, { 4 , 5 , 6 }, { 7 , 8 , 9 } };
int valoreMinimo = matrice[ 0 , 0 ];
for ( int riga = 0 ; riga < matrice. GetLength ( 0 ); riga ++ )
for ( int colonna = 0 ; colonna < matrice. GetLength ( 1 ); colonna ++ )
if (matrice[riga, colonna] < valoreMinimo)
valoreMinimo = matrice[riga, colonna];
Console. WriteLine ( "Il valore minimo nella matrice è: " + valoreMinimo);
Esercizio 7
Scrivi un programma che definisca una matrice di numeri interi e ne calcoli la trasposta.
int [,] matriceOriginale = { { 1 , 2 , 3 }, { 4 , 5 , 6 }, { 7 , 8 , 9 } };
int [,] matriceTrasposta = new int [matriceOriginale. GetLength ( 1 ), matriceOriginale. GetLength ( 0 )];
for ( int riga = 0 ; riga < matriceOriginale. GetLength ( 0 ); riga ++ )
for ( int colonna = 0 ; colonna < matriceOriginale. GetLength ( 1 ); colonna ++ )
matriceTrasposta[colonna, riga] = matriceOriginale[riga, colonna];
Console. WriteLine ( "Matrice originale: " );
for ( int riga = 0 ; riga < matriceOriginale. GetLength ( 0 ); riga ++ )
for ( int colonna = 0 ; colonna < matriceOriginale. GetLength ( 1 ); colonna ++ )
Console. Write (matriceOriginale[riga, colonna] + " " );
Console. WriteLine ( "Matrice trasposta: " );
for ( int riga = 0 ; riga < matriceTrasposta. GetLength ( 0 ); riga ++ )
for ( int colonna = 0 ; colonna < matriceTrasposta. GetLength ( 1 ); colonna ++ )
Console. Write (matriceTrasposta[riga, colonna] + " " );
Esercizio 8
Scrivi un programma che definisca una matrice di numeri interi e trovi il valore massimo per ogni riga della matrice.
int [,] matrice = { { 1 , 2 , 3 }, { 4 , 5 , 6 }, { 7 , 8 , 9 } };
for ( int riga = 0 ; riga < matrice. GetLength ( 0 ); riga ++ )
int valoreMassimo = matrice[riga, 0 ];
for ( int colonna = 1 ; colonna < matrice. GetLength ( 1 ); colonna ++ )
if (matrice[riga, colonna] > valoreMassimo)
valoreMassimo = matrice[riga, colonna];
Console. WriteLine ( "Il valore massimo nella riga " + riga + " è: " + valoreMassimo);
Esercizio 9
Scrivi un programma che definisca una matrice di numeri interi e trovi il valore massimo per ogni colonna della matrice.
int [,] matrice = { { 1 , 2 , 3 }, { 4 , 5 , 6 }, { 7 , 8 , 9 } };
for ( int colonna = 0 ; colonna < matrice. GetLength ( 1 ); colonna ++ )
int valoreMassimo = matrice[ 0 , colonna];
for ( int riga = 1 ; riga < matrice. GetLength ( 0 ); riga ++ )
if (matrice[riga, colonna] > valoreMassimo)
valoreMassimo = matrice[riga, colonna];
Console. WriteLine ( "Il valore massimo nella colonna " + colonna + " è: " + valoreMassimo);
Esercizio 10
Scrivi un programma che definisca due matrici di numeri interi e ne calcoli il prodotto.
int [,] matrice1 = { { 1 , 2 }, { 3 , 4 } };
int [,] matrice2 = { { 5 , 6 }, { 7 , 8 } };
int [,] prodotto = new int [matrice1. GetLength ( 0 ), matrice2. GetLength ( 1 )];
for ( int riga = 0 ; riga < matrice1. GetLength ( 0 ); riga ++ )
for ( int colonna = 0 ; colonna < matrice2. GetLength ( 1 ); colonna ++ )
for ( int k = 0 ; k < matrice1. GetLength ( 1 ); k ++ )
prodotto[riga, colonna] += matrice1[riga, k] * matrice2[k, colonna];
Console. WriteLine ( "Prodotto delle due matrici: " );
for ( int riga = 0 ; riga < prodotto. GetLength ( 0 ); riga ++ )
for ( int colonna = 0 ; colonna < prodotto. GetLength ( 1 ); colonna ++ )
Console. Write (prodotto[riga, colonna] + " " );