matrix_3/Program.cs
La Programmatrice Verde b00a9cea81 Opzione 4
2025-03-12 08:39:29 +01:00

176 lines
7.2 KiB
C#

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("4. Prodotto diagonale secondaria");
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($"Il prodotto degli elementi della diagonale principale è {ProdottoMatriceDiagonale2(matrix)}");
}
else {
Console.WriteLine("È necessario creare la matrice prima di calcolare il prodotto 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;
}
static int ProdottoMatriceDiagonale2(int[,] p_matrice) {
int ritorno = 1;
for (int r = 0; r < p_matrice.GetLength(0); r++) {
ritorno = ritorno * p_matrice[r, p_matrice.GetLength(1) - 1 - r];
}
return ritorno;
}
}