Operatori matematici in C#: divisione, resto e Math

Quando i dati sono in memoria, il programma può combinarli attraverso le espressioni aritmetiche. La scelta dei tipi è fondamentale: la divisione tra interi non si comporta come la divisione tra numeri reali.

Gli operatori aritmetici principali

OperatoreSignificatoEsempio
+Addizione7 + 2 = 9
-Sottrazione7 - 2 = 5
*Moltiplicazione7 * 2 = 14
/Divisione7 / 2 = 3 se entrambi interi
%Resto7 % 2 = 1

Divisione intera e reale

int a = 7;
int b = 2;
int quoziente = a / b;    // 3
double reale = (double)a / b; // 3.5
Console.WriteLine($"{quoziente} e {reale}");

La conversione esplicita (double) fa sì che la seconda operazione avvenga in aritmetica reale. Scrivere semplicemente double media = (a+b)/2; non evita la divisione intera.

Resto della divisione e ciclicità

int secondiTotali = 3675;
int ore = secondiTotali / 3600;
int minuti = (secondiTotali % 3600) / 60;
int secondi = secondiTotali % 60;
Console.WriteLine($"{ore} h {minuti} min {secondi} s");

Il risultato è 1 h 1 min 15 s. La divisione intera determina quante unità complete sono contenute nel totale; il resto individua ciò che rimane.

Operatori composti, incremento e precedenza

int conteggio = 5;
conteggio += 3;  // 8
conteggio++;    // 9
int risultato = 2 + 3 * 4;   // 14
int altro = (2 + 3) * 4;     // 20

Le parentesi modificano la precedenza delle operazioni. Gli operatori ++ e -- aggiornano la variabile di una unità. Per numeri complessi o calcoli geometrici si possono usare metodi come Math.Sqrt e Math.Pow.

Esempio: la distanza tra due punti

double x1 = 1, y1 = 2;
double x2 = 4, y2 = 6;
double dx = x2 - x1;
double dy = y2 - y1;
double distanza = Math.Sqrt(dx * dx + dy * dy);
Console.WriteLine(distanza); // 5

Mettiti alla prova

  • Leggi un numero di secondi e convertilo in ore, minuti e secondi.
  • Calcola area e perimetro di un rettangolo leggendo base e altezza come double.
  • Prevedi il risultato di 11 / 4, 11 % 4 e 11 / 4.0 prima di provare il codice.

Nel percorso: ← Input e output · Indice del corso · Aritmetica modulare →