📢 Nuovo Corso Laravel API disponibile!

Esercizi Array Multidimensionali in C#

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 } };
int somma = 0;
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 } };
int valoreCercato = 5;
bool trovato = false;
for (int riga = 0; riga < matrice.GetLength(0); riga++)
{
for (int colonna = 0; colonna < matrice.GetLength(1); colonna++)
{
if (matrice[riga, colonna] == valoreCercato)
{
trovato = true;
break;
}
}
if (trovato)
{
break;
}
}
if (trovato)
{
Console.WriteLine("Il valore è stato trovato nella matrice.");
}
else
{
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 } };
int somma = 0;
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();
}
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] + " ");
}
Console.WriteLine();
}

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();
}
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] + " ");
}
Console.WriteLine();
}

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] + " ");
}
Console.WriteLine();
}