Informatica 2 Liceo Scientifico Scienze Applicate/Operatori Aritmetici

Wikibooks, manuali e libri di testo liberi.
Jump to navigation Jump to search

Operatori aritmetici[modifica]

Quando scrivo l'espressione 3+4 il + e' un operatore (quello dell'addizione) e i numeri 3 e 4 sono gli operandi .

Se scrivo a/b il / e' l'operatore di divisione e le variabili a e b sono gli operandi della divisione

Nel C gli operatori artmetici sono:


+ addizione
- sottrazione
* moltiplicazione
/ divisione , in questo caso c'e' una piccola nota se gli operandi sono variabili di tipo intero (short, int , long) la divisione restituisce solo il quoziente (quindi niente decimali) e per ricavare il resto bisogna usare l'operatore % (detto operatore modulo), se invece faccio la divisione (operatore / )fra due numeri di tipo virgola mobile (float o double) ottengo il risultato con gli eventuali decimali

Quindi se a=7 e b=2 e questi sono numeri interi ho

c=a/b; e allora c assume il valore 3 (quoziente)

c=a%b; e allora c assume il valore 1 (resto)

se invece a=7 e b=2 ma le variabili sono di tipo float allora

c=a/b; assegna alla variabile il valore 3.5 mentre

c=a%b; non ha senso perché l'operatore modulo lavora solo su tipi di dato interi (attenzione ho scritto tipi di dato , non valori)


Gli operatori che abbiamo visto sono operatori binari perché lavorano su due operandi alla volta.Ci sono anche operatori unari (un solo operando, in matematica pensate al simbolo - per invertire il segno) come il ++ e il -- e poi c'e' anche un solo operatore ternario il ? , questi operatori nuovi li vedremo piu' avanti. Ricordate inoltre che come in matematica anche nel C esiste una priorita' nell'esecuzione degli operatori (prima */ di +-) che puo' essere modificata con l'uso delle parentesi , ed esiste anche l'associativita' da destra e quella da sinistra.

L'operatore ++ serve a incrementare una variabile di una unita' e puo' essere prefisso o postfisso , cioe' posto davanti a una variabile o posto dopo la variabile. Se scrivo

a++;

oppure

++a;

ottengo lo stesso risultato.Per capire la differenza del prefisso o postfisso dobbiamo utilizzarlo all'interno di una espressione di calcolo .Nel caso del prefisso prima si incrementa la variabile e poi si valuta il valore dellìespressione , quindi ;

a=5;
c=++a+2;
cout<<a<<c; 

stampa i valori a=6 c=8;

mentre se uso la notazione postfissa prima si valuta l'espressione e solo successivamente si incrementa la variabile , detto in altri modo si calcola l'espressione come se l'operatore ++ non ci fosse , e poi si incrementa di uno la variabile quindi

a=5;
c=2+a++;
cout<<a<<c; 

stampa i valori a=6 c=7;

potevo impartire il comando anche come

a=5;
c=a+++2;
cout<<a<<c; 

stampa i valori a=6 c=7;


analogamente l'operatore -- serve per decrementare una variabile di una unita' e puo' essere prefisso o postfisso.

nel C esistono anche gli operatori


+=
-=
*=
/=

scrivere a=a+3; e' equivalente a scrivere a+=3;

scrivere a=a-3; e' equivalente a scrivere a-=3;

scrivere a=a*3; e' equivalente a scrivere a*=3;

scrivere a=a/3; e' equivalente a scrivere a/=3;


per incrementare una variabile di una unita' posso anche scrivere

inc(a);

se la a valeva 3 adesso dopo l'istruzione inc vale 4