![]() |
PROGRAMMAZIONE
E PROGETTAZIONE
|
Realizziamo e compiliamo il primo programma C++ con DevC++
di Vincenzo Selvaggio
Il C++ è stato sviluppato da Bjarne Stroustrup negli anni '80 (Bell Laboratories) ed è senza dubbio il linguaggio di programmazione ad alto livello più utilizzato e potente. In quest'articolo cominciamo a vedere come è strutturato un semplice programma C++ e a realizzare una prima applicazione perfettamente funzionante: un convertitore lira-euro.
L'ambiente DevC++ e la struttura di un programma C++
Per creare un programma abbiamo bisogno di varie
componenti: un ambiente di sviluppo (il compilatore), un linguaggio di
programmazione (nel nostro caso il C++) e le sue librerie, cioè un insieme di
funzioni che il linguaggio stesso ci mette a disposizione. L’ambiente di
sviluppo che useremo è il DevC++ della BloodShed perché è gratuito e
scaricabile da www.bloodshed.net.
Una volta installato, facciamolo partire e nel menu file selezioniamo
new->project e poi ancora empty project dandogli un nome, ad esempio
cplusplus. A questo punto aggiungiamo un foglio bianco al nostro progetto
facendo di nuovo file e new->source file. Rinominiamo il source file con
FirstProg e passiamo subito a scrivere il nostro codice:
#include
<iostream.h>
#include
<stdlib.h>
int main(){
return 0;
}
Il risultato di questi primi passi è mostrato in Figura 1.
Figura 1: Il progetto.
Questa è la struttura di ogni programma C++. Le righe uno
e due, gli include, servono ad importare le librerie nel nostro programma, in
particolar modo iostream.h include le
funzioni riguardanti l’input e l’output grazie alle quali possiamo leggere
da tastiera e stampare a video mentre stdlib.h
sta per standard library e include alcune funzioni standard, come vedremo in
seguito. Il programma comincia con la riga int main() e tutto quello che viene dopo, tra le parentesi graffe aperte e
chiuse, è il nostro punto di ingresso. La scritta int main() vuole dire che
main è una funzione che restituisce come
valore un int, cioè un numero intero; infatti nel corpo del main troviamo
return 0 che vuol dire che restituiamo il valore intero 0.
Lo zero in C++ vuol dire che tutto è andato bene e che quindi il programma che
in ultima analisi è il corpo della funzione main è terminato con successo.
Questo programma funziona ma non fa nulla. Aggiungiamoci un'ulteriore riga:
#include
<iostream.h>
#include
<stdlib.h>
int main(){
cout << "Sono un programmatore Cplusplus \n CIAO MONDO \n";
return 0;
}
Il comando cout<< serve a mandare la stringa che viene dopo nel flusso di output (il nostro monitor). Una stringa si definisce tra i doppi apici “ “; praticamente tra i doppi apici possiamo scrivere tutto quello che vogliamo e questo verrà stampato a video grazie al comando cout <<. Lo \n serve ad andare daccapo. Da notare che ogni riga di codice deve terminare con il punto e virgola. Infine aggiungiamo una funzione di servizio delle stdlib.h che serve a bloccare il programma fin quando non si preme un tasto, questo per riuscire a vedere quello che abbiamo realizzato. Ecco il codice finale:
#include
<iostream.h>
#include
<stdlib.h>
int main(){
cout << "Sono un programmatore Cplusplus \n CIAO MONDO \n";
system(“PAUSE”);
return 0;
}
La compilazione
Ora passiamo alla compilazione del nostro primo programma, cioè
la traduzione in linguaggio macchina del codice scritto in un linguaggio di
programmazione. Andiamo nel menu execute e premiamo su Compile&Run: dovrebbe
così avviarsi il nostro primo programma in C++. In ogni parte del codice le
linee che iniziano con i caratteri //
rappresentano dei commenti che ci aiutano a ricordare cosa abbiamo fatto.
#include
<iostream.h> //libreria input/output
#include
<stdlib.h> //
libreria standard
int main(){ //punto di ingresso
//STAMPA A VIDEO
cout << "Sono un programmatore Cplusplus \n CIAO MONDO \n";
system(“PAUSE”);
return 0;
} //punto di uscita
Se andiamo nella cartella del nostro progetto troviamo i seguenti file:
- cplusplus.dev è il file del progetto
- firstprog.cpp è il listato del codice
- firstprog.o è il file oggetto
- firstprog.exe è il file eseguibile
Il risultato del nostro esempio in Figura 2.
Figura 2: Il codice compilato in esecuzione.
Scarica il progetto firstprog.
Una reale applicazione
Il programma firstprog ci ha permesso di capire qual è la struttura di un programma C++, ora pronti per fare qualcosa di concreto: un convertitore in euro. Prendiamo il codice di firstprog è apportiamo le seguenti modifiche:
#include
<iostream.h>
#include
<stdlib.h>
int main(){
cout << "----------------------EuroConvertitore-----------------------\n";
cout << " Immetti il valore in lire da convertire:
";
//DICHIARAZIONI DELLE VARIABILI
float cambio=1936.27;
float valoredaconvertire;
float valoreconvertito;
system(“PAUSE”);
return 0;
}
Il cout già lo abbiamo visto e serve a mandare le scritte a video; la novità sono le dichiarazioni delle variabili che sono delle locazioni statiche di memoria in cui un valore viene memorizzato. Le variabili che abbiamo utilizzato sono di tipo reale (float), mentre in generale per dichiarare una variabile occorre mettere prima il tipo e poi il nome che noi gli vogliamo dare. Ad esempio se ci serve un intero scriveremo int mionumerointero, se ci serve un carattere scriveremo invece char miocarattere. E' una buona abitudine di programmazione dare un nome alle variabili che ci ricordino il suo significato nel corso del programma. Se scrivessimo
float a=1936.27;
float b;
float c;
il programma funzionerebbe lo stesso ma sarebbe difficile da gestire e ricordare. Tornado al codice notiamo che la variabile cambio è stata inizializzata perché sarà una costante nel nostro programma e non verrà modificata. Sarebbe un buon uso anche inizializzare le altre variabili al valore zero per non avere effetti indesiderati:
#include
<iostream.h>
#include
<stdlib.h>
int main(){
cout << "----------------------EuroConvertitore-----------------------\n";
cout << " Immetti il valore in lire da convertire:
";
//DICHIARAZIONI DELLE VARIABILI
float cambio=1936.27;
float
valoredaconvertire=0;
float valoreconvertito=0;
system(“PAUSE”);
return 0;
}
Ora dobbiamo chiedere all'utente della nostra applicazione di immettere un valore per la variabile valoredaconvertire e questo è possibile con il comando cin duale di cout. Ecco il codice:
#include
<iostream.h>
#include
<stdlib.h>
int main(){
cout << "----------------------EuroConvertitore-----------------------\n";
cout << " Immetti il valore in lire da convertire:
";
//DICHIARAZIONI DELLE VARIABILI
float cambio=1936.27;
float
valoredaconvertire=0;
float valoreconvertito=0;
cin >> valoredaconvertire;
system(“PAUSE”);
return 0;
}
Il programma verrà eseguito fino al cin (si legge ci-in) dopo di che si interrompe e attende che venga immesso un valore dal dispositivo di input che per default è la tastiera. Questo valore viene poi immesso nella variabile di tipo reale valoredaconvertire. Ora aggiungiamo il codice che ci permette la conversione e la visualizzazione del risultato col solito cout.
#include
<iostream.h>
#include
<stdlib.h>
int main(){
cout << "----------------------EuroConvertitore-----------------------\n";
cout << " Immetti il valore in lire da convertire:
";
//DICHIARAZIONI DELLE VARIABILI
float cambio=1936.27;
float
valoredaconvertire=0;
float valoreconvertito=0;
cin >> valoredaconvertire;
//CODICE DELL'OPERAZIONE DI CONVERSIONE
valoreconvertito = valoredaconvertire/cambio;
//STAMPA DEL RISULTATO
cout << "\nIl valore convertito e' " << valoreconvertito << " euro.\n";
system(“PAUSE”);
return 0;
}
Il codice dell'operazione di conversione è una semplice espressione matematica, cioè dividiamo la variabile valoredaconvertire (il cui valore è quello immesso dall'utente) per il cambio. L'uguale è l'operatore di assegnazione a sinistra, non possiamo scrivere l'inverso! Per quanto riguarda cout c'è una novità: inviamo al dispositivo di output oltre a delle stringe anche una variabile, il tutto separato dai doppi simboli <<. Il risultato del nostro convertitore in Figura 3.
Figura 3: Il convertitore in esecuzione.
Scarica il progetto Convertitore.
Conclusioni
In quest'articolo abbiamo imparato a dichiarare una variabile, a interagire con l'utente dell'applicazione e in generale a capire la struttura di un qualsiasi programma C++. Il passo successivo sarà quello di risolvere problemi con l'utilizzo della programmazione strutturata.
Vincenzo Selvaggio