In questo articolo approfondiremo i tipi di dati esistenti nel C++.
Tipo intero.
Il primo tipo che abbiamo utilizzato (e che verrà largamente utilizzato) è il tipo
int
(intero). Questo tipo di variabile non è altro che la trasposizione informatica dei numeri interi della matematica, ovvero i numeri “senza parte dopo la virgola”. Gli interi possono essere con segno (signed
, opzione di default) o senza segno (unsigned
), inoltre possono essere di lunghezza normale (short
) o lunghi (long
); per capire come utilizzare questi suffissi facciamo un esempio: supponiamo di voler creare una variabile num
intera senza segno e “lunga”, allora scriveremo unsigned long int num.E' naturale che un numero
long
prende più memoria di uno short
, i valori tra i quali oscillano i numeri possibili e la loro lunghezza in bit sono nella Tabella a fine articolo. L'unica cosa nuova che c'è da imparare è l'utilizzo di questi suffissi: se sappiamo di dover lavorare con numeri piccoli conviene sfruttare il suffisso short
per risparmiare memoria, inoltre spesso un tipo unsigned
short
int
è sufficiente per tutte le esigenze di programmazione con numeri interi positivi.Tipo carattere.
Il tipo carattere (che molti probabilmente aspettavano) è denotato dal nome
char
, ma non permette la memorizzazione di stringhe di testo ma di solo una lettera (in generale sono 256 simboli del codice ASCII), e la sua dimensione in memoria è di 8bit. Il suo utilizzo è identico a quello degli interi, i double ecc (alla fine è una variabile!), ecco un programma che memorizza e stampa a video una letteraSemplice no? L'unico accorgimento è nell'assegnamento dell valore, che va messo tra apici (altrimenti senza apici vorrebbe dire "dai a letter il valore della variabile a").#include <iostream>
using namespace std;
int main()
{
char letter;
letter = 'a';
cout << "la lettera inserita e':" << lettera << endl;
cin.get();
return 0;
}
Una variabile di tipo char, in sostanza, contiene al suo interno un numero che viene interpretato secondo la tabella del codice ASCII qui di seguito riportata (il valore è quello della colonna DEC):
Cosa vuol dire? Vuol dire che una variabile char può essere interpretata come un "piccolo intero" con valori da 0 a 127! Ad esempio, se scriviamo
A video verrà stampata la scrittachar prima, seconda;
prima = '*';
seconda = 'A';
char risult = prima + seconda;
cout << "prima + seconda fa " << risult << endl;
* + A fa k
, infatti * corrisponde a 42 in codice ASCII, A corrisponde a 65, e 42+65 fa 107, che corrisponde a k nel codice ASCII (vedi tabella sopra).Questa particolarità delle variabili di tipo char le rende altamente versatili! Ad esempio, se vogliamo scrivere l'alfabeto a video possiamo sfruttare un ciclo for in questo modo:
E' importantissimo imparare a ragionare vedendo i caratteri come numeri. A loro potete applicare tutto quello che avete imparato (ed imparerete) sugli interi: potete applicare gli operatori di relazione (in C++ è vero che a<b), fare operazioni aritmetiche ecc...#include <iostream>
using namespace std;
int main()
{
for(char lettera = 'a'; lettera <= 'z'; lettera++) cout << lettera;
cin.get();
return 0;
}
Memoria occupata ed intervallo di valori per i tipi di dati del C++
Legenda: Tipo Intervallo Memoria(in bit)
[long] [signed] int -2.146.438.648 <-> 2.146.438.648 32
[long] unsigned int 0<->4.294.967.295 32
short [signed] int -32.768<->32.768 16
short unsigned int 0<->65.535 16
float 1,8x10-38<->3,4x1038 32
double 2,2x10-308<->1,8x10308 64
Esercizi:
1.
Creare un programma che dato un numero stampi a video il corrispondente carattere ASCII2.
Creare un programma che, una volta digitata una password 3 caratteri in successione (quindi si inserisce un primo carattere, si preme invio, si inserisce il secondo, si preme invio, ecc...) permette, qualora i 3 caratteri inseriti siano quelli giusti in ordine giusto, di stampare a video un messaggio segreto a vostro piacereTi è piaciuto questo articolo? Collegati ai feed RSS per restare sempre aggiornato sugli ultimi articoli pubblicati. Se hai suggerimenti o idee lascia un commento
0 commenti:
Posta un commento