Vediamo una serie di esempi con gli algoritmi di selezione, cioè di algoritmi che utilizzano le istruzioni condizionali come la funzione if … else.
Esempio 1 di algoritmo di selezione
In un supermercato c’è la promozione 3×2. Se si acquistano 3 pezzi se ne pagano solo 2. La promozione è cumulativa, ovvero se si acquistano 6 pezzi se ne pagano 4 e così via. Per quantità inferiori a 3 il prezzo rimane invariato.
Per realizzare questo algoritmo di selezione servono quindi le seguenti forme:
Ellisse per l’inizio e per la fine;
Parallelogramma per inserire l’input, ovvero in questo caso il prezzo e la quantità (q) e per visualizzare in output il prezzo finale da pagare;
Rettangolo per effettuare le operazioni;
Rombo per effettuare un test che può essere vero o falso. In questo caso si chiede: q è maggiore o uguale a 3? Se il test è vero si applica lo sconto, altrimenti si pagano i prodotti a prezzo intero.
Quindi chiedo in input il prezzo e la quantità che per brevità chiamo q.
Dopo controllo se q è maggiore o uguale a 3 (in alternativa avrei anche potuto mettere q>2). Se è falso allora calcolo il totale da pagare senza sconto memorizzandolo nella variabile T; se invece è vero calcolo la divisione arrotondata per difetto di q/3 ovvero utilizzo la funzione floor() di Algobuild, che è comune a molti linguaggi di programmazione.
Il risultato di questa operazione non è altro che la quantità che devo sottrarre alla quantità richiesta in input.
Ecco il diagramma di flusso completo dell’algoritmo di selezione, che utilizza l’istruzione condizionale if…else, realizzato con Algobuild.
Facciamo altri esempi di algoritmi di selezione con le istruzioni condizionali.
Esempio 2 di algoritmo di selezione
Data una temperatura T, visualizzare se si tratta di una temperatura: “sotto lo zero”, “uguale a zero” o “sopra lo zero”. Visualizzare il messaggio in output.
Per realizzare questo algoritmo servono dunque le seguenti forme:
Ellisse per l’inizio e per la fine;
Parallelogramma per inserire l’input, ovvero in questo caso la temperatura (T) e per visualizzare in output il messaggio;
Rombo per effettuare un test che può essere vero o falso. In questo caso si chiede: T è maggiore di 0? Se il test è vero si visualizza “La temperatura è sopra lo zero“; altrimenti si effettua un ulteriore controllo chiedendo: T è uguale a 0? Se vero si visualizza il messaggio “La temperatura è uguale a zero“; altrimenti si visualizza il messaggio; “La temperatura è sotto lo zero“.
Ecco quindi l’esempio di algoritmo che utilizza più istruzioni condizionali.
Ricordiamo che l’operatore di confronto si indica con il doppio uguale.
Alcuni link utili
Indice tutorial diagrammi a blocchi
2 – Primi esercizi con i diagrammi di flusso (perimetro triangolo; area di un trapezio)
3 – Altro semplice esercizio sui flow chart (calcolare uno sconto)
5 – Precedente e successivo di un numero
6 – Introduzione agli algoritmi di selezione
9 – Algoritmo di selezione sugli angoli