01. I simboli

Il diagramma di flusso (o flow chart) è uno strumento utilizzato per rappresentare, con l'aiuto della grafica, un algoritmo.

Si tratta di una speciale mappa concettuale, che utilizza blocchi di varie forme raccordati con delle frecce per indicare il flusso di lettura.

Poiché il diagramma di flusso fa uso di blocchi, rientra nella categoria dei diagrammi a blocchi.


I simboli del diagramma di flusso

Di seguito sono rappresentati i tipi di blocco utilizzati in un diagramma di flusso.

Per non rendere ambiguo un diagramma di flusso è indispensabile che sia sempre presente un solo blocco di start, che rappresenta il punto di inizio del diagramma stesso.

Le variabili e l'operazione di assegnazione

E' usuale, nei diagrammi di flusso, fare riferimento a variabili, intese come "contenitori" in grado di memorizzare informazioni (numeri o parole). Una variabile ha un nome con il quale può essere referenziata.

Per assegnare un valore ad una variabile (cioè per inserire un valore nel "contenitore") occorre eseguire un'operazione di assegnazione, rappresentata normalmente con il simbolo ←.

Esempio 1:

A ← 3

Si legge ad A assegna 3 e si intende che il "contenitore" di nome A da questo momento contiene il valore 3; è possibile che successivamente un'ulteriore operazione di assegnazione modifichi il valore di A.

Esempio 2:

A ← 5

B ← A + 2

In questo caso sono rappresentate due operazioni di assegnazione.

Con la prima operazione ad A viene assegnato il valore 5.

Con la seconda operazione a B viene assegnato il valore derivante da una somma. La somma coinvolge la variabile A (che contiene il valore 5) e il numero 2: il risultato della somma vale quindi 7 ed è questo il valore assegnato alla variabile B.

Esempio 3:

A ← 9

A ← A + 6

In questo caso sono rappresentate due operazioni di assegnazione, che coinvolgono sempre la variabile A.

Con la prima operazione ad A viene assegnato il valore 9.

Con la seconda operazione ad A viene assegnato il valore derivante da una somma. La somma coinvolge la variabile A (che contiene il valore 9) e il numero 6: il risultato della somma vale quindi 15 ed è questo il valore assegnato alla variabile A con la seconda operazione.

Esempio 4:

A ← 3

B ← 5

C ← A + B

In questo caso sono rappresentate tre operazioni di assegnazione.

Ad A è assegnato il valore 3; a B è assegnato il valore 5; a C è assegnata la somma tra A e B (i cui contenuti sono rispettivamente 3 e 5) e quindi il valore assegnato a C è 8.

Il blocco di controllo

Il blocco di controllo ha un ruolo fondamentale in un diagramma di flusso perché consente di modificare il flusso in funzione di un test.

In un blocco di controllo deve essere contenuta un'espressione logica che può assumere solo due valori: vero o falso. In altri termini, nel blocco deve essere contenuta una domanda alla quale si deve poter rispondere con un SI o con un NO, omettendo il punto interrogativo (che è implicito nel tipo di blocco).

Dal blocco di controllo fuoriescono due frecce (contrassegnate con le etichette SI e NO) che indicano il percorso da seguire nei due casi.

Esempio di diagramma di flusso

Eseguire il diagramma di flusso significa percorrere ordinatamente il flusso indicato dal diagramma fornendo gli input, producendo gli output ed eseguendo le operazioni richieste dai vari blocchi.

Esempio di esecuzione 1:

    1. Si parte dal blocco Start

    2. Si legge un numero a piacere assegnandolo ad A, ad esempio il numero 7 (quindi A vale 7)

    3. Si esegue l'operazione di assegnazione A ← A + 1, quindi A vale 8

    4. Si esegue il test: A è maggiore di 5? Poiché la risposta è affermativa si segue il flusso indicato dall'etichetta SI

    5. Si esegue l'operazione di assegnazione A ← A + 3, quindi A vale 11

    6. Seguendo il flusso si giunge al blocco di output che prevede venga stampata la variabile A: il valore stampato sarà quindi 11 (contenuto in A)

    7. Si giunge al blocco End e l'esecuzione ha termine.

Esempio di esecuzione 2:

    1. Si parte dal blocco Start

    2. Si legge un numero a piacere assegnandolo ad A, ad esempio il numero 2 (quindi A vale 2)

    3. Si esegue l'operazione di assegnazione A ← A + 1, quindi A vale 3

    4. Si esegue il test: A è maggiore di 5? Poiché la risposta è negativa si segue il flusso indicato dall'etichetta NO

    5. Seguendo il flusso si giunge al blocco di output che prevede venga stampata la variabile A: il valore stampato sarà quindi 3 (contenuto in A)

    6. Si giunge al blocco End e l'esecuzione ha termine.


Esecuzione passo passo

Per eseguire un diagramma di flusso passo passo, è possibile avvalersi di una tabella per registrare tutti i valori assunti dalle variabili e tenere traccia delle istruzioni eseguite, come mostrato negli esempi di questo capitolo.