Diagrammi di flusso

Vedi Wikipedia: Diagramma di flusso

La descrizione grafica di un algoritmo utilizza poche figure di base standardizzate: linea, freccia, rettangolo, parallelogramma, rombo, cerchio.

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

  • input: input, in, read, leggi, …
  • output: output, out, write, scrivi, …

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 è

  • vera: sì, vero, true, T, …
  • falsa: no, falso, false, F, …

Si utilizza un cerchio per riunire i flussi generati con i rombi


Equazione di primo grado

Il diagramma di flusso a destra  (realizzato con l’applicazione DIA) rappresenta l’algoritmo per le equazioni di primo grado.

Osserva gli accorgimenti che ho utilizzato per migliorare la leggibilità (non sono standard!)

  1. Il blocco iniziale è in alto
  2. Le frecce sono dirette verso il basso
  3. Le frecce in uscita dal blocco di scelta
    • Sono sempre etichettate
    • La freccia va a sinistra
    • La freccia No va a destra
    • Il percorso è di colore blu
    • Il percorso No è di colore rosso
  4. Il blocco finale è in basso

Approfondimenti

Un diagramma di flusso rappresenta un certo algoritmo se

  1. è presente il blocco iniziale
  2. è presente il blocco finale
  3. il numero di blocchi è finito
  4. ogni blocco, tranne quello iniziale, ha una freccia in ingresso ed è raggiungibile partendo dal blocco iniziale
  5. ogni blocco, tranne quello finale, ha una freccia in uscita e può raggiungere il blocco finale
  6. il blocco di scelta ha due frecce in uscita
  7. una freccia collega due blocchi.

Inoltre…

  1. ogni operazione specificata è comprensibile per l’esecutore
  2. ogni operazione può essere eseguita in tempo finito dall’esecutore
  3. 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 graficamente mantenendo inalterato l’algoritmo

Equazione di primo grado
  1. Tutte le etichette in inglese
  2. Il blocco START in alto a sinistra
  3. I blocchi di INPUT/OUTPUT disposti in orizzontale
  4. Le frecce Yes verso il basso
  5. Le frecce No verso destra
  6. Il blocco STOP in basso a destra.

RISORSE ONLINE

  • Alcuni IDE a partire dal diagramma di flusso generano anche lo pseudocodice corrispondente e lo eseguono!
    AlgoBuildFlowgorithmLARPRAPTOR – Visual Logic – WizBang – …
  • Diagrammi di flusso, mappe concettuali, schemi, …
    DIAdraw.ioMind Map – yEd – Diagramo, Cacoo, Creately, Lucidchart, smartdraw, …
  • Solo diagrammi di flusso
    SFC (Structured Flow Chart Editor) – …