namespace rettangolo; class Program { static void Main(string[] args) { Console.Clear(); double altezza, segmentoConDiversoTipoDiLunghezzaApparteneteAllaFigura; int scelta; Rettangolo forma1 = null, forma2 = null; do { Console.WriteLine("Inserire un'opzione:"); Console.WriteLine("1. Crea 2 rettangoli"); Console.WriteLine("2. Mostra rettangoli"); Console.WriteLine("3. Mostra area e perimetro rettangoli"); Console.WriteLine("4. Modifica rettangoli"); ; Console.WriteLine("0. Esci"); Console.Write("Scelta: "); scelta = Convert.ToInt32(Console.ReadLine()); switch (scelta) { case 0: break; case 1: Console.Clear(); 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); 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(); 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.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); 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; 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 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()}"); } }