Cos'è un diagramma di flusso e come si legge
📅 15 giugno 2026 — di Alessandro Simone
Prima ancora di scrivere una riga di codice, un programmatore deve avere chiaro in testa cosa deve fare il programma: è il senso di come si costruisce un algoritmo. Il diagramma di flusso è lo strumento che serve proprio a questo: mettere nero su bianco il ragionamento, passo dopo passo, prima di tradurlo in un linguaggio come Python. In questa guida ti spiego cosa sono i simboli, come si legge un diagramma e, alla fine, vediamo insieme come lo stesso schema diventa codice vero.
Cos'è un diagramma di flusso?
Un diagramma di flusso è la rappresentazione visiva di un algoritmo, cioè dei passaggi necessari per risolvere un problema. Invece di descrivere a parole "prima fai questo, poi quello", lo disegni con delle forme collegate da frecce, che mostrano l'ordine in cui le operazioni vengono eseguite.
Il bello è che un diagramma di flusso non dipende dal linguaggio di programmazione: lo stesso schema può diventare Python, C o Java. È il ponte tra il "cosa voglio fare" e il "come lo scrivo", ed è il motivo per cui a scuola si parte da qui prima di toccare la tastiera.
Quali sono i simboli del diagramma di flusso?
Ogni forma ha un significato preciso, e usarla correttamente è metà del lavoro. Sono cinque i simboli che devi conoscere, e te li mostro uno per uno.
- Ovale (inizio/fine): segna dove comincia e dove termina l'algoritmo. Ogni diagramma ne ha sempre uno all'inizio e uno alla fine.
- Parallelogramma (input/output): indica quando il programma riceve un dato dall'utente (input) o ne mostra uno (output).
- Rettangolo (elaborazione): rappresenta un calcolo o un'operazione, come sommare due numeri o assegnare un valore.
- Rombo (decisione): pone una domanda con risposta sì/no, e da qui il flusso si divide in due strade.
- Frecce: collegano i simboli e indicano la direzione in cui si procede.
Quali errori si fanno più spesso con i simboli?
Da docente, gli scivoloni che vedo più di frequente sono sempre gli stessi, e conoscerli in anticipo ti fa risparmiare brutti voti.
- Confondere il rombo con il rettangolo: il rombo serve solo per le decisioni, cioè quando c'è una domanda. Se stai facendo un calcolo, è un rettangolo.
- Dimenticare inizio e fine: un diagramma senza i due ovali è incompleto. Sono obbligatori.
- Frecce senza direzione: ogni freccia deve avere la punta che indica dove si va, altrimenti il flusso è ambiguo.
- Dal rombo esce una strada sola: una decisione ha sempre due uscite, il ramo "sì" e il ramo "no".
Come si legge un diagramma di flusso? Un esempio
Mettiamo tutto insieme con un problema scolastico classico: calcolare la media di due voti e dire se lo studente è promosso (media maggiore o uguale a 6) o rimandato. Ecco l'algoritmo disegnato come diagramma di flusso.
Leggiamolo insieme, seguendo le frecce dall'alto. Si inizia dall'ovale. Si leggono i due voti (parallelogramma di input). Si calcola la media sommandoli e dividendo per due (rettangolo di elaborazione). Si arriva al rombo: la media è maggiore o uguale a 6? Se la risposta è "sì", si segue il ramo verde e si stampa "Promosso"; se è "no", si segue il ramo rosso e si stampa "Rimandato". In entrambi i casi si arriva alla fine. Tutto qui: hai appena letto un algoritmo completo.
Come diventa codice Python?
Ed ecco la parte che rende davvero utile tutto questo. Quel diagramma, una volta chiaro, si traduce quasi alla lettera in Python. Ogni simbolo che hai visto corrisponde a una riga di codice:
# Inizio del programma
# Parallelogramma di input: leggo i due voti
voto1 = float(input("Primo voto: "))
voto2 = float(input("Secondo voto: "))
# Rettangolo di elaborazione: calcolo la media
media = (voto1 + voto2) / 2
# Rombo di decisione: la media è almeno 6?
if media >= 6:
print("Promosso") # ramo "sì"
else:
print("Rimandato") # ramo "no"
# Fine del programma
Guarda la corrispondenza: il parallelogramma è diventato input(), il rettangolo è diventato il calcolo della media, e il rombo è diventato il costrutto if... else, con i due rami che sono esattamente il "sì" e il "no" del diagramma. Questo è il motivo per cui imparare a ragionare con i diagrammi di flusso ti rende molto più facile scrivere codice: hai già lo schema, devi solo tradurlo.
In sintesi
Il diagramma di flusso è il modo più chiaro per progettare un algoritmo prima di programmarlo: cinque simboli (ovale, parallelogramma, rettangolo, rombo e frecce) bastano a descrivere qualsiasi ragionamento. Una volta che sai leggerlo, tradurlo in Python diventa quasi automatico, come hai visto con l'esempio della media. Il prossimo passo è scoprire le tre strutture di base, sequenza, selezione e ciclo, con cui si costruisce qualunque programma.
Domande frequenti
Cos'è un diagramma di flusso in informatica? +
Un diagramma di flusso è la rappresentazione visiva di un algoritmo, cioè dei passaggi necessari per risolvere un problema. Invece di descrivere a parole le operazioni, si usano delle forme geometriche collegate da frecce che mostrano l'ordine di esecuzione. Il suo vantaggio è che non dipende dal linguaggio di programmazione: lo stesso diagramma può diventare Python, C o Java. Per questo a scuola si parte dai diagrammi di flusso prima di scrivere codice, perché aiutano a chiarire il ragionamento prima di tradurlo in un programma vero.
Quali sono i simboli principali di un diagramma di flusso? +
I simboli fondamentali sono cinque. L'ovale indica inizio e fine dell'algoritmo. Il parallelogramma rappresenta l'input e l'output, cioè quando si leggono o si mostrano dati. Il rettangolo indica un'elaborazione, come un calcolo o un'assegnazione. Il rombo rappresenta una decisione, una domanda con risposta sì o no da cui il flusso si divide in due strade. Le frecce, infine, collegano i simboli e indicano la direzione in cui si procede. Conoscere il significato preciso di ciascun simbolo è la base per disegnare e leggere correttamente qualsiasi diagramma.
A cosa serve il rombo nel diagramma di flusso? +
Il rombo rappresenta una decisione, cioè una domanda a cui si può rispondere solo sì o no (vero o falso). Da un rombo escono sempre due frecce, una per ciascuna risposta, e il flusso del programma prende una strada diversa a seconda del caso. Ad esempio, alla domanda "la media è maggiore o uguale a 6?" il ramo "sì" porta a stampare "Promosso" e il ramo "no" a stampare "Rimandato". Nel codice, il rombo corrisponde al costrutto if... else. Un errore comune è usare il rombo per operazioni che non sono domande: per i calcoli si usa invece il rettangolo.
Il diagramma di flusso si può tradurre in codice? +
Sì, ed è proprio il suo scopo principale. Ogni simbolo del diagramma corrisponde a un elemento del codice: il parallelogramma di input diventa un'istruzione di lettura come input() in Python, il rettangolo diventa un calcolo o un'assegnazione, e il rombo diventa un costrutto if... else con i suoi due rami. Poiché il diagramma non dipende dal linguaggio, lo stesso schema può essere tradotto in Python, C o Java cambiando solo la sintassi. Progettare prima il diagramma e poi tradurlo è il modo più semplice per scrivere codice corretto, perché si separa il ragionamento dalla scrittura.
Perché a scuola si studiano i diagrammi di flusso prima di programmare? +
Perché insegnano a ragionare prima di scrivere, ed è questa la difficoltà vera della programmazione. Disegnare un diagramma di flusso obbliga a scomporre il problema in passaggi chiari e ordinati, senza preoccuparsi della sintassi di un linguaggio. In questo modo lo studente impara a separare due cose distinte: il "cosa deve fare il programma" e il "come lo scrivo". Una volta che il ragionamento è chiaro sul diagramma, tradurlo in codice diventa molto più semplice e si commettono meno errori. È lo stesso metodo che si usa in laboratorio: prima lo schema, poi la tastiera.
