Massimo fra tre numeri

Massimo fra tre numeri

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:

massimo fra tre numeri

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.

valore massimo

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:

metodo massimo

Chiaramente ci possono essere altre soluzioni. Dite pure la vostra.

Alcuni link utili

Indice tutorial diagrammi a blocchi

1 – Diagramma 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)

4 – Area del cerchio

5 – Precedente e successivo di un numero

6 – Introduzione agli algoritmi di selezione

7 – Minore tra due numeri

8 – Maggiore fra tre numeri

9 – Algoritmo di selezione sugli angoli

Minore tra due numeri

Minore tra due numeri

Realizziamo un algoritmo per il calcolo del minore tra due numeri presi in input, ovvero il numero più piccolo.

Esempio 1

Per risolvere l’algoritmo serviranno dunque queste forme:

Ellisse per l’inizio e per la fine

Parallelogramma per inserire l’input, ovvero in questo caso i due numeri A e B e per visualizzare in output il minore tra i due numeri.

Rombo per le effettuare un test che può essere vero o falso. In questo caso si chiede: A è minore di B? Se il test è vero il minore tra i due numeri è A, altrimenti il minore è B.

Il Rettangolo in questo caso non serve.

In figura sotto ho inserito il diagramma a blocchi che rappresenta l’algoritmo per il calcolo del minore tra due numeri presi in input, realizzato con i diagrammi a blocchi.

minore tra due numeri

Ho utilizzato due output su ciascun ramo:

output: “il minore è” –  le virgolette sono necessarie perché dobbiamo stampare una frase

output: A – le virgolette non sono necessarie perché dobbiamo stampare una variabile.

Esempio 2 – Minore tra due numeri

Possiamo perfezionare il problema e controllare se i due numeri presi in input sono uguali. Solo se questa condizione è falsa allora si passa a calcolare il minore tra i due.

Per risolvere l’algoritmo sono necessari due rombi.

I rombi, che corrispondono all’istruzione if (se), sono strutture che si possono annidare l’una all’interno dell’altra.

Dunque nel primo rombo si confrontano se i due numeri sono uguali e se vero si stampa il messaggio: “i numeri sono uguali”. Se invece la condizione è falsa si usa un secondo rombo per testare chi è più piccolo dell’altro come fatto sopra.

N.B. Si usa il doppio uguale per fare il confronto tra A e B. Ricordiamo che un solo uguale è l’operatore di assegnamento.

Ecco, in figura sotto, il diagramma a blocchi che rappresenta l’algoritmo per il calcolo del numero più piccolo tra due numeri presi in input, realizzato con Algobuild.

numero più piccolo algobuild

Alcuni link utili

Indice tutorial diagrammi a blocchi

1 – Diagramma 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)

4 – Area del cerchio

5 – Precedente e successivo di un numero

6 – Introduzione agli algoritmi di selezione

7 – Minore tra due numeri

8 – Maggiore fra tre numeri

9 – Algoritmo di selezione sugli angoli


Area del cerchio con i diagrammi a blocchi

Area del cerchio con i diagrammi a blocchi

Realizziamo un semplice diagramma a blocchi che calcoli l’area del cerchio e la sua circonferenza conoscendo il raggio.

Per risolvere l’algoritmo serviranno queste forme:

Ellisse per l’inizio e per la fine.

Rettangolo per le operazioni, in questo caso per calcolare l’area e per inserire il valore della costante PiGreco.

Parallelogramma per inserire l’input, ovvero il raggio e per visualizzare l’output, cioè l’area e la circonferenza.

Ricordiamo che l’area del cerchio è il prodotto tra PiGreco e il quadrato del raggio, mentre la circonferenza è il prodotto tra PiGreco e il doppio del raggio.

PiGreco è un valore costante e nella risoluzione dell’algoritmo useremo il suo valore approssimato a 3,14.

N.B. La costante non va mai presa in input, in quanto non è un valore che si deve acquisire da tastiera, ma deve essere inserita come assegnamento, nel rettangolo.

Ecco dunque il diagramma a blocchi che calcola l’area del cerchio e la sua circonferenza, sviluppato con Algobuild.

diagramma a blocchi area cerchio

Notate che nell’output non si devono mettere le virgolette, come ho già spiegato nel precedente articolo.


Realizziamo adesso un altro esempio.

Secondo esempio – Area del cerchio con i flow chart

Calcolare l’area del cerchio prendendo in input la circonferenza.

In questo caso devo utilizzare la seguente formula:

Area= C*C/(4*PiGreco)

Per risolvere l’algoritmo serviranno queste forme:

Ellisse per l’inizio e per la fine.

Rettangolo per le operazioni, in questo caso per calcolare l’area e per inserire il valore della costante PiGreco.

Parallelogramma per inserire l’input, ovvero la circonferenza e per visualizzare l’output, cioè l’area del cerchio.

Ecco quindi il diagramma a blocchi che calcola l’area del cerchio, prendendo in input la circonferenza, sviluppato con i flow chart.

area diagramma a blocchi

Alcuni link utili

Indice argomenti diagramma a blocchi

1 – Diagramma 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)

4 – Area del cerchio

5 – Precedente e successivo di un numero

6 – Introduzione agli algoritmi di selezione

7 – Minore tra due numeri

8 – Maggiore fra tre numeri

9 – Algoritmo di selezione sugli angoli


Diagramma a blocchi

Diagramma a blocchi

Il diagramma a blocchi è uno schema a blocchi utilizzato per rappresentare gli algoritmi.

Il diagramma a blocchi è definito anche diagramma di flusso o flow chart ed è una rappresentazione grafica che utilizza delle forme geometriche per descrivere gli algoritmi.

Definizione di algoritmo

Un algoritmo non è altro che una sequenza ordinata e finita di passi semplici che consentono di portare a termine un compito, talvolta complesso.

Esempi di algoritmi ne troviamo tantissimi, anche nella vita di tutti i giorni. Ad esempio anche la semplice procedura che facciamo per fare una chiamata telefonica è composta da una sequenza ordinata e finita di passi e dunque si definisce algoritmo.

1 Accendere il telefono

2 Se il numero è già memorizzato in rubrica andare nella rubrica e selezionarlo

3 Altrimenti andare nel tastierino numerico e digitare il numero

4 Premere l’icona della cornetta per avviare la chiamata

Anche la procedura per preparare il caffè è un algoritmo e si può rappresentare con una sequenza ordinata e finita di passi.

E così tanti altri esempi.

Quindi, l’insieme dei passi che consentono di risolvere un problema prende nome di algoritmo.

Diagramma a blocchi o flow chart

Ci sono tanti modi per rappresentare un algoritmo, un metodo molto utilizzato è quello basato sui diagrammi a blocchi, conosciuti anche con il nome di flow chart (letteralmente diagrammi di flusso).

Sono dunque utilizzati dei blocchi, cioè delle forme geometriche e ciascuna di essa ha un significato ben preciso.


Le tipologie di blocchi convenzionalmente utilizzate sono:

Ellisse

L’ellisse è utilizzata semplicemente solo per indicare l’inizio e la fine di un diagramma a blocchi.

Quindi ciascun diagramma inizierà con il blocco inizio e terminerà, dopo aver risolto il compito assegnato, con il blocco fine.

blocco inizio fine

Parallelogramma

Il parallelogramma è utilizzato per prendere dei dati in INPUT o per visualizzare dei dati in OUTPUT. Nel caso in cui deve prendere dei dati in input è consigliabile inserire una I in alto a sinistra, seguita dai due punti. Similmente per l’output, che si è soliti indicare con una O in alto a sinistra, sempre seguita dai due punti.

Input output forme flowchart

Rettangolo

Il rettangolo è utilizzato per eseguire dei calcoli, ovvero per elaborare dei dati. Ad esempio per calcolare la somma tra due numeri o l’area di un rettangolo o ancora la media fra tre numeri, ecc…

rettangolo operazioni

Rombo

Il rombo è utilizzato per le istruzioni condizionali, ovvero per porre una domanda. All’interno dunque viene fatto un test, per cui si valuta una condizione che può essere o vera o falsa, quindi si sceglie tra due strade diverse. Un esempio di semplice test potrebbe essere quello di vedere se un numero è positivo o negativo.

rombo if

Il rombo viene spesso utilizzato anche per i cicli while e do-while.

I cicli sono delle strutture iterative che hanno lo scopo di ripetere più volte una o più istruzioni contenute al loro interno.

while rombo diagramma a blocchi

Quindi in base a ciascun problema si sceglierà quali e quanti forme utilizzare.


Prima di procedere con degli esempi pratici, diamo altre importanti definizioni.

Definizione di variabili e costanti

Le variabili sono aree di memoria Ram dove vengono memorizzati i dati e che possono essere cambiati durante l’esecuzione di un’applicazione.

Le costanti invece contengono un valore non modificabile.

Per entrambe è opportuno dare dei nomi sensati, non troppo lunghi e non separati da spazi.


Esempi di diagramma a blocchi

Sviluppiamo alcuni semplici algoritmi.

Area del quadrato realizzata con un diagramma a blocchi

Prendere in input il lato di un quadrato, calcolare e visualizzare l’area.

Per risolvere l’algoritmo serviranno queste forme:

Ellisse per l’inizio e per la fine;

Rettangolo per le operazioni, in questo caso per calcolare l’area;

Parallelogramma per inserire l’input, in questo caso il lato e per visualizzare l’output cioè l’area.

area quadrato flow chart

Noterete che il calcolo dell’area, ovvero il prodotto di lato x lato, è stato memorizzato in una variabile che ho chiamato area, un nome breve e significativo.

N.B. Nell’output abbiamo messo semplicemente la variabile area senza virgolette. C’è una grande differenza:

se nell’output metto area, senza utilizzare le virgolette, allora si visualizza la variabile che contiene il valore memorizzato;

se nell’output metto “area”, allora si stamperà la parola area e non il valore. In pratica con la dicitura “area” non ci stiamo riferendo ad una variabile.


Area del quadrato realizzata con un diagramma a blocchi – secondo esempio

Dato il perimetro calcolare e visualizzare l’area di un quadrato.

Per risolvere l’algoritmo serviranno queste forme:

Ellisse per l’inizio e per la fine;

Rettangolo per le operazioni, in questo caso per ricavare il lato;

Parallelogramma per inserire l’input (in questo caso il perimetro) e per visualizzare l’output cioè l’area.

Utilizziamo la variabile lato per memorizzare l’operazione perimetro/4.

area del quadrato flow chart

Algoritmo con i diagramma a blocchi

Determinare e visualizzare se una persona è maggiorenne prendendo in input i suoi anni.

Per risolvere l’algoritmo serviranno queste forme:

Ellisse per l’inizio e per la fine;

Rombo per effettuare un test che può essere vero o falso. In questo caso si chiede: anni è maggiore o uguale a 18? Quindi si avranno due possibili strade;

Parallelogramma per inserire l’input, ovvero gli anni e per visualizzare l’output;

In questo caso l’output cambierà in base alla condizione, se anni è maggiore o uguale a 18 allora si visualizzerà “sei maggiorenne”, altrimenti se tale condizione è falsa si visualizzerà “non sei maggiorenne”.

N.B. Notate l’uso delle virgolette. In questo caso sono necessarie in quanto non devo stampare una variabile ma una frase, una stringa.

se flowchart diagramma a blocchi

Per realizzare gli algoritmi con i diagrammi a blocchi si può semplicemente utilizzare un foglio oppure un software gratuito come ad esempio Algobuild.

Per scaricare Algobuild e utilizzarlo per realizzare i vostri flow chart potete seguire questo link: https://algobuild.com/it/index.html

Alcuni link utili

Indice argomenti diagramma a blocchi

1 – Diagramma 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)

4 – Area del cerchio

5 – Precedente e successivo di un numero

6 – Introduzione agli algoritmi di selezione

7 – Minore tra due numeri

8 – Maggiore fra tre numeri

9 – Algoritmo di selezione sugli angoli

Esercizi sui flow chart

Esercizi sui flow chart

Continuiamo a proporvi alcuni esercizi sui flow chart. Ricordiamo che i flow chart sono un modo per rappresentare graficamente un algoritmo.

Grazie ai flow chart si riesce ad avere una visione d’insieme del procedimento da seguire, che può essere poi sviluppato in vari linguaggi di programmazione.

Per lo sviluppo del flow chart possiamo utilizzare un semplice foglio di carta o un programma. Trovo molto utile Algobuild in quanto consente di trovare facilmente il punto in cui si commettono errori. Inoltre genera in maniera automatica la pseudo-codifica dell’algoritmo.

Esercizi sui flow chart – sconto

Data in input la spesa totale in un negozio di abbigliamento, determinare l’importo da pagare sapendo che alla cassa viene applicato uno sconto del 30%.

Per risolvere l’algoritmo dobbiamo quindi prendere in input la spesa totale. Inoltre, per migliorare l’usabilità dell’algoritmo inseriamo il valore dello sconto in una costante, ad esempio di nome S. Infatti, sarà più semplice in un secondo momento andare a variare i dati di input che in automatico faranno cambiare i restanti dati.

Quindi nella costante S memorizzo 0.3. Dopo calcolo il totale da pagare utilizzando questa semplice formula:

totale=spesa-spesa*S.

Per lo sviluppo dell’algoritmo serviranno dunque queste forme:

Ellisse per l’inizio e per la fine.

Rettangolo per le operazioni, in questo caso per calcolare il totale da pagare e per assegnare alla costante S la percentuale di sconto da applicare.

Parallelogramma per inserire l’input, ovvero la spesa e per visualizzare l’output, cioè il totale da pagare.

Ecco dunque la risoluzione dell’esercizio sui flow chart:

flow chart

Ecco la pseudo-codifica generata da Algobuild:

PROG main
    IN spesa
    ASSIGN S=0.3
    ASSIGN totale=spesa-spesa*S
    OUT totale
END PROG

Per la risoluzione del seguente algoritmo potrei anche moltiplicare direttamente il prodotto per 0.7.

Quindi creiamo una variabile S dove memorizziamo 0.7 e poi applichiamo la formula:

totale=spesa*S.

Inoltre, dato che la variabile spesa non la riutilizzo posso usare sempre la stessa:

spesa =spesa*S.

Nella prossima lezione propongo altri esercizi sui flow chart.

Alcuni link utili

Indice argomenti diagramma a blocchi

1 – Diagramma 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)

4 – Area del cerchio

5 – Precedente e successivo di un numero

6 – Introduzione agli algoritmi di selezione

7 – Minore tra due numeri

8 – Maggiore fra tre numeri

9 – Algoritmo di selezione sugli angoli