Gli operatori in Flowgorithm

Un operatore è un simbolo utilizzato per compiere particolari operazioni sui dati.
Una prima classificazione può distinguerli in operatori:

  • unari, ossia operatori che agiscono su un solo operando
  • binari, ossia operatori che agiscono su due operandi

I più comuni operatori, che utilizzeremo negli esercizi sui diagrammi a blocchi con Flowgorithm, sono i seguenti:
Operatore Operazione Esempi
+ addizione a + b
a + 2
- sottrazione a - b
a - 2
* moltiplicazione a * b
a * 2
/ divisione a / b
a / 2
%
mod
modulo
(resto divisione intera)
a % b
a % 2
==
=
uguaglianza a = b
a == b
!=
<>
disuguaglianza a != b
a <> b
< minore a < b
a < 10
> maggiore a > b
a > 10
<= minore o uguale a <= b
a <= 10
>= maggiore o uguale a >= b
a >= 10
&&
and
congiunzione logica (and) a > 0 && b > 0
a > 0 and b > 0
||
or
disgiunzione logica (or) a > 0 || b > 0
a > 0 or b > 0
!
not
negazione logica !a
not a
& concatenazione di stringhe s1 & s2
"Ciao " & nome
^ potenza a^b
a^2

Gli operatori elencati possono essere utilizzati anche contemporaneamente in espressioni articolate. In tali situazioni essi sono soggetti a precise regole di precedenza o priorità di esecuzione di un operatore nei confronti di un altro.

Il livello di priorità degli operatori è indicato, in ordine decrescente, nella tabella che segue.
Questo vuol dire che, in assenza di parentesi nell'espressione, gli operatori che occupano le posizioni più elevate della tabella saranno valutati prima di quelli che sono nelle posizioni inferiori.

Livello Gruppo Operatore
8 Unari ! not
7 Potenza ^
6 Moltiplicazione * / % mod
5 Addizione + -
4 Concatenazione &
3 Relazionale < <= > >= == = != <>
2 Congiunzione logica && and
1 Disgiunzione logica || or

Tuttavia, per avere la certezza dell'ordine di valutazione delle espressioni, si consiglia l'utilizzo esplicito delle parentesi tonde.

Ad esempio, se nell'espressione che segue volessimo dare precedenza all'operazione di somma rispetto a quella di prodotto, potremmo racchiudere la somma tra parentesi tonde come indicato:

a = 3 * (c + d)