Appunti sul C++

I miei appunti collezzionati durante lo studio di questo linguaggio

Tipi di dati

*
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 shortper 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 lettera
#include <iostream>
using namespace std;
int
main()
{

char
letter;
letter = 'a';
cout << "la lettera inserita e':" << lettera << endl;
cin.get();
return
0;
}
Semplice 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").

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):
Fonte: http://www.asciitable.it/ascii.asp
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
char prima, seconda;
prima = '*';
seconda = 'A';
char
risult = prima + seconda;
cout << "prima + seconda fa " << risult << endl;
A video verrà stampata la scritta * + 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:
#include <iostream>
using namespace std;
int
main()
{

for
(char lettera = 'a'; lettera <= 'z'; lettera++) cout << lettera;
cin.get();
return
0;
}
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...

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 ASCII

2. 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 piacere





Ti è piaciuto questo articolo? Collegati ai feed RSS per restare sempre aggiornato sugli ultimi articoli pubblicati. Se hai suggerimenti o idee lascia un commento

Stampa il post

0 commenti:

Posta un commento

Blog Widget by LinkWithin

Lettori fissi