Informatica 2 Liceo Scientifico Scienze Applicate/Operatori Aritmetici
Operatori aritmetici
modificaQuando 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'è 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