Realizziamo oggi un esempio sulle funzioni in C++, al fine di consolidarne l’uso.
Consideriamo dunque il seguente problema:
Progettare un programma a menù, con uso di funzioni, che offra le seguenti scelte:
1. Leggi due valori numerici;
2. Visualizza la somma;
3. Visualizza il prodotto;
4. Esci dal programma.
Esempio sulle funzioni in C++, Procedimento
Per realizzare questo semplice esercizio creiamo innanzitutto una funzione che crei un menù di scelta, la chiamo ad esempio menu_scelta.
Questo menù consentirà, di inserire gli elementi, fare la somma, il prodotto o di uscire dal programma.
Quindi realizziamo la funzione per l’inserimento insert() che restituirà il numero inserito.
Poi realizziamo le funzioni somma e prodotto che prenderanno come parametri due valori interi x e y e restituiranno rispettivamente il prodotto e la somma.
Quindi nel main in base alla scelta effettuata facciamo le operazioni.
Se si sceglie per prima l’opzione 2 o 3 avvisiamo l’utente che ancora deve inserire i dati.
Ecco dunque il listato completo dell’esempio sulle funzioni in C++:
#include <iostream>
using namespace std;
// Prototipi delle funzioni
int somma(int x, int y);
int prodotto(int x, int y);
int insert();
// Funzione per visualizzare il menu di scelta
int menu_scelta() {
int selezione = 0;
do {
cout << endl << "1 - Inserisci i numeri" << endl;
cout << "2 - Somma i numeri" << endl;
cout << "3 - Prodotto dei numeri" << endl;
cout << "4 - Esci" << endl;
cout << "Effettua una scelta: " << endl;
cin >> selezione;
} while (selezione < 1 || selezione > 4);
return selezione;
}
int main() {
int scelta;
int a, b, s, p;
// Ciclo finché l'utente non sceglie di uscire
while ((scelta = menu_scelta()) != 4) {
switch (scelta) {
case 1: // Inserimento dei numeri
a = insert();
b = insert();
break;
case 2: // Somma dei numeri
if (!a || !b) {
cout << "Prima devi inserire i numeri!" << endl;
} else {
s = somma(a, b);
cout << "La somma è: " << s << endl;
}
break;
case 3: // Prodotto dei numeri
if (!a || !b) {
cout << "Prima devi inserire i numeri!" << endl;
} else {
p = prodotto(a, b);
cout << "Il prodotto è: " << p << endl;
}
break;
}
}
return 0;
}
// Funzione per inserire un numero
int insert() {
int x;
cout << "Inserisci un numero: " << endl;
cin >> x;
return x;
}
// Funzione per sommare due numeri
int somma(int x, int y) {
return x + y;
}
// Funzione per moltiplicare due numeri
int prodotto(int x, int y) {
return x * y;
}
Si poteva anche richiedere, dopo il messaggio di avviso, l’inserimento dei due numeri in input. Come da esempio sotto:
if(!a || !b){
cout <<"Prima devi inserire i numeri!" <<endl;
a = insert();
b = insert();
}
else {
s = somma(a,b);
cout << "la somma e':" << s << endl;
}
Chiaramente questa è solo una possibile soluzione al problema proposto, possono esserci tanti altri metodi risolutivi a questo esempio sulle funzioni in C++.
Alcuni link utili
Iterazioni con il ciclo for in C++
Esercizi con switch case in C++
Successione di Fibonacci in C++
Esercitazione sugli array in C++