Operatori aritmetici
Gli operatori aritmetici sono:
|
+
|
somma
|
|
-
|
sottrazione
|
|
*
|
moltiplicazione
|
|
/
|
divisione
|
|
%
|
modulo
|
L'ultimo operatore (detto operatore modulo) è utilizzato per il calcolo del resto di una divisione.
Ad esempio :
x%y
ritorna il resto della divisione "x/y". Se x è multiplo di y il risultato sarà 0.
Vediamo un l'applicazione dell'operatore sopra in un programma che verifica se un anno è bisestile o no.
Un anno è bisestile se è divisibile per 4 e non per 100, fatta eccezione per gli anni divisibili per 400 che sono bisestili.
(
Wikipedia - definizione di anno bisestile)
Segue il codice per determinare se un anno è bisestile o no:
if(anno%4 == 0 && anno%100 !=0) || anno%400 == 0)
printf("Il %d è un anno bisestile\n", anno);
else
printf("Il %d non è un anno bisestile\n", anno);
Potete scaricare il programma intero
qui.
Nel file compresso .zip c'è solo il file sorgente, dategli uno sguardo, anche per chi è all'inizio
non dovrebbe essere difficile completare il codice sopra con i "pezzi" mancanti.
Se lo avete scaricato e avete capito come funziona il tutto, compilatelo sulla vostra macchina (tutto quello che vi serve per
la compilazione lo abbiamo visto due lezioni fà. Se avete problemi usate tranquillamente il
forum)
L'operatore % non si applica ai
float e ai
double.
Operatori relazionali e logici
Gli operatori relazionali sono:
|
>
|
maggiore
|
|
>=
|
maggiore uguale
|
|
<
|
minore
|
|
<=
|
minore uguale
|
|
==
|
uguale
|
|
!=
|
diverso
|
Gli operatori logici sono:
Vedremo un esempio:
for(i=0; i < fine-1 && (c=getchar())!='/n' && c!=EOF; i++)
vett[i]=c;
Notare che gli operatori relazionali hanno priorità inferiore agli operatori aritmetici quindi l'espressione
i < fine-1
viene interpretata come
i < (fine-1)
altra cosa da notare è che gli operatori logici vengono valutati da sinistra verso destra. Questo fa si che la valutazione si blocchi non appena di
determina la verità o falsità di una espressione.