Come promesso, in questo quarto appuntamento, vedremo come realizzare una piccola “calcolatrice” in C++. Di fatto vedremo semplicemente come prendere in input due interi, come calcolare la loro somma che verrà salvata in un’apposita variabile e vi mostreremo infine come “stampare” a video il risultato. Ok, è un programma davvero semplice per chi conosce già il C++, ma per chi è alle prime armi può non risultare così banale. Per complicare un po’ le cose, vedremo una seconda versione dello stesso programma, che sfrutterà questa volta una funzione da noi creata per il calcolo della somma, funzione che poi potremo riutilizzare ogni volta che vorremo.
Ecco il codice del nostro piccolo programmino nella sua versione più semplice:
#include
using namespace std;
int main()
{
int x,y,somma; //Dichiariamo le tre variabili
somma = 0; //Inizializziamo la variabile a 0
cout << "Inserisci il primo addendo: ";
cin >> x; //Prendiamo in input il valore di x
cout << "Inserisci il secondo addendo: ";
cin >> y; //Prendiamo in input il valore di y
somma = x+y; //Effettuiamo la somma
cout << "La somma tra i due numeri e\': " << somma << "\n";
system("PAUSE"); //Questa istruzione è indispensabile in ambiente Dev-C++
return 0;
}
Come potete vedere abbiamo commentato ogni linea di codice per maggiore chiarezza. Questa è una buona norma che tutti i programmatori dovrebbero seguire, non sottovalutate l'importanza dei commenti. Analizziamo ora il codice.
int x,y,somma; Con questa istruzione non facciamo altro che allocare spazio per le tre variabili che useremo per salvare i valori dei due addendi e la loro somma. Il tipo di queste variabili è di tipo int, ovvero il programma si aspetterà due valori interi e restituirà, di conseguenza, un risultato dello stesso tipo.
Potremmo costruire la nostra calcolatrice in grado di effettuare somme anche tra numeri decimali, in questo caso dovremmo sostuituire la parola chiave int, con la parola float o double.
(Se volete rinfrescarvi la memoria sui tipi di dato, date un'occhiata al nostro precedente articolo)
cout << "Inserisci il primo addendo: ";
cin >> x; //Prendiamo in input il valore di x
cout << "Inserisci il secondo addendo: ";
cin >> y; //Prendiamo in input il valore di y
Queste istruzioni permetto al programma di fare una richiesta all'utente, ovvero, tramite cout verrà visualizzato un messaggio sul monitor in cui chiediamo all'utente di inserire un intero e successivamente tramite cin prendiamo il rispettivo valore in input. (L'utente dovrà di fatto digitare un numero sulla tastiera e premere invio). Questo per entrambi gli addendi.
somma = x+y; //Effettuiamo la somma
cout << "La somma tra i due numeri e\': " << somma << "\n";
Con queste istruzioni effettuiamo la vera e propria operazione di somma e, successivamente, mostriamo il risultato a video. Notate come abbiamo concatenato più istruzioni cout, la prima stampa il messaggio "La somma tra i due numeri e\': ", la seconda aggiunge il contenuto della variabile somma contenente il nostro calcolo (notate che questa non è racchiusa tra "") ed infine viene stampato un carattere di escape: "\n", che indica al programma di andare a capo di una linea (vi è un altro carattere di escape nella prima parte \' che serve a visualizzare l'apostrofo). Il tutto termina con un unico carattere ; che indica che questa istruzione composta è di fatto tutta intera.
Ecco uno screenshot dell'output visto da Dev-C++:

Scriviamo la funzione somma
Per non rendere questo tutorial banale, passiamo a qualcosa di un po' più complesso. Vogliamo ora generare una funzione esterna al main che possa essere poi richiamata ogni qual volta lo desideriamo. Questa servirà semplicemente per effettuare la somme e notificare il risultato all'utente. Ecco il codice:
#include
using namespace std;
int funzioneSomma(int a,int b);
int main()
{
int x,y, somma;
cout << "Inserisci il primo addendo: ";
cin >> x; //Prendiamo in input il valore di x
cout << "Inserisci il secondo addendo: ";
cin >> y; //Prendiamo in input il valore di y
somma = funzioneSomma(x,y); //La chiamata alla funzione
cout << "La somma tra i due numeri e\': " << somma << "\n";
system("PAUSE");
return 0;
}
int funzioneSomma(int a, int b){
int risultato;
risultato= 0; //Inizializziamo la variabile a 0
risultato= a+b; //Effettuiamo la somma
return risultato;
}
Come potete vedere le differenze sono poche, ma di fondamentale importanta. Abbiamo semplicemente dedicato uno spazio apposito, all'interno di funzioneSomma, per tutta la procedura che comprende i seguenti punti:
- prelievo dei due valori interi (gli addendi)
- calcolo della somma
- stampa a video del risultato
Questo alleggerisce di fatto il main e, cosa ancor più importante, ci permette di riutilizzare tutte le volte che lo desideriamo funzioneSomma con una semplice chiamata. Il codice inizia con la dichiarazione della funzione, a seguire il main e infine la nostra funzione di cui già conosciamo il codice. Quello che possiamo farvi notare è l' int prima del nome della funzione, che indica che la funzione restituirà a chi l'ha richiamata (nel nostro caso al main) un valore intero (risultato), e i due parametri richiesti in input dalla funzione (int a, int b) che si aspetta la funzione e userà nella sua elaborazione. Questi due parametri vengono chiesti precedentemente nel main e inviati alla funzione tramite la chiamata funzioneSomma(x,y). Il risultato dell'elaborazione della funzione verrà poi salvato nella variabile somma.
Abbiamo finito! Tenete presente che il programma fa praticamente le stesse cose che faceva quello scritto nella prima versione (con tutto il codice nell'unica funzione main), stesso output quindi, certo è che questo risulta molto più compatto nella sua espressione!
A presto!!









10 Responses to “C#004 – Creiamo una semplice calcolatrice in C++ (funzioni)”
24 Marzo 2010
bebus77ciao fabrizio !
complimenti per i tutorial, li sto seguendo e mi sto appassionando
in questo della calcolatrice, non capisco pero’ a cosa serva la seconda parte di codice (funzioneSomma) e come si fa a richiamarla quando vogliamo
24 Marzo 2010
Staff devAPPLa funzione serve a creare codice riusabile. Ogni volta che dovrai fare la somma di due numeri, ti basterà chiamare la funzione e passargli 2 interi, in questo modo:
funzioneSomma(x,y);
Noi abbiamo poi salvato il valore ritornato dalla funzione (return risultato;) dentro la variabile somma (nel main):
somma = funzioneSomma(x,y); //La chiamata alla funzione
Quindi, anzichè dover riscrivere tutto il codice per effettuare il calcolo in ogni punto in cui ti serve nel programma, ti basterà semplicemente chiamare la funzione.
Questo è ovviamente un esempio banale, immagina i vantaggi quando si tratta di funzioni molto più complesse e con molte più righe di codice. Inoltre, in questo modo, il codice è sicuramente più ottimizzato.
13 Luglio 2010
CacioXCiao. E’ uno dei pochi corsi che ho trovato in rete per C/C+ dettagliato e con relative spiegazione (dettagliate) di ciò che si scrive… è un peccato non vedere nuove lezioni pubblicate. Aspetto e spero? Grazie.
12 Ottobre 2010
FrancescoHo seguito con interesse le lezioni, da absolute beginner quale sono, ma a quando la prossima? grazie.
19 Ottobre 2010
LukTA me appare una schermata flash e poi scompare tutto quando eseguo e compilo!
19 Ottobre 2010
Staff devAPPFai attenzione a questa istruzione:
system(“PAUSE”); //Questa istruzione è indispensabile in ambiente Dev-C++
1 Novembre 2010
MatteoCiao a tutti.
Innanzitutto grazie per il tutorial.
Volevo chiedervi se arriveranno nuove lezioni. Sinceramente spero di sì perché mi stavo davvero appassionando.
Grazie
5 Gennaio 2011
FabioCiao, io nel mio x code vedo svalangate di errori, ovvero:
ad esempio:
using namespace std: mi da expected + una serie di simboli e missing ‘character
su tutte le righe cin e cout mi da undeclared
sulla riga di cout finale mi da expected “;” before cout
e infine su system pause mi da implicit declaration of function system
una caporetto insomma….
help
8 Gennaio 2011
Davide123ciao complimenti per il sito.perchè avete interrotto questo interessantissimo corso c++?
ciao
26 Gennaio 2011
NorbyÈ davvero un peccato non continuare, erano gli unici tutorial decenti che ho trovato su internet!