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, …)algoritmo_inizio
Un cerchio, o ellisse, con l’etichetta di fine delle operazioni (fine, stop, end, halt, …)algoritmo_fine
Un parallelogramma con la descrizione di un’operazione di
  • input (input, in, read, leggi, …)
  • output (output, out, write, scrivi, …)
algoritmo_io
Un rettangolo con la descrizione di un’operazione / ordine (assegnazione, …)algoritmo_op
Una freccia specifica la transizione dell’esecuzione da un oggetto all’altro del diagramma di flussoalgoritmo_freccia
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, …)
algoritmo_scelta
Si utilizza un cerchio per riunire i flussi generati con i rombialgoritmo_conv
Equazione di primo grado

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!)

  1. Il blocco iniziale è in alto
  2. Il blocco finale è in basso
  3. Le frecce vanno verso il basso
  4. 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

Approfondimenti

Un diagramma di flusso rappresenta un certo algoritmo se

  1. il numero di blocchi è finito
  2. è presente il blocco iniziale
  3. è presente il blocco finale
  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 secondo le necessità mantenendo inalterato l’algoritmo

Equazione di primo grado

Le modifiche sono solo grafiche!

  1. Tutte le etichette in inglese
  2. Il blocco START in alto a sinistra
  3. Il blocco STOP in basso a destra
  4. I blocchi di INPUT/OUTPUT disposti in orizzontale
  5. Le frecce Yes verso il basso
  6. Le frecce No verso 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) – …