Pillola di saggezza - I Flow Chart
Potrà sembrare banale e scontato parlare di Flow Chart, soprattutto quando ci si rivolge a programmatori, ma un ripasso o un buon argomento di discussione non guastano mai.
Ma che cos’è un Flow Chart?
Un Flow Chart o Schema di flusso o Diagramma, è una rappresentazione grafica di un algoritmo realizzata mediante l’uso di simboli le cui forme rappresentano azioni differenti, collegati tra loro da frecce che ne rappresentano il flusso di esecuzione delle istruzioni contenute nell’algoritmo che si vuole rappresentare.
Giusto per completezza, diamo anche una definizione ad algoritmo. Per algoritmo si intende un insieme finito di azioni che risolvono un problema trasformando dei dati in ingresso in un risultato finito (output).
Mediante i Flow chart si possono rappresentare gli algoritmi in modo chiaro e leggibile, ma soprattutto in modo standard evitando interpretazioni errate delle istruzioni.
Un algoritmo deve essere:
- Finito: costituito da un numero finito di istruzioni e presenta una fine;
- Deterministico: partendo dagli stessi dati in input, si ottengono i medesimi risultati in output;
- Non ambiguo: le operazioni devono poter essere interpretate nello stesso modo da tutti anche se l'esecutore è differente;
- Generale: la soluzione è uguale per tutti i problemi della medesima classe.
Ma in pratica come si fa un Flow Chart?
Di seguito la tabella con le principali istruzioni e il relativo metodo di rappresentazione:
Tipo di istruzione | Simbolo | Significato |
---|---|---|
Azione |
![]() |
Blocco di azione: esegue l’azione descritta all’interno del rettangolo. L’azione può produrre risultati intermedi o finali. |
Controllo (condizionale) |
![]() |
Blocco di controllo: istruzione che permette di prendere una decisione in base al risultato di una condizione. Verifica la condizione, e se il risultato è vero passa all’esecuzione delle istruzioni sul ramo corrispondente, altrimenti esegue le istruzioni dell’altro ramo. |
Comunicazione (trasmissione) | di ingresso (input):![]() |
Comunicazione in ingresso: l’utente comunica dati al calcolatore. Il valore verrà inserito in una variabile. |
di uscita (output):![]() |
Comunicazione in uscita: l’elaboratore comunica dati all’utente. I dati vengono visualizzati a video. |
|
Salto | Altera l’esecuzione sequenziale per “Saltare” ad altre parti dell’algoritmo.![]() |
Salto Condizionato: associato al verificarsi di una condizione. Va ad eseguire l’istruzione indirizzata dal flusso con le frecce. |
Salto Incondizionato: non è associato al verificarsi di una condizione. Va ad eseguire l’istruzione indirizzata dal flusso con le frecce. |
||
Inizio algoritmo |
![]() |
Blocco di inizio algoritmo |
Fine algoritmo |
![]() |
Blocco di fine algoritmo |
Durante la fase di costruzione del Flow Chart è anche consigliabile numerare (magari con numeri multipli di 10) così che si possano identificare con facilità le fasi che compongono il processo nella documentazione descrittiva.
Per costruire facilmente un bel Flow Chart è semplice, se hai le idee chiare di quale sia l’algoritmo da rappresentare, puoi ad esempio utilizzare www.diagrams.net da cui puoi scaricare l’applicazione in locale oppure utilizzare direttamente il tool online.
Come accennato, i Flow Chart non sono solo utili per i programmatori in fase di costruzione di un programma, ma possono essere utilizzati, ad esempio, per tracciare i processi aziendali per poterne così valutare l’efficienza ed apportare le opportune correzioni. Stessa analisi che solitamente facciamo in fase di start-up di Odoo, sistema ERP che permette di ottimizzare al massimo i processi aziendali evitando inutili perdite di tempo.
Ti lancio una sfida. Prova a costruire il Flow Chart e scrivi il relativo codice in Python o in PHP di questi 2 problemi e inviaci tutto via mail a info@bnow.it insieme al tuo curriculum, siamo sempre alla ricerca di persone volenterose per ampliare il nostro organico!
Problema 1: Calcola e applica lo sconto corretto ad un prezzo fornito in input secondo le seguenti fasce:
- prezzo inferiore a 500 Euro, sconto 10%
- prezzo compreso tra 500 e 999 Euro, sconto 15%
- prezzo pari o superiore a 1000 Euro, sconto 20%
Problema 2: Converti un numero decimale compreso tra 1 e 1000 in numero romano.
Buon divertimento!
29/08/2022 Bruno Avalle