Home / Linguaggio C / Operazioni sulle variabili – #12 linguaggio C

Operazioni sulle variabili – #12 linguaggio C

operazioni-sulle-variabili

Se ti sei perso la guida precedente clicca qui: Come leggere da tastiera (scanf).

In questa guida analizzeremo il significato della sesta riga del codice sottostante e tutti gli aspetti che ruotano intorno ad essa.

1 /*Somma di due numeri*/
2 #include <stdio.h>
3 main(){
4      int a, b, s;
5      scanf("%d %d", &a, &b);
6      s = a + b;
7      printf("%d", s);
8 }

Le variabili dichiarate all’interno del programma possono acquisire dei valori in due principali m0dalità:

L’istruzione di assegnazione, come abbiamo visto nelle guide precedenti, ha una sintassi ben precisa, del tipo:

variabile = valore;

Il valore viene inserito all’interno della variabile scritta a sinistra dell’uguale ( = ).

Per valore non si intende solo ed esclusivamente un numero, ma anche il risultato di un’operazione, come mostrato negli esempi sottostanti:

Calcolo dell’area di un cerchio:

area = raggio * raggio * 3.14;

Quindi il risultato della moltiplicazione verrà inserito nella variabile area.

Le operazioni che si possono effettuare tra variabili e numeri sono le seguenti:

Operazione Operatore Esempio
Somma + somma = a + b;
Sottrazione sottrazione = a – b;
Moltiplicazione * moltiplicazione = a * b;
Divisione / divisione =  a / b;
Resto di una divisione % resto = a % b;

Nel linguaggio di programmazione C sono consentite anche operazioni del tipo:

count = count + 1;

con la variabile count a sinistra e a destra dell’uguale. È ovviamente un esempio di contatore, ossia di una variabile che si incrementa di uno. Praticamente la variabile count viene sommata al numero uno e viene messa dentro la variabile count aggiornando il valore.

Questa operazione può essere scritta anche nel seguente modo:

count++;

Ossia incrementa la variabile di uno.

Oppure

count--;

per decrementare la variabile di uno, equivalente all’istruzione di assegnamento:

count = count - 1;

Invece per incrementare e decrementare le variabile con valore non unitari, esistono gli operatori += e -=

Per esempio, l’istruzione:

a += b;

somma alla variabile a la variabile b aggiornando il suo contenuto ed equivale all’assegnamento:

a = a + b;

Mentre:

a -= b;

sottrae alla variabile a la variabile b aggiornando il suo contenuto ed equivale all’assegnamento:

a = a - b;

Nella tabella seguente sono analizzati tutti gli operatori che permettono di compiere modifiche sulle variabili:

Operazione Operatore Esempio Istruzione equivalente
Incremento unitario ++ a++; a = a + 1;
Decremento unitario a–; a = a – 1;
Incremento += a+= b; a = a + b;
Decremento -= a-= b; a = a – b;
Moltiplicazione *= a*= b; a = a * b;
Divisione /= a/= b; a = a / b;
Resto della divisione intera %= a%= b; a = a % b;

Nella istruzioni di assegnamento e nelle espressioni di calcolo possono comparire anche delle funzioni che dati dei valori in ingresso restituiscono un valore in uscita. Questa funzioni sono ricavate sempre da librerie standard che forniscono appunto delle funzioni già fatte pronte all’uso.

Qui di seguito sono riportate le funzioni più utilizzate nel linguaggio C:

sqrt(x): restituisce la radice quadrata della variabile x.

esempio:

int x = 16;
int y;
y = sqrt(x);

y alla fine del programma varrà 4.

pow(x,y): restituisce il risultato della potenza di x con esponente y (x e y devono essere di tipo double, così come il risultato ottenuto).

esempio:

double x=2.0;
double y=3.0;
double z;
z = pow(x,y);

z alla fine del programma varrà 8.0;

floor(x): restituisce il numero x senza parte decimale.

esempio:

float x = 7,2;
int y;
y = floor(x);

y alla fine del programma varrà 7;

ceil(x): restituisce il valore x arrotondato all’intero superiore

esempio:

float x = 7,2;
int y;
y = floor(x);

y alla fine del programma varrà 8;

Operazioni leggermente più complessi possono essere calcolate con la concatenazione di queste funzioni. Ne è un’esempio il calcolo della’ipotenusa di un triangolo rettangolo con il teorema di Pitagora:

ipotenusa = sqrt(pow(cateto1, 2.0) + pow(cateto2, 2.0);

La libreria che contiene tutte queste funzioni si chiama math.h ed è da includere nel programma con la solita istruzione già vista nella lezione sulle librerie:

#include <math.h>

L’uso delle parentesi tonde, nelle operazioni sulle variabili, determina l’ordine di esecuzione delle operazioni stesse, proprio come accade nell’algebra elementare.

Un problema molto frequente, che sorge durante le assegnazioni di valori alle variabili, è il problemi di incompatibilità fra tipi diversi. Infatti se noi dichiarassimo queste variabili

int a;
char c;

sarebbe un gravissimo errore fare il seguente assegnamento

a = c;

oppure

c = a;

proprio perche a è di tipo intero e c è di tipo carattere. Approposito di questo tema, esiste un metodo molto utile per trasformare una variabile di un certo tipo in un altro. L’operazione prende il nome di casting e viene analizzata nella guida seguente: Il casting per la conversione di tipo.

Possiamo ora passare alla guida successiva che analizza la settima riga del nostro codice: Come stampare a video un valore (printf).

Lascia un like alla nostra pagina Facebook per rimanere sempre aggiornato. 😉

Staff Melabu

Lascia un commento

Il tuo indirizzo email non sarà reso pubblico. I campi segnati sono obbligatori *

*