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.
Ecco un tutorial pdf sugli algoritmi!
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.
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.
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…
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.
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.
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.
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.
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.
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
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
Ho provato ad eseguire il flow chart della maggiore o minore età ma non mi funziona. arriva fino alla istruzione if e poi si ferma. Perchè? le istruzioni che ho messo sono: in=anno(in input), if anni>=18(nella istruzione if), “non sei maggiorenne”(messa in outin a sinistra), “sei maggiorenne”(messa in outin a destra). Se io metto in imput 25 il programma prende il valore ma poi si ferma. Infatti in basso a sinistra trovo il valore “25”, mentre in basso a destra trovo “VARIABLES anni=(double) 25.0 e niente più. Grazie.
Assicurati di aver inserito le forme giuste. Per l’output è necessario il parallelogramma.