Programmazione.html.it

  Home page

   Guida Base

   Guida al Java

   Guida al C

   Guida al C++

   Guida al Delphi

   Guida a VB .NET

   Guida al Visual Basic

   Guida al Python

   Guida al'UML

  Forum di discussione
  HTML.it




Guida al linguaggio C
  LEZIONE:  Operatori aritmetici


In realtà abbiamo già visto i semplici operatori di assegnamento (=) e di divisione intera (/), ma non abbiamo spiegato nel dettagli tutte le operazioni che si possono compiere sulle variabili per mezzo dei loro operatori. Ovviamente oltre alla divisione intera, con gli interi, è possibile eseguire la somma (+), la sottrazione (-), la moltiplicazione (*) e la divisione con resto (%), di cui presentiamo una tabella riassuntiva:

Operazioni con gli int
Simbolo
Esempio
Addizione
+
4 + 27 = 31
Sottrazione
-
76 - 23 = 53
Moltiplicazione
*
4 * 7 = 28
Divisione intera
/
10 / 3 = 3
(3 è il n di volte divisibili senza resto)
Divisione con modulo
%
11 / 6 = 5
(5 è il resto della divisione)

Quando lavoriamo con i numeri reali (float o double) l'unica operazione che manca è quella di "divisione con modulo" che ovviamente non ha ragione di esistere, in quanto le divisioni possono contenere le parti frazionarie:

Operazioni con i double
Simbolo
Esempio
Addizione
+
2.5 + 14.3 = 16.8
Sottrazione
-
43.8 - 12.7 = 31.1
Moltiplicazione
*
7.5 * 3.0 = 22.5
Divisione
/
5.0 / 2.0 = 2.5

Esistono poi degli operatori ai quali bisogna porre particolare attenzione, questi sono l'operatore di incremento (++) e quello di decremento (--), che possono essere preposti o posposti alla variabile; se sono preposti il valore è calcolato prima che l'espressione sia valutata, altrimenti viene calcolato dopo; l'incremento ed il decremento avvengono sempre nel valore di una unità sul valore della variabile. Un po' di codice servirà a far capire meglio come funzionano tali operatori:

int x = 2;
int y = 5;
int z = 9;
int k = 6;

// accanto, come commento, il valore stampato a video
printf("%d \n", x++); // 2
printf("%d \n", ++y); // 6
printf("%d \n", z--); // 9
printf("%d \n", --k); // 5

Come detto questi operatori incrementano o decrementano il valore di una variabile, quindi

x++

ad esempio, equivale a scrivere

x = x + 1;

Anche se la prima forma (quella di incremento) risulta essere più veloce.

Inoltre esiste una forma contratta per espressioni del tipo:

espressione1 = espressione1 <operatore> espressione2

// equivalente a
espressione1 <operatore> = espressione2

Questa forma risulta essere più concisa, e per questo più facile da usare, ma bisogna porre attenzione nel suo uso perché potrebbe indurre in errori dovuti alla poca chiarezza del codice:

int y = 4;
y += 2; // i adesso vale 6

int x = 3;
x *= y + 3; // x adesso vale 27
// questo perché equivale a x=x*(y+3) e non x=(x*y)+3



Torna a inizio pagina