Concludiamo il percorso sulla selezione applicando if e else ad alcuni problemi classici del capitolo Selezione di Fondamenti di programmazione 1. Prima individuiamo input, output e condizioni; poi realizziamo e proviamo il programma.
Il maggiore tra due numeri
Input: due interi a e b. Output: il maggiore, oppure un messaggio se sono uguali. Non basta controllare a > b: occorre gestire anche il caso di uguaglianza.
Console.Write("Primo numero: ");
int a = int.Parse(Console.ReadLine() ?? "0");
Console.Write("Secondo numero: ");
int b = int.Parse(Console.ReadLine() ?? "0");
if (a > b)
{
Console.WriteLine($"Maggiore: {a}");
}
else if (b > a)
{
Console.WriteLine($"Maggiore: {b}");
}
else
{
Console.WriteLine("I numeri sono uguali");
}
Il maggiore tra tre numeri
Un metodo consiste nell’ipotizzare che il primo valore sia il maggiore, poi confrontarlo con il secondo e con il terzo. Questa soluzione applica due selezioni semplici ed è facilmente verificabile con una tabella di traccia.
int a = 9, b = 12, c = 7;
int massimo = a;
if (b > massimo)
{
massimo = b;
}
if (c > massimo)
{
massimo = c;
}
Console.WriteLine($"Il massimo è {massimo}");
Tabella di traccia
Con a=9, b=12, c=7: inizialmente massimo=9; dopo il confronto con b, massimo=12; il confronto con c non lo cambia. L’output è 12. La stessa logica funziona anche se alcuni valori sono negativi.
Casi di prova
- Prova tre valori crescenti, tre decrescenti e tre uguali.
- Verifica i casi con due valori uguali e uno diverso.
- Prova anche zero e numeri negativi per individuare eventuali errori.
Allenamento
- Leggi tre numeri e stampa il minore.
- Leggi il prezzo di un prodotto e applica uno sconto solo oltre una soglia.
- Dati tre lati, verifica che siano tutti positivi e che soddisfino la disuguaglianza triangolare.


