Imparare a programmare in C++ – #1 – Hello World

Imparare a programmare in C++ - Hello World

Imparare a programmare in C++ – #1 – Hello World: Il C++ è uno dei linguaggi di programmazione più diffusi al mondo e spesso il primo che si studia nelle scuole.

Imparare a programmare in C++ – #1 – Hello World

Per chi si avvicina per la prima volta al mondo della programmazione, imparare le logiche o la sintassi dei vari linguaggi può essere complicato.

Per questo motivo ho deciso di creare una serie di tutorial, a partire da quello sul C# per imparare diversi linguaggi di programmazione.

Il C++ è uno dei linguaggi di programmazione più utilizzati, e di solito uno dei più insegnati nelle scuole.

Questo è il primo tutorial su questo linguaggio, e ne vedremo le basi.

Quale Programma o IDE usare per programmare in C++

Ogni linguaggio di programmazione ha il suo IDE (Integrated Development Environment) o ambiente di sviluppo integrato, cioè un software che permette di scrivere codice in quel linguaggio, di compilarlo e di testarlo.

Per il C++ ci sono diversi software utilizzabili, ad esempio Visual Studio Code, Visual Studio, Dev-C++.

Dev-C++ è abbandonato dall’autore dal 2016, ma è stato ripreso da Embarcadero che ne ha creato una nuova versione scaricabile da qui.

Personalmente utilizzando già Visual Studio per altri linguaggio di programmazione lo utilizzo anche per il C++, ma molto spesso viene consigliato di utilizzare Dev-C++, ed è per questo motivo che ho scelto di utilizzare questo IDE per questa serie di tutorial.

C++ – I primi codici

Iniziamo a vedere la sintassi di base del c++:

#include <iostream>
int main ()
{

return 0;
}

Queste poche righe formano la struttura di base di un applicazione in c++.

Andiamo ora a scomporre ed analizzare ogni elemento:

#include <iostream>

Questa riga indica al compilatore quali librerie andare a caricare nel progetto, quindi scrivendo #include indichiamo che stiamo includendo una libreria, o meglio un riferimento ad una libreria, all’interno del nostro programma.

In questo caso la libreria alla quale stiamo facendo riferimento è iostream, cioè quella che si occupa di gestire i flussi in entrata (input) ed uscita (output) del programma.

Insomma con questa riga stiamo dicendo al programma di prepararsi a ricevere dati in ingresso e a mostrarli all’utente.

int main ()
{

return 0;
}

Questa funzione, chiamata main è la funzione principale del c++.

Quando si avvia un programma scritto in C++, andrà a cercare la funzione main, quindi al suo interno dovremo inserire tutto il codice da eseguire.

La funzione main è sempre di tipo int (cioè integer, o in italiano intero), questo significa che può riportare solo valori numerici interi (senza virgola).

return 0 significa che stiamo dicendo alla funzione di inviare come valore 0.

Mostrare un messaggio all’utente

Partendo sempre dalla funzione di base, vediamo come mostrare un messaggio all’utente.

Per farlo andremo ad inserire il comando cout.

La sintassi del comando cout è:

std::cout << “Messaggio da mostrare”;

Quindi abbiamo il comando, doppio simbolo minore, un testo (o stringa), inserito tra virgolette e il punto e virgola finale.

Ad inizio riga abbiamo std::

Questo valore indica che il comando cout si trova all’interno di un namespace chiamato std.

I namespace servono a separare i vari comandi in contenitori diversi, e fare in modo che non si possano confondere tra loro 2 comandi con lo stesso nome.

In questo modo:

std::cout

sarà diverso da:

ciao::cout

Il secondo non esiste, ma potrebbe esistere ed eseguire qualcosa di completamente diverso.

Quindi il codice per mostrare un messaggio a schermo sarà:

#include <iostream>
int main ()
{
std::cout << "Messaggio da mostrare";
return 0;
}

Namespace

Come abbiamo visto i namespace sono dei grandi contenitori che separano i comandi per identificarli più facilmente.

Possiamo quindi specificare il namespace prima di ogni comando, oppure per risparmiare tempo e caratteri, possiamo richiarmarlo ad inizio codice.

Se infatti sappiamo di dover usare diverse volte uno o più comandi di un namespace possiamo dichiararne l’uso ad inizio codice e non doverlo scrivere poi per ogni riga.

Per dichiarare l’uso dei namespace andremo a scrivere:

using namespace NOME_DEL_NAMESPACE;

subito dopo gli #include

quindi scrivere:

#include <iostream>
int main ()
{
std::cout << "Messaggio da mostrare";
std::cout << "Messaggio da mostrare";
std::cout << "Messaggio da mostrare";
std::cout << "Messaggio da mostrare";
std::cout << "Messaggio da mostrare";
return 0;
}

e scrivere:.

#include <iostream>
using namespace std;

int main ()
{
cout << "Messaggio da mostrare";
cout << "Messaggio da mostrare";
cout << "Messaggio da mostrare";
cout << "Messaggio da mostrare";
cout << "Messaggio da mostrare";
return 0;
}

Porteranno allo stesso risultato.

Se quindi dichiariamo il namespace all’inizio, non dovremo dichiararlo prima di ogni comando.

Diversamente, se non lo dichiariamo all’inizio dovremo inserirlo prima di ogni comando.

Far inserire un testo all’utente

Abbiamo visto come mostrare un messaggio all’utente, vediamo ora come permettere all’utente di scrivere qualcosa.

Per farlo è necessaria una premessa.

I dati inseriti dagli utenti vengono tutti salvati all’interno di una variabile (che approfondiremo nel prossimo tutorial).

Le variabili sono dei piccoli contenitori, hanno un nome ed un tipo e salvano un’informazione.

Se abbiamo un programma che chiede il nome all’utente, sappiamo che avremo bisogno di una variabile in grado di salvare un testo come informazione.

Le variabili che permettono di salvare il testo si chiamano stringhe e sono definite dal tipo string.

Quindi possiamo creare (dichiarare) una variabile scrivendo:

Tipo nome = informazione (o valore);

Il valore non è sempre necessario, possiamo anche dichiarare una variabile, senza assegnare nessun valore.

Quindi per la variabile di tipo stringa che andrà a salvare il nome dell’utente andremo a scrivere:

string nome;

Il comando che registra gli input dati dall’utente è cin e la sintassi è:

cin >> variabile;

Quindi il codice sarà:

#include <iostream>
using namespace std;

int main ()
{
string nome;
cout << "Ciao, come ti chiami?";
cin >> nome;
return 0;
}

Unire stringhe e variabili

A questo punto potremmo voler salutare l’utente dicendo ad esempio “Ciao Claudio”.

Per farlo dovremo unire una stringa “Ciao”, alla variabile che contiene il nome che l’utente ha inserito.

Questo possiamo farlo direttamente usando cout, scrivendo:

cout << “Ciao, ” << nome;

Il codice diventerà quindi:

#include <iostream>
using namespace std;

int main ()
{
string nome;
cout << "Ciao, come ti chiami?";
cin >> nome;
cout << "Ciao, " << nome;
return 0;
}

Mandare a capo il testo

Ora che la nostra prima applicazione è funzionante, c’è un problema, l’input viene inserito sulla stessa riga della domanda.

Dobbiamo quindi mandare a capo il testo.

Per farlo abbiamo 2 metodi:

Usare \n all’interno delle virgolette nel punto in cui vogliamo spezzare il testo.

Unire (concatenare) il comando endl alla stringa con la domanda.

Vediamo entrambi i casi:

#include <iostream>
using namespace std;

int main ()
{
string nome;
cout << "Ciao, come ti chiami?\n";
cin >> nome;
cout << "Ciao, " << nome;
return 0;
}

In questo caso abbiamo aggiunto \n all’interno della stringa, è fondamentale che sia all’interno delle virgolette e non all’esterno.

#include <iostream>
using namespace std;

int main ()
{
string nome;
cout << "Ciao, come ti chiami?" << endl;
cin >> nome;
cout << "Ciao, " << nome;
return 0;
}

In questo secondo esempio invece abbiamo usato il comando endl (end line).

Video