Opzione 4 + delocalizzazione opzioni in funzioni

This commit is contained in:
La Programmatrice Verde 2025-04-11 12:30:51 +02:00
parent f822be4eff
commit caf1fa1fa3

View File

@ -4,8 +4,7 @@ class Program {
static void Main(string[] args) { static void Main(string[] args) {
Console.Clear(); Console.Clear();
double altezza; double altezza, segmentoConDiversoTipoDiLunghezzaApparteneteAllaFigura;
double segmentoConDiversoTipoDiLunghezzaApparteneteAllaFigura;
int scelta; int scelta;
Rettangolo forma1 = null, forma2 = null; Rettangolo forma1 = null, forma2 = null;
@ -24,35 +23,100 @@ class Program {
break; break;
case 1: case 1:
Console.Clear(); Console.Clear();
Console.Write("Inserire la base del primo rettangolo: "); do {
segmentoConDiversoTipoDiLunghezzaApparteneteAllaFigura = Convert.ToDouble(Console.ReadLine()); Console.Write("Inserire la base del primo rettangolo: ");
Console.Write("Inserire l'altezza del primo rettangolo: "); segmentoConDiversoTipoDiLunghezzaApparteneteAllaFigura = Convert.ToDouble(Console.ReadLine());
altezza = 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); forma1 = new Rettangolo(segmentoConDiversoTipoDiLunghezzaApparteneteAllaFigura, altezza);
Console.Write("Inserire la base del primo rettangolo: "); do {
segmentoConDiversoTipoDiLunghezzaApparteneteAllaFigura = Convert.ToDouble(Console.ReadLine()); Console.Write("Inserire la base del secondo rettangolo: ");
Console.Write("Inserire l'altezza del primo rettangolo: "); segmentoConDiversoTipoDiLunghezzaApparteneteAllaFigura = Convert.ToDouble(Console.ReadLine());
altezza = 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); forma2 = new Rettangolo(segmentoConDiversoTipoDiLunghezzaApparteneteAllaFigura, altezza);
Pausa(); Pausa();
break; break;
case 2: case 2:
Console.Clear(); Console.Clear();
Console.WriteLine("Rettangolo 1:"); if (forma1 == null || forma2 == null) {
forma1.StampaRettangolo(); Console.WriteLine("Errore: è necessario creare i 2 rettangoli prima di mostrarli");
Console.WriteLine("\nRettangolo 2"); }
forma2.StampaRettangolo(); else {
StampaRettangoli(forma1, forma2);
}
Pausa(); Pausa();
break; break;
case 3: case 3:
Console.WriteLine("Rettangolo 1:"); Console.Clear();
Console.WriteLine($"Area: {forma1.CalcolaArea()}"); if (forma1 == null || forma2 == null) {
Console.WriteLine($"Perimetro: {forma1.CalcolaPerimetro()}"); Console.WriteLine("Errore: è necessario creare i 2 rettangoli prima di mostrarne area e perimetro");
Console.WriteLine("\nRettangolo 2"); }
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()}"); forma1.SetAltezza(altezza);
Console.WriteLine($"Perimetro: {forma2.CalcolaPerimetro()}");
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(); Pausa();
break; break;
} }
@ -65,4 +129,21 @@ class Program {
Console.ReadKey(); Console.ReadKey();
Console.Clear(); 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()}");
}
} }