Diagrammi di flusso

La descrizione grafica di un algoritmo utilizza poche figure di base standardizzate: linea, freccia, rettangolo, parallelogramma, rombo, cerchio (Wikipedia: Diagramma di flusso)

algoritmo_inizio Un cerchio, o ellisse, con l’etichetta di inizio delle operazioni (inizio, start, begin, …)
algoritmo_fine Un cerchio, o ellisse, con l’etichetta di fine delle operazioni (fine, stop, end, halt, …)
algoritmo_io Un parallelogramma con la descrizione di un’operazione di

  • input (input, in, read, leggi, …)
  • output (output, out, write, scrivi, …)
algoritmo_op Un rettangolo con la descrizione di un’operazione / ordine (assegnazione, …)
algoritmo_freccia Una freccia specifica la transizione dell’esecuzione da un oggetto all’altro del diagramma di flusso
algoritmo_scelta 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_conv Si utilizza un cerchio per riunire i flussi generati con i rombi

 

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

Osserva gli accorgimenti che migliorano la leggibilità

  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

I colori e altri aspetti grafici migliorano la leggibilità ma non sono essenziali.


Codice?

Alcuni IDE a partire dal diagramma di flusso generano anche lo pseudocodice corrispondente e lo eseguono!

  1. AlgoBuild – La versione gratuita ha delle limitazioni
  2. Flowgorithm
  3. LARP – La versione gratuita ha delle limitazioni
  4. RAPTOR
  5. Visual Logic – Shareware
  6. WizBang

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.

Un diagramma di flusso può essere “manipolato” secondo le necessità mantenendo inalterato l’algoritmo

Per esempio il prossimo diagramma ha

  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

Equazione di primo grado

Risorse online

  • Diagrammi di flusso
    • SFC (Structured Flow Chart Editor)
  • Diagrammi|mappe|schemi|…
    • Applicazione: DIA (Applicazione che uso da molti anni) – Mind Map (Versione Educational)
    • Applicazione|Online: draw.io – yEd – …
    • Online: Diagramo – Cacoo – Creately – Lucidchart – smartdraw – …