Algoritmi classici di selezione in C#

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.

← Torna al percorso sulla selezione