namespace matrix_3; class Program { static void Main(string[] args) { Menu(); } static void Menu() { Console.Clear(); int scelta; int[,] matrix = null; int[] array = null; do { Console.WriteLine(); Console.WriteLine("Inserire un'opzione:"); Console.WriteLine("1. Crea e mostra matrice quadrata"); Console.WriteLine("2. Somma diagonale secondaria"); Console.WriteLine("3. Media diagonale secondaria"); Console.WriteLine("5. Prodotto diagonale principale"); Console.WriteLine("6. Valore minimo e massimo diagonale principale"); Console.WriteLine("7. Trova zeri sulla diagonale principale"); Console.WriteLine("8. Cerca sulla diagonale principale"); Console.WriteLine("0. Esci"); Console.Write("Scelta: "); scelta = Convert.ToInt32(Console.ReadLine()); switch (scelta) { case 0: break; case 1: Console.Clear(); matrix = CreaMatrice(); Console.Clear(); Console.WriteLine("La matrice creata è la seguente:"); MostraMatrice(matrix); Pausa(); break; case 2: Console.Clear(); if (matrix != null) { Console.WriteLine($"La somma degli elementi della diagonale principale è {SommaMatriceDiagonale2(matrix)}"); } else { Console.WriteLine("È necessario creare la matrice prima di calcolare la somma della diagonale principale."); } Pausa(); break; case 3: Console.Clear(); if (matrix != null) { Console.WriteLine($"La media degli elementi della diagonale principale è {SommaMatriceDiagonale2(matrix) / matrix.GetLength(0)}"); } else { Console.WriteLine("È necessario creare la matrice prima di calcolare la media della diagonale principale."); } Pausa(); break; case 4: Console.Clear(); if (matrix != null) { //Console.WriteLine($"La media degli elementi della diagonale principale è {SommaMatriceDiagonale(matrix) / matrix.GetLength(0)}"); } else { Console.WriteLine("È necessario creare la matrice prima di calcolare la media della diagonale principale."); } Pausa(); break; case 5: Console.Clear(); if (matrix != null) { //Console.WriteLine($"Il prodotto degli elementi della diagonale principale è {ProdottoMatriceDiagonale(matrix)}"); } else { Console.WriteLine("È necessario creare la matrice prima di calcolare il prodotto della diagonale principale."); } Pausa(); break; case 6: Console.Clear(); if (matrix != null) { //array = MinimoMassimoMatriceDiagonale(matrix, 0); Console.WriteLine($"Il valore minimo è {array[0]} e si trova in posizione {array[1]},{array[2]}"); //array = MinimoMassimoMatriceDiagonale(matrix, 1); Console.WriteLine($"Il valore massimo è {array[0]} e si trova in posizione {array[1]},{array[2]}"); } else { Console.WriteLine("È necessario creare la matrice prima di calcolare il minimo e il massimo della diagonale principale."); } Pausa(); break; case 7: Console.Clear(); if (matrix != null) { if (true) { Console.WriteLine("Sulla diagonale principale sono presenti degli zeri"); } else { Console.WriteLine("Sulla diagonale principale non sono presenti degli zeri"); } } else { Console.WriteLine("È necessario creare la matrice prima di cercare gli zeri sulla diagonale principale."); } Pausa(); break; case 8: Console.Clear(); if (matrix != null) { Console.Write("Inserire un numero da cercare: "); if (true) { Console.WriteLine("Elemento trovato"); } else { Console.WriteLine("Elemento non trovato"); } } else { Console.WriteLine("È necessario creare la matrice prima di cercare un elemento sulla diagonale principale."); } Pausa(); break; default: Console.WriteLine("Opzione non valida."); Pausa(); break; } } while (scelta != 0); } static void Pausa() { Console.WriteLine("Premere un tasto per continuare. . ."); Console.ReadKey(); Console.Clear(); } static int[,] CreaMatrice() { int dimensione = 0; Console.Write("Inserire la dimensione della matrice: "); dimensione = Convert.ToInt32(Console.ReadLine()); int[,] ritorno = new int[dimensione, dimensione]; for (int r = 0; r < ritorno.GetLength(0); r++) { for (int c = 0; c < ritorno.GetLength(1); c++) { Console.Write($"Inserire l'elemento in posizione {r}, {c}: "); ritorno[r, c] = Convert.ToInt32(Console.ReadLine()); Console.WriteLine(); } } return ritorno; } static void MostraMatrice(int[,] p_matrice) { for (int r = 0; r < p_matrice.GetLength(0); r++) { for (int c = 0; c < p_matrice.GetLength(1); c++) { Console.Write(p_matrice[r, c] + " "); } Console.WriteLine(); } } static int SommaMatriceDiagonale2(int[,] p_matrice) { int ritorno = 0; for (int r = 0; r < p_matrice.GetLength(0); r++) { ritorno = ritorno + p_matrice[r, p_matrice.GetLength(1) - 1 - r]; } return ritorno; } }