Realizziamo un algoritmo per il calcolo del valore massimo fra tre numeri presi in input, ovvero il numero maggiore.
Per risolvere l’algoritmo utilizziamo dunque queste forme:
Ellisse per l’inizio e per la fine
Parallelogramma per inserire l’input, ovvero in questo caso i tre numeri A e B e C e per visualizzare in output il valore massimo fra i tre numeri.
Rombo per le effettuare un test che può essere vero o falso.
Il Rettangolo in questo caso non serve perché non dobbiamo fare nessuna operazione.
Procedimento
Innanzitutto prendiamo in input i tre numeri: A, B e C. Dopo effettuiamo il test A>B cioè ci chiediamo A è maggiore di B?
Abbiamo allora due possibilità:
1. Se il test è vero possiamo tralasciare B e confrontare A con C.
Ci servirà dunque un altro rombo per effettuare il secondo test.
Inseriamo all’interno del rombo la condizione A>C.
Se A è maggiore di C ovviamente A è il maggiore, altrimenti il maggiore è C.
2. Se il test iniziale (A>B) è falso allora vuol dire che A è minore di B, quindi sicuramente A non sarà il maggiore, pertanto confronto B con C, in questo modo: B>C.
Se B è maggiore di C allora il maggiore è B, altrimenti il maggiore è C.
Ecco dunque il diagramma a blocchi che rappresenta l’algoritmo:
L’algoritmo si può risolvere anche in un altro modo. Ad esempio utilizzando gli operatori logici.
Esempio 2 – massimo fra tre numeri
In questa soluzione utilizziamo l’operatore && che sta per and, cioè la funzione logica E.
Poniamo come prima condizione che A sia maggiore di B e contemporaneamente che A sia maggiore di C. Dunque in questo modo: A>B && A>C.
Se tale condizione è vera chiaramente A è il maggiore.
Altrimenti se A>B && A>C è falsa, vuol dire che A non può essere il maggiore, perché chiaramente non è comunque maggiore di entrambi. Dunque possiamo escludere A dal prossimo confronto e valutare solo B e C.
Quindi controlliamo solo se B è maggiore di C e se tale condizione è vera il massimo sarà B, altrimenti il massimo sarà C.
Esempio 3 – massimo fra tre numeri
Propongo un’altra soluzione che utilizza una variabile MAX dove memorizziamo il primo valore preso in input A.
Dunque se B è maggiore di MAX sostituisco il valore, altrimenti non faccio nulla in quanto MAX è più grande.
Dopo controllo se C è maggiore di MAX e se vero sostituisco il valore, altrimenti come prima vuol dire che MAX è il maggiore.
Ecco la soluzione realizzata con Algobuild:
Chiaramente ci possono essere altre soluzioni. Dite pure la vostra.
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