È fondamentale ora definire il concetto di variabile, visto che nelle prossime lezioni faremo largo uso di questo termine.
Pensiamo a quando registriamo il numero di telefono di un nostro amico nella rubrica del cellulare. Una volta registrato il numero e associato il nome, quando vogliamo chiamare il nostro amico, ci basta inserire il suo nome (nome della variabile) ed il cellulare comporrà automaticamente il numero di telefono (valore della variabile).
Si può vedere quindi che una variabile esiste in funzione del nome e del valore corrispondente; la comodità risiede (come nel cellulare) nel poter utilizzare i nomi invece dei valori. Con questa logica possiamo associare ad un nome diversi tipi di informazioni come numeri o lettere di grande entità o difficili da ricordare.
Altro vantaggio da non sottovalutare, è la possibilità di usare il nome della variabile al posto del suo valore per eseguirvi sopra delle operazioni, con la possibilità, in seguito, di modificare il valore come e quante volte vogliamo.
Un esempio tipico può essere quello di un programma che scrive a video il quadrato di un numero inserito dall'utente. Senza usare un linguaggio specifico si può vedere la comodità nell'uso della variabile A
che può assumere un valore a piacere, senza per questo dover riscrivere il programma tutte le volte;.
scrivi sullo schermo "Ciao Inserisci un numero"; A = -numero inserito da tastiera-; B = A * A; scrivi sullo schermo "Il quadrato di " A " è " B;
Anche B
è una variabile e viene usata per registrare il risultato finale
In questo esempio si può vedere come se ad esempio inseriamo come numero il valore "4", sullo schermo verrà scritto "Il quadrato di 4 è 16", ma se scriviamo un altro numero cambierà anche la scritta. E cosa succede se invece di un numero digitiamo un carattere?
Generalmente il programma darà un errore e si fermerà questo perché si aspetta un numero e non un carattere; infatti riuscire a classificare la tipologia di dati che devono essere inseriti e poi utilizzati all'interno di un programma è molto importante per evitare errori o per rendere il programma più veloce.
Qui di seguito ci rifacciamo ai tipi di dati presenti nel C++ e generalmente adottati dai più comuni linguaggi di programmazione:
- Tipo Booleano
- Il tipo
booleano
è il tipo più semplice esistente, perché può assumere solamente i valorivero
(o1
) efalso
(o0
). Gli operatori su tali valori sono quelli dell'algebra di Boole, esposta in una precedente lezione. - Tipo Intero
- Il tipo
intero
è costituito dai numeri interi compresi tra un limite inferiore ed un limite superiore; tali limiti dipendono dall'implementazione del compilatore e dal sottotipo (short
,long
,unisgned
), ma generalmente sono costituiti da valori che vanno da-2N-1
a+2N-1
doveN
è il numero di bit utilizzati per rappresentare gli interi (generalmente16
o32
). Oltre tali limiti il compilatore genera un errore dicendo che non può rappresentare il numero. - Tipo Reale
- Il tipo
reale
è formato da valori che appartengono ad un sottoinsieme dei numeri razionali; la rappresentazione è limitata prima di tutto dai numeri presenti dopo la virgola quindi risulta impossibile rappresentare, ad esempio, numeri periodici e, secondariamente, esiste una limitazione inferiore e superiore come quella del tipo intero ovviamente dipendente dal compilatore. - Tipo Enumerazione
- Il tipo
enumerazione
non è presente in tutti i linguaggi di programmazione e serve per rappresentare costanti intere, predefinite dal programmatore, associate a informazioni non numeriche. L'esempio tipico può essere quello di associare un valore ai giorni della settimana per compiervi delle operazioni. Il vantaggio principale, quindi, si riduce al poter eseguire operazioni matematiche su elementi apparentemente non matematici. - Tipo Carattere
- Il tipo
carattere
rappresenta i caratteri che normalmente sono visibili sullo schermo e stampabili su carta più alcuni caratteri speciali che dipendono dall'implementazione. La codifica usate più spesso è quella ASCII in cui un carattere occupa un byte. Da far notare che nella rappresentazione'A'
risulta diverso da'a'
e che'7'
è tutt'altra cosa rispetto all'intero7
.
Naturalmente in ogni linguaggio di programmazione è possibile eseguire operazioni miste o conversioni (sia implicite che esplicite) di tipo.