C++ per principianti – 3. variabili e tipi di dato

Ciao a tutti e benvenuti alla terza lezione del corso di C++ dedicato ai principianti.
Oggi inizieremo a parlare di variabili, un concetto che sta alla base di ogni linguaggio di programmazione.

Cos’è una variabile?

Provate a pensare alla variabile come a una scatola che contiene al suo interno un valore e che può avere un proprio nome.
VariabileIl nome della scatola (quindi della variabile) è numero e il suo valore è 538.

In C++, le variabili possono essere di diversi tipi in base a ciò che sono destinate a contenere (stringhe di testo, numeri interi…), in questo esempio utilizzeremo il tipo int (integer), già visto la scorsa volta per la dichiarazione del main().

Per creare la variabile è necessario innanzitutto dichiararla. La nostra variabile di tipo intero verrà dichiarata come segue:

Una volta creata, la variabile non è altro che la nostra scatola vuota.

Con la dichiarazione si ordina al computer di predisporre un certo spazio in memoria e dare a questo spazio un nome (in questo caso “numero”). Fin quando non le verrà assegnato un numero intero, la variabile conterrà il valore NULL, ovvero “spazio vuoto”.

Per riempirlo, basterà utilizzare l’operatore di assegnamento, vale a dire =:

Come potete notare non è servito indicare nuovamente il tipo di dato, essendo questo già stato definito precedentemente.

E’ anche possibile dichiarare la variabile e assegnarle un valore nello stesso momento:

Chiarito ciò, ecco una panoramica dei tipi di dato presenti in C++, utile a farsi un’idea generale:

[table]tipo,dimensione,valori
char,1 byte,caratteri ASCII
bool,1 byte,vero (1) o falso (0)
short,2 byte,da -32’768 a 32’767
int,4 byte,da -2’147’483’648 a 2’147’483’647
long,4 byte,da -2’147’483’648 a 2’147’483’647 (può essere combinato con int)
float,4 byte,numeri a virgola mobile (precisione singola)
double,8 byte,numeri a virgola mobile (doppia precisione)[/table]

N.b.: per adesso non vedremo singolarmente ogni tipo di dato in quanto non necessario, col tempo avremo la possibilità di utilizzarne la maggior parte e quindi conoscerli.

Attenzione!

I nomi delle variabili devono seguire OBBLIGATORIAMENTE determinate regole:

  • possono iniziare solo col carattere di underscore ( ‘_’ ) o con una lettera;
  • gli unici caratteri consentiti nel nome sono l’underscore, le lettere non accentate e i numeri (altri simboli quali ‘$’, ‘@’ o ‘%’ sono vietati);
  • non possono corrispondere a parole chiave del C++;

Nota bene: i nomi delle variabili sono case-sensitive, quindi “numero” è una variabile diversa da “Numero”.

Adesso andiamo a utilizzare la nostra variabile e le operazioni di dichiarazione e assegnamento in un semplice programmino:

Il messaggio mostrato in output sarà il seguente:

2015-04-05-013558_1366x768_scrotAll’interno della funzione main() dichiariamo la variabile “eta” di tipo intero. La stessa variabile viene utilizzata nella riga dedicata al messaggio di output.

Dopodiché, nella riga 8, alla variabile “eta” assegnamo la somma tra “eta” e 5 che, come potete intuire, non fa altro che assegnare a “eta” il numero 23.

Nella prossima lezione vedremo gli operatori aritmetici in C++, l’inserimento di dati in input e una panoramica sulle stringhe.
Ovviamente, per ogni dubbio o curiosità riguardante la lezione, non esitate a chiedere nei commenti. Un saluto e arrivederci al prossimo post.

Sinhuè Angelo Rossi

C++ per principianti – 2. Hello world!

Ciao a tutti e benvenuti alla seconda lezione del corso di C++ dedicato ai principianti.

Oggi vedremo un semplice programmino che visualizza a schermo la scritta “Hello world”, e che ci servirà a fare i primi passi nel mondo del C++ sia per prenderci confidenza sia per iniziare a capire il suo funzionamento.

Prima di tutto create un file di nome “hello_world.cpp”, salvatelo dove volete e apritelo con l’IDE che avete installato tra quelli da me consigliati

In questo corso, per questione di uniformità, si tiene conto che voi utilizziate Codeblocks, ecco una breve guida che lo riguarda.

All’interno del file creato scrivete quanto segue:

Woa woa woa, andiamo piano… a prima vista ciò che vedete sembrerà tutt’altro che comprensibile, quindi l’unico modo per comprendere ciò che c’è scritto è conoscere la funzione di ogni riga e fidatevi, non è poi così difficile.

Partiamo dalle prime due righe.

Queste due righe formano l’header, e servono a fornire al programma tutti gli strumenti di cui necessita. In questo caso si tratta di due righe, ma possono essere molte di più, a seconda di ciò che si andrà a fare.

Avete mai sentito parlare di librerie? Bene, iostream è una libreria del C++ che, semplificando, mette a disposizione le funzioni necessarie per la gestione delle operazioni di input e output, infatti il significato non è altro che input output stream.

Questa libreria viene richiamata dalla funzione #include, che serve per l’appunto a chiamare librerie e file che servono al programma.

Per adesso non è necessario addentrarci ulteriormente, l’importante è capirne a grandi linee l’utilità.

La seconda parte dell’header è using namespace std;.

Questa riga di codice permette di utilizzare un determinato namespace, ovvero un’area all’interno della quale sono consentite tutte le operazioni contenute nelle librerie richiamate. In questo caso viene utilizzato il namespace di nome std, esistente di default, che consente di utilizzare le librerie standard del C++, inclusa la iostream richiamata precedentemente.

Ecco un’immagine che riassume il concetto:

namespace std
E’ comprensibile comunque che per adesso non si comprendano certe cose, quindi se non avete capito non preoccupatevi e proseguite nella lettura, col tempo certi concetti saranno chiari.

Arriviamo quindi al corpo del codice, che è ciò che ci interessa maggiormente.

Ogni programma scritto in C++ inizia la sua esecuzione quando trova la dicitura main().

In questo caso main() è di tipo intero. Questo indica che la funzione principale del programma ha un valore numerico che può essere 0 o diverso da 0. Se il valore di main() è 0 abbiamo la certezza che il programma è stato eseguito in modo corretto, mentre in caso contrario sappiamo che c’è stato un errore durante l’esecuzione.

Le due parentesi () ci fanno sapere che main è una funzione, concetto che verrà approfondito nelle prossime lezioni.

Andando avanti troviamo le parentesi graffe, che hanno il compito di racchiudere un insieme di istruzioni. Ricordatevi di questo particolare perché le parentesi graffe sono un concetto di base del C++ e verranno utilizzate di continuo.

Tra le parentesi graffe troviamo il contenuto della funzione main, ovvero le istruzioni che in questo caso saranno eseguite. cout è una delle tante funzioni della libreria iostream vista precedentemente, e consente di mostrare un messaggio di output.

cout riceve il messaggio di output da mostrare dall’operatore <<, che sta a significare “metti su”.

Quindi, in parole povere, la dicitura Hello world” (racchiusa tra doppie virgolette perché è una stringa), verrà spedita al coutverrà mostrata a schermo come potete vedere qui sotto:

2015-04-03-104126_1366x768_scrot

Dopo “Hello world” abbiamo un altro operatore << e la dicitura endl, che sta a significare end line e non fa altro che “mandare a capo”. Infine abbiamo il punto e virgola ( ; ), che indica la fine dell’istruzione.

Andando avanti troviamo return 0;.

Prima abbiamo detto che la funzione main è di tipo intero, e in questo caso le diamo il valore 0, che certifica la corretta esecuzione del programma se e solo se tutto ciò che sta sopra è stato eseguito in maniera corretta.

Poi abbiamo la chiusura della parentesi graffa, che indica la fine del blocco di istruzioni.

Ora che abbiamo visto in maniera completa questo semplice programma, diamo al nostro IDE il comando di compilazione, che su Codeblocks è contrassegnato da un ingranaggio giallo, dopodiché avviamo il nostro programmino col tasto “play” verde.

Se il programma viene eseguito correttamente vedrete la vostra stringa “Hello world” come mostrato più su. Se ciò non avvenisse, controllate che il codice sia stato scritto in maniera corretta e riprovate a compilare e poi eseguire.

Per domande e approfondimenti su quanto spiegato sin’ora non esitate a chiedere nei commenti, e rinnovo l’invito ad essere curiosi e sperimentare per imparare cose nuove, è l’unico modo efficace per imparare a programmare.

Per venirvi incontro vi assegno dei “compiti per casa”, utili a verificare quanto visto sin’ora e imparare cose nuove:

  1. Scrivi un programma che mostri in output il tuo nome;
  2. Fai una ricerca sul web e scopri il significato di “algoritmo” (ecco un documento utile dal quale iniziare).

Con questo vi saluto, arrivederci al prossimo post.

Sinhuè Angelo Rossi

C++ per principianti – 1. introduzione

Ciao a tutti e benvenuti al nuovo corso di C++ dedicato ai principianti, a chi per la prima volta si avvicina alla programmazione.

Visto che per chi è novizio a questo bellissimo mondo il C++ non è di certo il linguaggio più semplice, consiglio di seguire questo corso svolgendo gli esercizi in allegato e cercando di essere curiosi, sperimentare e lavorare per conto proprio, perché la programmazione non è un qualcosa che si impara e finisce lì, piuttosto è un qualcosa che, dopo che si imparano le basi, va migliorato sia per imparare meglio ciò che si conosce già sia per essere sempre più produttivi e creare programmi efficienti, arte che non si finisce mai di conoscere.

Detto ciò è il momento di fare un excursus storico di cosa sia il C++, come sia nato e la sua evoluzione nel corso degli anni.

Il C++ è un linguaggio di programmazione compilato ad oggetti e di alto livello creato da Bjarne Stroustrup. Nacque nel 1979 come evoluzione del C sotto il nome di ‘C con classi’, prese il nome di C++ e venne rilasciata la sua prima versione commerciale nel 1985. Nel 1998 venne finalmente riconosciuto uno standard internazionale, ANSI C++. L’ultima versione del linguaggio è C++14, rilasciata il 15 dicembre 2014.

Bjarne_Stroustrup
Bjarne Stroustrup, programmatore danese e creatore del C++.

Il C++ è senza dubbio il linguaggio più potente, con una versatilità senza eguali (puoi fare praticamente ciò che vuoi) e con delle prestazioni altissime, dovute al fatto che comunica a livello molto basso con il computer. Per essere sfruttato a dovere, però, necessita di essere conosciuto a fondo. Numerosi videogames e software commerciali sono stati scritti in C++.

Andiamo a vedere come è possibile scrivere e compilare i programmi in C++.

Sebbene si possa utilizzare un semplice editor di testo (es. Blocco note per Windows o LeafPad per Linux) il consiglio che vi do è quello di utilizzare un IDE (Integrated Development Environment), ovvero un programma che offre una serie di tools utili allo sviluppo di software.

Personalmente vi consiglio di utilizzare Codeblocks (che utilizzo anch’io), un editor completo e versatile per C, C++ e Fortran disponibile per Windows, Linux e Mac OS e scaricabile a questo indirizzo.

Altro ottimo IDE è Visual Studio, sviluppato dalla Microsoft e quindi solo per sistemi Windows. Lo trovate disponibile gratuitamente in versione community a questo indirizzo.

Altri IDE degni di menzione sono CodeLite e Dev-Cpp. Quest’ultimo però è ormai obsoleto e non aggiornato da tempo.

I file che contengono codice in C++ hanno l’estensione *.cpp, sappiate comunque che li potete trovare con altre estensioni (es. *.h) in base al loro utilizzo all’interno di un progetto.

Dal prossimo post inizieremo a scrivere codice partendo da un semplice messaggio di “Hello world” e vedremo quali componenti sono necessarie a un programma in C++ per essere compilato e per funzionare correttamente. Un saluto e arrivederci al prossimo post.

Sinhuè Angelo Rossi