• Regolamento Macrocategoria DEV
    Prima di aprire un topic nella Macrocategoria DEV, è bene leggerne il suo regolamento. Sei un'azienda o un hosting/provider? Qui sono anche contenute informazioni per collaborare con Sciax2 ed ottenere l'accredito nella nostra community!

Guida [Tutorial 2] Un secondo programma C++: stampare un numero

Slyer

Nuovo utente
Autore del topic
26 Luglio 2008
13
0
Miglior risposta
0
Tutorial 2
Scritto da Roberto Navigli

Un secondo programma C++: stampare un numero

Prendiamo in considerazione un secondo semplice esempio. Lo scopo è quello di memorizzare un numero in memoria e quindi di stamparlo sullo schermo. Per fare questo è necessario utilizzare le cosiddette variabili.

Una variabile è una locazione di memoria a cui viene associato un valore. Il valore della locazione può essere modificato e letto quante volte si vuole.

Il programma seguente dichiara una variabile chiamata numero, le assegna un valore (pari al risultato di una certa espressione aritmetica) e lo visualizza sullo schermo:

/* stampare un numero */

#include <iostream>

using namespace std;

void main()
{
int numero; // dichiara la variabile intera

numero = 10+5*2; // assegna alla variabile il valore 20

cout << "Il numero è: ";
cout << numero; // stampa il valore della variabile
}

Una volta compilato ed eseguito il programma, l'output è:

Il numero è: 20

La maggior parte delle linee sono quelle del primo programma visto nel paragrafo precedente. Le novità vengono all'interno del corpo della funzione main. La variabile numero è dichiarata mediante l'istruzione:

int numero;

Come si può notare, davanti al nome della variabile è specificata la parola chiave int. Essa indica il tipo della variabile, in questo caso intero.

La linea successiva assegna alla variabile il valore 10+5*2, pari cioè a 20 (il prodotto ha la precedenza sulla somma):

numero = 10+5*2;

Infine la linea:

cout << numero; // stampa il valore della variabile

stampa il valore della variabile numero sullo schermo.

Tipi di dato

I tipi di dato base principali forniti dal C++, o tipi predefiniti, sono i seguenti:

Tipo di dato Parola chiave
Booleani bool
Caratteri char
Interi brevi short
Interi lunghi int, long
Virgola mobile float
Virgola mobile doppia precisione double

Il tipo void specifica assenza di tipi.
Per capire meglio come vengono rappresentati in memoria i tipi di dato è necessario avere la nozione di bit, byte, word e doubleword:

Un bit è una cifra del sistema binario. Esso può assumere valore 0 o 1. Ad esempio, nel sistema binario, i numeri sono rappresentati nel modo seguente:

Sistema decimale Sistema binario
0 0
1 1
2 10
3 11
4 100
5 101

e così via. Una sequenza di otto bit prende il nome di byte. Utilizzando i byte, quindi, lo zero è rappresentato con 8 bit zero: 00000000, l'uno come 00000001, il due come 00000010 e così via. Poiché per ogni bit è possibile specificare solo 2 cifre (0 oppure 1), con un byte si possono rappresentare 28=256 diversi numeri, quindi ad esempio gli interi compresi tra 0 e 255. Se si vogliono anche gli interi negativi, è possibile rappresentare gli interi compresi tra -128 e 127. Da questo si evince che le variabili di tipo char occupano un byte all'interno della memoria.
Un discorso analogo si può fare per gli short, che rappresentano generalmente le word, cioè sequenze di due byte. Gli interi (e spesso anche i long) rappresentano sequenze di quattro byte chiamate doubleword.
È bene notare che la dimensione delle locazioni di memoria associate a variabili che hanno certi tipi non è fissa per tutte le architetture, ma può variare.

La funzione sizeof del C++ permette di avere la dimensione in byte dei vari tipi di dato. Vediamo un esempio:

/* dimensione dei tipi di dato */

#include <iostream>

using namespace std;

void main()
{
cout << "Dimensione (in byte) dei tipi di dato:" << endl;
cout << "bool: " << sizeof(bool) << endl;
cout << "char: " << sizeof(char) << endl;
cout << "short: " << sizeof(short) << endl;
cout << "int: " << sizeof(int) << endl;
cout << "long: " << sizeof(long) << endl;
cout << "float: " << sizeof(float) << endl;
cout << "double: " << sizeof(double) << endl;
}

Come si può notare, l'operatore << viene utilizzato più di una volta sulla stessa linea. Questo è possibile perché l'applicazione dell'operatore << all'oggetto cout restituisce l'oggetto stesso e quindi consente un'ulteriore applicazione dell'operatore. Non è necessario capire a fondo questo meccanismo, perché sono richiesti concetti che per il momento non è possibile esaminare.
In tutte le righe viene specificato endl come operando destro dell'operatore <<. Esso è un manipolatore che manda a capo l'output su console.