La descrizione grafica di un algoritmo utilizza poche figure di base standardizzate: linea, freccia, rettangolo, parallelogramma, rombo, cerchio (Wikipedia: Diagramma di flusso)
![]() |
Un cerchio, o ellisse, con l’etichetta di inizio delle operazioni (inizio, start, begin, …) |
![]() |
Un cerchio, o ellisse, con l’etichetta di fine delle operazioni (fine, stop, end, halt, …) |
![]() |
Un parallelogramma con la descrizione di un’operazione di
|
![]() |
Un rettangolo con la descrizione di un’operazione / ordine (assegnazione, …) |
![]() |
Una freccia specifica la transizione dell’esecuzione da un oggetto all’altro del diagramma di flusso |
![]() |
Un rombo con all’interno un’espressione logica e due frecce di uscita che indicano la scelta del percorso se l’espressione è
|
![]() |
Si utilizza un cerchio per riunire i flussi generati con i rombi |
Il diagramma di flusso a destra (realizzato con DIA) rappresenta l’algoritmo per le equazioni di primo grado.
Osserva gli accorgimenti che ho utilizzato per migliorare la leggibilità (non sono standard!)
- Il blocco iniziale è in alto
- Il blocco finale è in basso
- Le frecce vanno verso il basso
- Le frecce in uscita dal blocco di scelta
- Sono sempre etichettate
- La freccia Sì va a sinistra
- La freccia No va a destra
- Il percorso Sì è di colore blu
- Il percorso No è di colore rosso
Approfondimenti
Un diagramma di flusso rappresenta un certo algoritmo se
- il numero di blocchi è finito
- è presente il blocco iniziale
- è presente il blocco finale
- ogni blocco, tranne quello iniziale, ha una freccia in ingresso ed è raggiungibile partendo dal blocco iniziale
- ogni blocco, tranne quello finale, ha una freccia in uscita e può raggiungere il blocco finale
- il blocco di scelta ha due frecce in uscita
- una freccia collega due blocchi.
Inoltre…
- ogni operazione specificata è comprensibile per l’esecutore
- ogni operazione può essere eseguita in tempo finito dall’esecutore
- per ogni possibile combinazione dei dati in ingresso l’esecutore parte dal blocco iniziale e può raggiungere in tempo finito il blocco finale.
Versione alternativa
Un diagramma di flusso può essere manipolato secondo le necessità mantenendo inalterato l’algoritmo
Per esempio il prossimo diagramma ha
- Tutte le etichette in inglese
- Il blocco START in alto a sinistra
- Il blocco STOP in basso a destra
- I blocchi di INPUT/OUTPUT disposti in orizzontale
- Le frecce Yes verso il basso
- Le frecce No verso destra
Risorse online
Codice?
Alcuni IDE a partire dal diagramma di flusso generano anche lo pseudocodice corrispondente e lo eseguono!
- AlgoBuild – La versione gratuita ha delle limitazioni
- Flowgorithm
- LARP – La versione gratuita ha delle limitazioni
- RAPTOR
- Visual Logic – Shareware
- WizBang
- …
Diagrammi di flusso
- SFC (Structured Flow Chart Editor)
Diagrammi | mappe | schemi
Applicazione | Applicazione + Applicazione web |
Applicazione web |
|
|