COSA SONO LE VARIABILI?

In C, come in altri linguaggi, le variabili sono dei contenitori, che hanno un nome univoco, in cui sono memorizzati valori (numeri o stringhe). Il loro utilizzo è molto importante, poiché con il loro ausilio è possibile ripetere operazioni molto complesse e ripetitive senza doverci sforzare più di tanto.

Quindi addentrandoci più nel discorso, definiamo la variabile con il TIPO + il suo NOME; nome che comunemente si intende come IDENTIFICATORE.

Un IDENTIFICATORE, quindi, è composto da una serie di lettere, cifre o caratteri; deve necessariamente iniziare o con una lettera o con il simbolo ‘_’ (UNDERSCORE). La lunghezza dell’ identificatore in genere non può superare i 31 caratteri, ma ciò dipende dal compilatore installato sul PC.

Come espresso precedentemente, la variabile è composta anche da un tipo, che sta ad indicare il tipo di valori cui potrà assumere. Ci sono varie definizioni di tipi:

  • Carattere(char), può contenere qualsiasi lettera, numero o simbolo, definito dallo standard dei caratteri ASCII. Una cosa molto importante da sottolineare è che il tipo char può contenere solo un carattere.

Attenzione: in C NON ESISTE  il tipo stringa, di conseguenza dovremo costruirlo ricorrendo ad un ARRAY DI CHAR.

dichiarazione_CHAR

  • Intero(int), permette di rappresentare numeri interi, quindi attenzione a non confonderli con i numeri con la virgola ( rappresentati dal tipo float che vedremo a breve).Con il tipo int è possibile effettuare diverse operazioni matematiche ( tra le più importanti troviamo addizione, sottrazione, divisione e moltiplicazione).

dichiarazione_INT

  • float e double,sono utilizzati per rappresentare numeri positivi e negativi con la virgola. Si possono rappresentare numeri molto piccoli e molto grandi.Come abbiamo visto precedentemente nello schema di sopra, la differenza sostanziale tra i due tipi sta nel numero di bit riservati alla rappresentazione dei numeri che ovviamente si ripercuoterà nelle cifre dopo la virgola.

Dichiarazione_float

Tutte le variabili prima di essere utilizzate, devono essere necessariamente dichiarate, ossia deve essere detto al compilatore su che tipo di dato deve operare, ma soprattutto lo spazio necessario che deve riservare per quella determinata variabile.

Inoltre la dichiarazione di variabili solitamente viene fatta all’inizio del programma, ma nel caso di programmi complessi la dichiarazione può avvenire altrove.

ATTENZIONE: LA DICHIARAZIONE DI VARIABILI VIENE EFFETTUATA UNA SOLA VOLTA.

Dopo la dichiarazione viene la variabile viene inizializzata, cioè le viene assegnato un valore seguendo ovviamente lo standard imposto prima.

STAMPA DEI VALORI DELLE VARIABILI IN C

I valori delle variabili possono anche essere stampati mediante la nota funzione PRINTF.

Vediamo subito un esempio:

stampa_variabili

L’output sarà dunque 5.

La stringa di formato %d dice al compilatore di stampare la variabile intera posta dopo i doppi apici “”, cioè la x.

Adesso mostriamo i principali formati di stringa usati per stampare i principali tipi di variabili:

c

VARIABILI GLOBALI E LOCALI

Una variabile si dice GLOBALE se può essere utilizzata in qualunque punto del programma, mentre si dice LOCALE se può essere utilizzata solo da altre funzioni, o dal main, che è comunque una funzione.

Visto che la vita di una variabile inizia non appena viene dichiarata, dobbiamo prestare attenzione alla sua posizione all’ interno del programma.

Vediamo un esempio:

variabili_globaili

OPERATORI

Nel capitolo precedente abbiamo parlato di variabili (dichiarazioni, manipolazione e inizializzazione), e adesso parliamo degli operatori che agiscono su di esse.

Così come in matematica, il più conosciuto operatore +, permette di sommare due numeri e quindi restituire un risultato, anche in C l’operatore + così come tutti gli altri operatori che si conoscono, posso agire sulle variabili restituendo un risultato. Attenzione però a non confondersi con il risultato dell’operazione, poiché la matematica del computer è una matematica ‘finita’, cioè che i valori delle operazioni avranno un valore finito; contrariamente alle operazioni matematiche che possono avere come risultato un risultato simbolico o addirittura infinito.

Gli operatori principali sono:

  • OPERATORI ARITMETICI, formati da somma, sottrazione, moltiplicazione, divisione ecc.
  • OPERATORI DI CONFRONTO permettono di confrontare due o più variabili, e si servono di determinati simboli (>, <, =, !=, ecc)
  • OPERATORI LOGICI utilizzabili con istruzioni condizionali ed iterative.

OPERATORI ARITMETICI

Abbiamo appena visto che gli aritmetici comprendono somma, sottrazione, divisione, moltiplicazione ecc.

Ora vi mostriamo un piccolo schema che vi chiarisce un po’ le idee:

operatori_aritmetici

Ma oltre a questi, esistono altri operatori a cui bisogna prestare un po’ più di attenzione; questi sono gli operatori di incremento (++) e decremento (–). Essi possono essere collocati prima o dopo le variabili, se vengono posti prima, il valore è calcolato prima; altrimenti il valore verrà calcolato dopo l’istruzione in cui sono esplicati.

op_arit

OPERATORI LOGICI

Prima di entrare nel dettaglio di questi operatori, facciamo un piccolo ripasso di ciò che sono le loro proprietà.

Prima di tutto bisogna ricordare che i 4 operatori logici fondamentali sono: AND, OR, NOT e XOR.

Ricordiamo anche che quando parliamo di proposizione logica, intendiamo che questa sia o vera o falsa.

Gli operatori appena citati hanno un comportamento diverso in base agli input, e restituiscono output diversi. Vediamoli nel dettaglio:

AND:                                                                                 OR:

And                                           Or

XOR:                                                                                  NOT:

Xor                                             Not

Dalle precedenti tavole di verità deduciamo che:

  • L’ operatore AND restituisce vero se entrambi gli input sono veri (1);
  • L’ operatore OR restituisce vero se uno degli input è vero;
  • L’ operatore XOR restituisce vero SE E SOLO SE uno degli input è vero;
  • L’ operatore NOT inverte il valore dell’ input.

Ma effettivamente a cosa serve la logica in C? Sappiamo che un computer ragiona con una logica binaria; nel processore tutte le istruzioni che noi inseriamo in una programma diventano, a livello logico-elettronico, delle semplici operazioni logiche, AND, OR, XOR e NOT ecc. Ed ecco un piccolo schemino che mostra  i principali operatori, affiancati dal proprio simbolo che si utilizza nel linguaggio C:

operatori_logici

Ed ecco qualche esempio di utilizzo di operatori logici:

op_logici

OPERATORI DI CONFRONTO

Gli operatori di confronto permettono di verificare determinate condizioni mediante operatori, quali: operatore di maggioranza, minoranza, uguaglianza ecc. Vediamoli nel dettaglio:

op_confronto

Essi restituiranno vero se la condizione è verificata, falso altrimenti.

PROPRIETA’ DEGLI OPERATORI

Gli operatori devono essere accompagnati da regole per essere utilizzati nel migliore dei modi. Questo perché nella traduzione dei programmi, interviene il compilatore che non può agire a modo suo, essendo automatizzato.

Quindi spetta al programmatore essere coerente alle regole, e soprattutto a metterle in pratica mentre si sta programmando.

Le regole da seguire sono:

  • POSIZIONE: ogni operatore ha la sua zona di competenza, e la sua posizione precisa rispetto ai suoi operandi.
  • PRIORITA’: ogni operatore ha una propria priorità, e questa priorità identifica ogni operatore in un’operazione.  Maggiore è la priorità minore è il valore che la identifica. Questa priorità risulta utile nel momento in cui, ad esempio, mancano le parentesi tonde in una espressione matematica, quindi in quel caso si dovesse procedere per priorità.
  • ASSOCIATIVITA’: L’associatività stabilisce, a parità di priorità, quale sia l’ordine con cui bisogna eseguire i vari operatori. Se l’operatore è associativo a sinistra, si scorrerà da sinistra verso destra, mentre se è associativo a destra, si farà l’esatto contrario.

 

Nel prossimo articolo parleremo dei Costrutti, se invece ti sei perso lo scorso articolo, clicca QUI.

Stai cercando altre guide? Allora dai uno sguardo alla nostra raccolta dedicata alla Programmazione C.

Alla prossima!