From caf1fa1fa39afd094201a76be3070fa4def242da Mon Sep 17 00:00:00 2001 From: La Programmatrice Verde Date: Fri, 11 Apr 2025 12:30:51 +0200 Subject: [PATCH] Opzione 4 + delocalizzazione opzioni in funzioni --- Program.cs | 123 ++++++++++++++++++++++++++++++++++++++++++++--------- 1 file changed, 102 insertions(+), 21 deletions(-) diff --git a/Program.cs b/Program.cs index d1feb56..690cd36 100644 --- a/Program.cs +++ b/Program.cs @@ -4,8 +4,7 @@ class Program { static void Main(string[] args) { Console.Clear(); - double altezza; - double segmentoConDiversoTipoDiLunghezzaApparteneteAllaFigura; + double altezza, segmentoConDiversoTipoDiLunghezzaApparteneteAllaFigura; int scelta; Rettangolo forma1 = null, forma2 = null; @@ -24,35 +23,100 @@ class Program { break; case 1: Console.Clear(); - Console.Write("Inserire la base del primo rettangolo: "); - segmentoConDiversoTipoDiLunghezzaApparteneteAllaFigura = Convert.ToDouble(Console.ReadLine()); - Console.Write("Inserire l'altezza del primo rettangolo: "); - altezza = Convert.ToDouble(Console.ReadLine()); + do { + Console.Write("Inserire la base del primo rettangolo: "); + segmentoConDiversoTipoDiLunghezzaApparteneteAllaFigura = Convert.ToDouble(Console.ReadLine()); + if (segmentoConDiversoTipoDiLunghezzaApparteneteAllaFigura <= 0) { + Console.WriteLine("Errore: la base non può essere minore o uguale a zero"); + } + } + while (segmentoConDiversoTipoDiLunghezzaApparteneteAllaFigura <= 0); + + do { + Console.Write("Inserire l'altezza del primo rettangolo: "); + altezza = Convert.ToDouble(Console.ReadLine()); + if (altezza <= 0) { + Console.WriteLine("Errore: la altezza non può essere minore o uguale a zero"); + } + } + while (altezza <= 0); + forma1 = new Rettangolo(segmentoConDiversoTipoDiLunghezzaApparteneteAllaFigura, altezza); - Console.Write("Inserire la base del primo rettangolo: "); - segmentoConDiversoTipoDiLunghezzaApparteneteAllaFigura = Convert.ToDouble(Console.ReadLine()); - Console.Write("Inserire l'altezza del primo rettangolo: "); - altezza = Convert.ToDouble(Console.ReadLine()); + do { + Console.Write("Inserire la base del secondo rettangolo: "); + segmentoConDiversoTipoDiLunghezzaApparteneteAllaFigura = Convert.ToDouble(Console.ReadLine()); + if (segmentoConDiversoTipoDiLunghezzaApparteneteAllaFigura <= 0) { + Console.WriteLine("Errore: la base non può essere minore o uguale a zero"); + } + } + while (segmentoConDiversoTipoDiLunghezzaApparteneteAllaFigura <= 0); + + do { + Console.Write("Inserire l'altezza del secondo rettangolo: "); + altezza = Convert.ToDouble(Console.ReadLine()); + if (altezza <= 0) { + Console.WriteLine("Errore: la altezza non può essere minore o uguale a zero"); + } + } + while (altezza <= 0); + forma2 = new Rettangolo(segmentoConDiversoTipoDiLunghezzaApparteneteAllaFigura, altezza); + Pausa(); break; case 2: Console.Clear(); - Console.WriteLine("Rettangolo 1:"); - forma1.StampaRettangolo(); - Console.WriteLine("\nRettangolo 2"); - forma2.StampaRettangolo(); + if (forma1 == null || forma2 == null) { + Console.WriteLine("Errore: è necessario creare i 2 rettangoli prima di mostrarli"); + } + else { + StampaRettangoli(forma1, forma2); + } Pausa(); break; case 3: - Console.WriteLine("Rettangolo 1:"); - Console.WriteLine($"Area: {forma1.CalcolaArea()}"); - Console.WriteLine($"Perimetro: {forma1.CalcolaPerimetro()}"); - Console.WriteLine("\nRettangolo 2"); + Console.Clear(); + if (forma1 == null || forma2 == null) { + Console.WriteLine("Errore: è necessario creare i 2 rettangoli prima di mostrarne area e perimetro"); + } + else { + StampaAreaEPerimetro(forma1, forma2); + } + Pausa(); + break; + case 4: + Console.Clear(); + if (forma1 == null || forma2 == null) { + Console.WriteLine("Errore: è necessario creare i 2 rettangoli prima di modificarli"); + } + else { + do { + Console.Write("Inserire l'altezza del primo rettangolo: "); + altezza = Convert.ToDouble(Console.ReadLine()); + if (altezza <= 0) { + Console.WriteLine("Errore: la altezza non può essere minore o uguale a zero"); + } + } + while (altezza <= 0); - Console.WriteLine($"Area: {forma2.CalcolaArea()}"); - Console.WriteLine($"Perimetro: {forma2.CalcolaPerimetro()}"); + forma1.SetAltezza(altezza); + + do { + Console.Write("Inserire la base del secondo rettangolo: "); + segmentoConDiversoTipoDiLunghezzaApparteneteAllaFigura = Convert.ToDouble(Console.ReadLine()); + if (segmentoConDiversoTipoDiLunghezzaApparteneteAllaFigura <= 0) { + Console.WriteLine("Errore: la base non può essere minore o uguale a zero"); + } + } + while (segmentoConDiversoTipoDiLunghezzaApparteneteAllaFigura <= 0); + + forma2.setSegmentoConDiversoTipoDiLunghezzaApparteneteAllaFigura(segmentoConDiversoTipoDiLunghezzaApparteneteAllaFigura); + + StampaRettangoli(forma1, forma2); + + StampaAreaEPerimetro(forma1, forma2); + } Pausa(); break; } @@ -65,4 +129,21 @@ class Program { Console.ReadKey(); Console.Clear(); } -} + + static void StampaRettangoli(Rettangolo p_forma1, Rettangolo p_forma2) { + Console.WriteLine("Rettangolo 1:"); + p_forma1.StampaRettangolo(); + Console.WriteLine("\nRettangolo 2"); + p_forma2.StampaRettangolo(); + } + + static void StampaAreaEPerimetro(Rettangolo p_forma1, Rettangolo p_forma2) { + Console.WriteLine("Rettangolo 1:"); + Console.WriteLine($"Area: {p_forma1.CalcolaArea()}"); + Console.WriteLine($"Perimetro: {p_forma1.CalcolaPerimetro()}"); + Console.WriteLine("\nRettangolo 2"); + + Console.WriteLine($"Area: {p_forma2.CalcolaArea()}"); + Console.WriteLine($"Perimetro: {p_forma2.CalcolaPerimetro()}"); + } +} \ No newline at end of file