| prof. Nunzio Brugaletta |
C++:
programmazione e oggetti |
In questa parte si esamineranno le strutture minime di C++ che permettono di codificare gli algoritmi, prodotti utilizzando le strutture di controllo, introducendo poche caratteristiche specifiche del linguaggio. I frammenti di programmi riportati utilizzeranno soltanto un tipo di dati. In questo contesto le differenze con la codifica in altri linguaggi di programmazione, sono minime. Dal capitolo successivo si cominceranno ad esaminare le caratteristiche peculiari del C++.
Il linguaggio C++, utilizzando un termine proprio, è case-sensitive: fa cioè distinzione fra maiuscole e minuscole. Le parole chiavi devono essere scritte utilizzando lettere minuscole. I nomi che sceglie il programmatore (per esempio i nomi di variabili) possono essere scritti utilizzando qualsiasi combinazione di caratteri minuscoli o maiuscoli. È necessario, però tenere in considerazione che, qualora si utilizzi un sistema misto nei nomi a scelta, essendo il linguaggio case-sensitive, c'è molto rischio di commettere errori. Anche se sono possibili altre soluzioni, è convenzione usare, anche nei nomi a scelta di chi scrive il programma, sempre lettere minuscole.
Qualsiasi programma in C++ segue lo schema:
#include <iostream>
using namespace std;
int main()
{
// dichiarazioni delle variabili utilizzate
...
// istruzioni del programma
...
return 0;
}
La prima riga del listato serve per includere, nel programma, le funzionalità per l'utilizzo degli stream (flussi) di input e output. Il linguaggio C++ fornisce delle librerie già pronte contenenti funzionalità riguardanti elaborazioni varie. Il meccanismo che sta alla base delle librerie, e il significato esatto della riga, saranno chiariti successivamente. Per il momento basta sapere che per poter utilizzare le funzionalità, disponibili in una determinata libreria, è necessario aggiungere una riga del genere con il nome della libreria stessa. Nel caso specifico, se non si aggiungesse tale riga, il programma non potrebbe comunicare con l'esterno per esempio con una tastiera e un video.
Anche il significato esatto della riga successiva (using ...) verrà chiarito in seguito. Per il momento basta dire che è necessaria quando si utilizzano librerie standard (std) del C++. La riga è conclusa con un ; che è il carattere terminatore di una istruzione qualsiasi.
Il programma vero e proprio, per il momento composto da una sola parte, è racchiuso nel blocco, delimitato dalla coppia di parentesi {}, e preceduto da int main().
Il significato esatto dell'ultima istruzione del programma (return 0) verrà chiarito meglio in seguito. Per il momento si può dire che se l'esecuzione del programma avviene senza interruzioni, e che quindi non ci sono errori, questa sarà l'ultima istruzione eseguita e si potrà essere sicuri che il programma è stato eseguito nel modo previsto.
Il programma, nello schema proposto, è suddiviso, per motivi di leggibilità, in due parti distinte: dichiarazione delle variabili da utilizzare e istruzioni. Nel C++ una variabile può essere dichiarata in qualsiasi punto purché prima del suo utilizzo. Quest'ultima è una possibilità comoda quando si sviluppano programmi complessi, si ha necessità di utilizzare una variabile in un punto preciso e si vuole evitare di andare indietro nel listato per dichiarare la variabile e avanti nel punto interessato per utilizzarla, tuttavia penalizza la leggibilità e comprensibilità del programma.
In questi appunti le variabili saranno sempre dichiarate, tutte, nella parte iniziale.
Le righe precedute da // sono commenti: vengono tralasciate dal compilatore in sede di traduzione, ma sono utili al programmatore per chiarire il senso delle righe che seguono. Questo è un aspetto importante perché nella codifica si utilizzano linguaggi simbolici e le istruzioni non chiariscono il senso delle operazioni che si stanno facendo, a maggior ragione quando passa del tempo fra la stesura del programma e la sua lettura o quando il programma viene esaminato da persona diversa rispetto a quella che lo ha sviluppato. È necessario quindi aggiungere righe di commento in modo da isolare e chiarire le singole parti del programma.
I commenti possono, secondo l'uso del linguaggio C, iniziare dopo /* ed essere conclusi da */. In questo caso il commento può espandersi in più righe: è il terminatore */ che dice al compilatore dove finisce il commento.
In questi appunti /* e */ sono utilizzati per segnare le righe dei listati che saranno commentate nel testo.
| http://ennebi.solira.org |
ennebi@solira.org |