Diagrammi di flusso con Flowgorithm

Breve guida per installare, capire e utilizzare Flowgorithm e scrivere semplici algoritmi e programmi tramite diagrammi di flusso.

  1. Installazione
  2. Utilizzo
  3. Come e quali blocchi utilizzare
    1. Dichiarazione
    2. Lettura e Scrittura
    3. Assegnazione (x = …)
    4. Condizione (if … else …)
    5. Mentre (while …)
    6. Fai (do … while)
  4. Funzioni

Installazione

Per installare Flowgorithm, seguire le istruzioni sul sito ufficiale flowgorithm.org. Il programma è disponibile per Windows, ma con fatica può essere usato anche su Mac e Linux seguendo le istruzioni sul sito.

Scarica Flowgorithm

Utilizzo

Aprire Flowgorithm cercandone l’icona sul desktop o nel menù Start. Creare un nuovo progetto. Apparirà questa schermata:

Selezionare una freccia, ad esempio all’inizio l’unica presente fra Inizio e Fine, e selezionare quale blocco inserire fra quelli proposti dal programma:

Come e quali blocchi utilizzare

Flowgorithm differisce dagli schemi spesso fatti alla lavagna in quanto necessita di una dichiarazione esplicita delle variabili usate (blocco Dichiarazione) e dal fatto che non permette alle frecce di essere disegnate e connessa a piacere con i blocchi.

Dichiarazione

Il blocco Dichiarazione introduce nel programma una o più variabili, che possono avere un nome a piacere (senza spazi) come ad esempio, x, y, z, nome, numero, base, altezza o qualunque altro nome.

Nel campo Nome variabile/i inserire il nome della variabile che si vuole introdurre nel programma, oppure più di un nome, separati da virgole.

Ogni variabile ha un tipo, concetto comune in molti linguaggi di programmazione. Il programmatore deve dire che tipo di dati verrà memorizzato nelle variabili dichiarate.

Possibili tipi:

  • Intero: numeri come 0, 1, 2, 3, …, -4, -5, …
  • Reale: numeri con la virgola come 0, 1.5, 3.14, -2.79, …
  • Stringa: del testo come "Roma", "Italia", "lunedì", "Giovanni", "casa", "scuola", …
  • Booleano: può assumere solo il valore vero o falso.

Attenzione: la virgola decimale è sostituita dal punto . secondo la convenzione anglosassone. Le stringhe, cioè il testo, devono sempre essere incluse fra virgolette "…".

Lettura e Scrittura

I blocchi Lettura e Scrittura chiedono all’utente (lettura) o comunicano all’utente (scrittura) il valore di una variabile.

Durante la lettura, l’utente inserisce un valore e questo viene assegnato alla variabile, eliminando l’eventuale valore precedente memorizzato in precedenza. Nell’esempio viene letta la variabile nome.

Durante la scrittura, il valore della variabile viene comunicato all’utente, lasciando la variabile inalterata. È un errore scrivere una variabile se a questa non è stato ancora assegnato un valore. Nell’esempio viene scritta la variabile x.

È anche possibile scrivere un’espressione, intesa come valore composto da una o più variabili, ad esempio x + y. Il programma scriverà la somma delle due variabili.

Nelle espressioni è possibile utilizzare le operazioni:

  • + addizione
  • - sottrazione
  • * moltiplicazione
  • / divisione
  • % resto della devisione, detto modulo

È possibile anche usare le parentesi tonde ( e ) come nelle espressioni matematiche.

Assegnazione (x = …)

L’Assegnazione imposta una variabile a un determinato valore, cioè assegna quel valore alla variabile. Abbiamo visto che questo è possibile tramite il blocco Lettura, tramite cui alla variabile viene assegnato un valore dato dall’utente. Con il blocco Assegnazione invece il valore viene calcolato dal programma.

L’assegnazione può essere usata per assegnare a una variabile un valore iniziale, tipicamente zero, oppure un valore calcolato come nell’esempio illustrato in figura, dove z = x + y.

È possibile usare qualunque espressione, anche complessa, in un’assegnazione.

Condizione (if … else …)

Valuta una condizione, cioè un’espressione o una domanda che può avere solo risposta vero o falso. In caso vero, il programma prosegue con i blocchi sulla destra. In caso falso, il programma prosegue con i blocchi sulla sinistra. Al termine il programma continua dritto.

L’espressione ha tipicamente una forma che può avere solo risposta vero o falso, ad esempio x > 0, x > y, x == y, nazione == "Italia", …

Non sono espressioni valide: x + y, x - 5, … in quanto la loro risposta non può essere solo vero o falso.

Le condizioni possono essere scritte con gli operatori:

  • == uguale
  • != diverso
  • > maggiore, >= maggiore o uguale
  • < minore, <= minore o uguale

Le condizioni possono essere composte insieme tramite operazioni E (&&) e O (||).

Alcuni esempi per comprendere meglio:

  • a > b && c < d, vera se a è maggiore di b E c è minore di d, cioè se sia la prima che la seconda condizione sono vere. Entrambe devono essere vere (E).
  • nome == "Carlo" || a == b, vera se nome è Carlo O a è uguale a b, cioè se la prima condizione oppure la seconda condizione (o entrambe) sono vere (O). Almeno una deve essere vera.
  • a > b && b > c && c > d, tutte e 3 le condizioni devono essere vere.
  • (a > b && b > c) || a == c, sia la prima che la seconda condizione deve essere vera (E), oppure la terza condizione deve essere vera (O).

Mentre (while …)

Per comprendere meglio questo blocco, immaginare si chiami Finché, che è una traduzione in italiano di Mentre più adatta a rappresentare il comportamento del blocco.

Così come il blocco Condizione visto precedentemente, il blocco Mentre introduce una condizione che deve essere scritta in forma di espressione vero o falso, nell’esempio riportato si chiede se x sia diverso da zero.

Ricordarsi che != significa diverso da.

Il blocco introduce una ripetizione (loop). I blocchi sulla destra vengono ripetuti finché la condizione è vera. La condizione viene valutata all’inizio di ogni ripetizione. Tutto questo si ripete fino a quando la condizione rimane vera, cioè finché x è diverso da zero.

Quando la condizione diventa falsa, il ciclo si interrompe e il programma continua dopo il ciclo. Se la condizione è falsa fin dall’inizio, i blocchi sulla destra non vengono eseguiti neanche una volta.

Fai (do … while)

Per comprendere meglio questo blocco, immaginare si chiami Fai … Finché …, che è un nome più adatto di solo Fai a rappresentare il comportamento del blocco.

Così come il blocco Condizione visto precedentemente, il blocco Fai introduce una condizione che deve essere scritta in forma di espressione vero o falso, nell’esempio riportato si chiede se x sia maggiore o uguale a 5.

Il blocco introduce una ripetizione (loop). I blocchi sulla destra vengono ripetuti finché la condizione è vera. La condizione viene valutata alla fine di ogni ripetizione. Tutto questo si ripete fino a quando la condizione rimane vera.

Quando la condizione diventa falsa, il ciclo si interrompe e il programma continua dopo il ciclo. I blocchi sulla destra vengono eseguiti almeno una volta, anche se la condizione è falsa fin dall’inizio: questa è la differenza fondamentale tra Fai e Mentre. In questo caso il contenuto del blocco viene eseguito almeno una volta. Nel caso di Mentre, è possibile che il contenuto non venga mai eseguito.

Funzioni

Flowgorithm riconosce alcune funzioni che possono essere usate nelle assegnazioni di variabili e nelle espressioni condizionali.

Alcuni esempi:

  • Random(n) - un numero casuale tra 0 e n - 1.
  • Len(s) - la lunghezza della stringa s, ovvero di quanti caratteri è composta.
  • Abs(n) - il valore assoluto di n.
  • Int(n) - la parte intera di n, cioè n senza le sue cifre decimali.
  • Sqrt(n) - la radice quadrata di n.

L’elenco completo di tutte le funzioni supportate è disponibile online.