Vediamo adesso come si può realizzare il nostro primo programma funzionante in C++. Seguendo le istruzioni viste nella lezione precedente, creiamo un nuovo progetto di tipo Console application e chiamiamolo Primi. Cancelliamo il contenuto della finestra di programma e copiamoci dentro il codice seguente:
#include <cstdlib>
#include <iostream>
using namespace std;
int main(int argc, char *argv[])
{
int divisore, numero, resto;
cout<<"Fornisci un numero: ";
cin>> numero;
divisore=2;
while (divisore<numero)
{
resto = numero%divisore;
if (resto==0)
{
cout<<"Il
numero "<<numero<<" non e' primo\n";
break;
}
divisore = divisore+1;
}
if (divisore == numero)
cout<<"Il numero "<<numero<<" e'
primo\n";
system("PAUSE");
return EXIT_SUCCESS;
}
Salviamo il programma con nome Primi.cpp ed eseguiamolo con Esegui-Compila & Esegui. Il funzionamento del programma è mostrato nella schermata seguente:
Si tratta di un semplice programma per determinare se un dato numero intero è primo oppure no. L'utente inserisce il numero (23 nell'esempio in figura) e il programma fornisce la risposta.
Osservando con maggiore attenzione il menu Esegui del Dev-C++ vediamo che esso si compone di molte voci diverse:
In precedenza per eseguire il programma abbiamo usato Compila & Esegui (o il tasto F9). Come suggerisce il nome stesso, questa voce effettua la compilazione, cioè la traduzione del programma dal linguaggio C++ al linguaggio macchina del calcolatore, e quindi lo esegue. La compilazione è necessaria ogni volta che si scrive un nuovo programma o quando si apportano delle modifiche a un programma già esistente.
Se si vuole semplicemente eseguire di nuovo un programma senza modificarlo, basta scegliere Esegui (oppure Ctrl+F10). Se per esempio vogliamo ripetere il programma con un altro numero, possiamo fare Esegui e ci verrà chiesto di inserire un nuovo valore per la verifica.
Supponiamo ora di voler fare una piccola modifica al programma. Dove è scritto:
cout<<"Fornisci un numero: ";
modifichiamolo con
cout<<"Fornisci un numero intero: ";
prestando attenzione a non modificare o cancellare nulla (soprattutto i doppi apici " e il punto e virgola finale). Se ora proviamo a scegliere Esegui osserviamo che la scritta che ci viene visualizzata è ancora semplicemente:
Se vogliamo che la nostra modifica venga visualizzata, dobbiamo prima compilare (cioè tradurre) il nostro programma. Per fare questo possiamo scegliere Compila il file corrente e poi Esegui oppure direttamente Compila & Esegui. Il risultato è allora il seguente:
Proviamo ora a introdurre un piccolo errore sintattico nel nostro programma. Un errore sintattico è un errore nella grammatica, nelle regole del linguaggio C++. Uno degli errori sintattici più comuni che si commettono programmando in C e in C++ è dimenticare un punto e virgola al termine di un'istruzione.
Cancelliamo dunque il punto e virgola alla fine della riga:
divisore=2;
facendola diventare così:
divisore=2
Adesso proviamo a compilare ed eseguire il programma. Vedremo che nella finestra in basso dello schermo del Dev-C++ compaiono una serie di scritte:
Si tratta di tre linee di segnalazione errore. La prima ci dice che è stato riscontrato un errore all'interno della funzione main (l'unica di cui è composto il nostro programma, ma ci possono essere più funzioni all'interno di uno stesso programma, come scopriremo meglio nel seguito).
La seconda riga ci dice che l'errore è stato trovato sulla riga 14 ed è il seguente: expected ';' before '"while" ovvero atteso un ';' prima del "while". Il compilatore ci sta in sostanza avvisando del fatto che manca un punto e virgola e che questo punto e virgola manca prima dell'istruzione while.
In realtà il Dev-C++ fa ancora di più, poiché ci segnala la linea del programma in cui presume di aver trovato l'errore evidenziandola in rosso:
In realtà, come possiamo osservare, l'errore non si trova alla riga 14, ma alla precedente, poiché il punto e virgola manca dopo divisore=2. Occorre tener presente questa cosa: l'eventuale mancanza di un punto e virgola viene sempre segnalata dal compilatore all'inizio della riga successiva (e non alla fine di quella in cui il punto e virgola è assente).
Notiamo anche che in presenza di un errore sintattico, il programma non viene eseguito. Finché non correggiamo l'errore, l'esecuzione non parte!
Sito realizzato in base al template offerto da
http://www.graphixmania.it