From 75a499b979957f312a78aafc8b6fe16e24b2608a Mon Sep 17 00:00:00 2001 From: La Programmatrice Verde Date: Fri, 13 Dec 2024 21:04:17 +0100 Subject: [PATCH] Trasferita verifica --- Program.cs | 175 ++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 172 insertions(+), 3 deletions(-) diff --git a/Program.cs b/Program.cs index 28dc51f..d6ac7ed 100644 --- a/Program.cs +++ b/Program.cs @@ -3,7 +3,176 @@ class Program { static void Main(string[] args) - { - Console.WriteLine("Hello, World!"); - } + { + //Dichiarazione e inizializzazione variabili + int scelta = 0; + double raggio = 0; + double area = 0; + double numero = 0; + int numeroIntero = 0; + double divisibilePerDieci = 0; + int i = 0; + int k = 0; + int dimensioneDiagonale = 0; + uint decToBin = 0; + bool multiploDiDieci = false; + const double pi = 3.14; + const int costanteIntera = 100; + //menù + do + { + Console.WriteLine("Scegliere un'opzione: "); + Console.WriteLine("1. Area cerchio"); + Console.WriteLine("2. Controllo numeri interi"); + Console.WriteLine("3. Fermati finché non arrivi a 100"); + Console.WriteLine("4. Multipli di 10"); + Console.WriteLine("5. Diagonale"); + Console.WriteLine("6. Decimale -> Binario (Big Endian)"); + Console.WriteLine("0. Esci"); + Console.Write("Scelta: "); + + scelta = Convert.ToInt32(Console.ReadLine()); + + switch (scelta) + { + case 0: + break; + case 1: + do + { + Console.Write("Inserire la misura del raggio: "); + raggio = Convert.ToDouble(Console.ReadLine()); + if (raggio <= 0)//il raggio zero o negativo non esiste + { + Console.WriteLine("Il raggio non può essere né negativo né zero."); + } + } + while (raggio <= 0); + //calcolo area + area = raggio * raggio * pi; + //output + Console.WriteLine("L'area del cerchio misura " + area); + break; + case 2: + //input + Console.Write("Inserire un numero: "); + numero = Convert.ToDouble(Console.ReadLine()); + //output condizionale + if (numero < 0) + { + Console.WriteLine("numero negativo"); + } + else if (numero == 0) + { + Console.WriteLine("hai inserito zero"); + } + else + { + Console.WriteLine("numero positivo"); + } + break; + case 3: + //input + do + { + Console.WriteLine("Inserire un numero maggiore di " + costanteIntera + " per terminare."); + Console.Write("Numero: "); + numeroIntero = Convert.ToInt32(Console.ReadLine()); + } + while (numeroIntero <= costanteIntera);//controllo che non si voglia terminare + break; + case 4: + //input + Console.Write("Quanti numeri vuoi inserire? "); + i = Convert.ToInt32(Console.ReadLine()); + for (; i > 0; i--)//faccio inserire quanti numeri vuole l'utente + { + Console.Write("Inserire un numero: "); + divisibilePerDieci = Convert.ToInt32(Console.ReadLine()); + multiploDiDieci = DivisibilePerDieci(divisibilePerDieci); + if (multiploDiDieci == true) + { + k++;//conto tutti i numeri divisibili per 10 + } + } + //output + Console.WriteLine("I numeri inseriti divisibili per dieci sono " +k ); + break; + case 5: + //input + Console.Write("Quanto deve essere larga la diagonale? "); + dimensioneDiagonale = Convert.ToInt32(Console.ReadLine()); + //output + Diagonale(dimensioneDiagonale); + break; + case 6: + //input + Console.WriteLine("NOTA: il numero binario deve essere letto da destra verso sinistra");//visto che non posso fare la procedura al contrario in modo che funzioni per ogni numero, uso quella standard e avviso l'utente + Console.Write("Inserire un numero intero positivo: "); + decToBin=Convert.ToUInt32(Console.ReadLine()); + //output + Console.Write(decToBin + " in binario vale "); + DecToBin(decToBin); + Console.WriteLine(); + break; + default: + Console.WriteLine("Opzione non valida."); + break; + } + } + while (scelta != 0); + } + static bool DivisibilePerDieci(double p_num) + { + //Dichiarazione e inizializzazione variabili + const double divisore = 10; + bool ritorno; + //verifico se p_num è divisibile per 10 o no + if (p_num % divisore == 0) + { + ritorno = true; + } + else + { + ritorno = false; + } + //ritorno + return ritorno; + } + static void Diagonale(int p_dimensione) + { + //Dichiarazione e inizializzazione variabili + int j = 0; + //stampa degli zeri prima dell'uno + for (int i = p_dimensione; i > 0; i--) + { + for (j = 0; j < i-1; j++) + { + Console.Write("0"); + } + //stampa dell'uno + Console.Write("1"); + //stampa degli zeri dopo l'uno + for (; j < p_dimensione-1 ; j++) + { + Console.Write("0"); + } + Console.WriteLine();//a capo dopo ogni riga + + } + } + static void DecToBin(uint p_num) + { + //Dichiarazione e inizializzazione variabili + uint resto = 0; + const uint costanteIntera = 2; + //calcolo del resto + while (p_num != 0) + { + resto = p_num % costanteIntera; + p_num = p_num / costanteIntera; + //output + Console.Write(resto); + } + } }