PROGRAMMIAMO
C++ - Dev-C++: Il primo programma
Un programma un po' più interessante

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:

Schermata programma numeri primi

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.

I comandi per compilare ed eseguire il programma

Osservando con maggiore attenzione il menu Esegui del Dev-C++ vediamo che esso si compone di molte voci diverse:

Menu esegui

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:

 

Errori e correzione

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!

 

precedente - successiva

Sito realizzato in base al template offerto da

http://www.graphixmania.it