Linguaggi | Manuali | Compilatori | Programmi | Script | Software | Linux | Windows | Html
Linguaggi

C
C++
JAVA
PERL
COBOL
PASCAL
MATLAB
FORTRAN77
FORTRAN90

JAVASCRIPT

VISUALBASIC

Sistemi operativi

LINUX
WINDOWS
UNIX
MAC

Software

AUTOCAD
GNUPLOT
OCTAVE
SCILAB

Operatori matematici
Tutorial 4
Scritto da Roberto Navigli (roberto.navigli@iol.it)
Game Programming Italia: www.gpi.eden.it

Operatori matematici

Il C++ fornisce gli operatori matematici fondamentali: addizione (+), sottrazione (-), moltiplicazione (*), divisione (/) e modulo (%). Vediamo subito un esempio:

void main()
{
int a = 10, b = 5, c = 3, r;

r = a+b; // r contiene 15
r = a-b; // r contiene 5
r = a*b; // r contiene 50
r = a/b; // r contiene 2
r = a/c; // r contiene 3
r = a%b; // r contiene 0 (10/5 = 2 con resto 0)
r = a%c; // r contiene 1 (10/3 = 3 con resto 1)
}

Nella riga:

r = a/c;

ad r viene assegnato il risultato della divisione intera 10/3, troncato all'intero inferiore, cioè 3. I risultati delle divisioni intere vengono troncati, non arrotondati.
L'operatore di modulo restituisce il resto della divisione.

E' molto frequente avere la stessa variabile sia a sinistra che a destra dell'uguale, cioè:

r = r op x

dove op è uno degli operatori matematici, r e x sono gli operandi e il risultato viene memorizzato in r. Il C (e quindi il C++) fornisce una forma compatta di questo tipo di operazione:

r op= x

Vediamo un esempio:

int x = 0;
x += 5; // x == 5
x -= 3; // x == 2
x *= 10; // x == 20
x /= 2; // x == 10
x %= 3; // x == 1

Oltre agli operatori binari, il C mette ovviamente a disposizione anche gli operatori unari + e -, che permettono di attribuire un segno ai numeri, secondo il senso comune. Ad esempio:

x = -y;

ha il significato ovvio di assegnare a x l'opposto di y.

Operatori di incremento e decremento

Il C mette a disposizione del programmatore una forma compatta di incremento e decremento delle variabili. Nessun programmatore "serio" scriverà mai:

x += 1;

ma piuttosto:

x++;

che significa: incrementa x di 1.
Analogamente:

x--;

significa decrementa x di 1.
Ci sono due versioni degli operatori di incremento e decremento: la versione prefissa e la versione postfissa. Nel pre-incremento l'operatore ++ appare prima della variabile mentre nel post-incremento l'operatore ++ appare dopo la variabile; analogamente per il decremento.
Nel pre-incremento e pre-decremento:

++x;
--x;

l'operazione è effettuata prima della valutazione dell'espressione risultante.
Nel post-incremento e post-decremento:

x++;
x--;

l'operazione è effettuata dopo la valutazione dell'espressione.
Per capire meglio la differenza, proviamo il seguente programma:

#include <iostream>

using namespace std;

void main()
{
int x = 0, y = 5;
cout << "x: " << x << endl;
cout << "++x: " << ++x << endl;
cout << "x++: " << x++ << endl;
cout << "x: " << x << endl;
cout << "y: " << y << endl;
cout << "--y: " << --y << endl;
cout << "y--: " << y-- << endl;
cout << "y: " << y << endl;
}

In esecuzione si ottiene:

x: 0
x: 1
x: 1
x: 2
y: 5
y: 4
y: 4
y: 3

Per concludere, come molti hanno fatto, ci piace interpretare il nome C++ come "un passo oltre il C".

Operatori ternari

Sempre nell'ottica della scrittura di codice compatto, esiste un operatore ternario che permette di scegliere tra due espressioni sulla base della valutazione di una terza espressione. La forma generale è la seguente:

espressione1 ? espressione2 : espressione3

Se l'espressione1 viene valutata vera, allora il risultato dell'intera espressione è espressione2, altrimenti è espressione3. Ad esempio:

void main()
{
int x = 3;
// se x è uguale a 3, assegna 4 a d, altrimenti assegnagli 5
int d = x == 3 ? 4 : 5;
}

Partner

Guida Fortran
Guida Matlab

English Version
Tutorials
Programming
Lavoro
Lavoro in rete
Telelavoro
Webmaster
Webmaster
Xml

Gratis
Autore
G. Ciaburro
Curriculum
Tesi