Ecco degli esercizi semplici con soluzione per praticare le basi delle funzioni in C++.
Esercizio 1
Scrivi una funzione che prenda in input due numeri interi e restituisca la loro somma.
#include <iostream>using namespace std;
int somma(int a, int b) { return a + b;}
int main() { int num1 = 5; int num2 = 3;
int risultato = somma(num1, num2);
cout << "La somma è: " << risultato << endl;
return 0;}
Esercizio 2
Scrivi una funzione che prenda in input un numero intero e stampi tutti i numeri pari fino a quel valore.
#include <iostream>using namespace std;
void stampaNumeriPari(int n) { for (int i = 2; i <= n; i += 2) { cout << i << " "; }}
int main() { int num = 10;
cout << "Numeri pari fino a " << num << ": "; stampaNumeriPari(num); cout << endl;
return 0;}
Esercizio 3
Scrivi una funzione che prenda in input un carattere e restituisca true se è una vocale, altrimenti restituisca false.
#include <iostream>using namespace std;
bool isVocale(char c) { c = tolower(c);
if (c == 'a' || c == 'e' || c == 'i' || c == 'o' || c == 'u') { return true; } else { return false; }}
int main() { char carattere = 'A';
if (isVocale(carattere)) { cout << carattere << " è una vocale." << endl; } else { cout << carattere << " non è una vocale." << endl; }
return 0;}
Esercizio 4
Scrivi una funzione che prenda in input un array di interi e il suo numero di elementi, e restituisca la somma di tutti gli elementi dell'array.
#include <iostream>using namespace std;
int sommaArray(int array[], int lunghezza) { int somma = 0;
for (int i = 0; i < lunghezza; i++) { somma += array[i]; }
return somma;}
int main() { const int NUM_ELEMENTI = 5; int numeri[NUM_ELEMENTI] = {1, 2, 3, 4, 5};
int risultato = sommaArray(numeri, NUM_ELEMENTI);
cout << "La somma degli elementi dell'array è: " << risultato << endl;
return 0;}
Esercizio 5
Scrivi una funzione che prenda in input un numero intero e restituisca il suo quadrato.
#include <iostream>using namespace std;
int quadrato(int num) { return num * num;}
int main() { int numero = 5;
int risultato = quadrato(numero);
cout << "Il quadrato di " << numero << " è: " << risultato << endl;
return 0;}
Esercizio 6
Scrivi una funzione che prenda in input una stringa e restituisca la sua lunghezza.
#include <iostream>#include <cstring>using namespace std;
int lunghezzaStringa(char stringa[]) { return strlen(stringa);}
int main() { char testo[] = "Ciao Mondo";
int lunghezza = lunghezzaStringa(testo);
cout << "La lunghezza della stringa è: " << lunghezza << endl;
return 0;}
Esercizio 7
Scrivi una funzione che prenda in input due numeri float e restituisca il loro prodotto.
#include <iostream>using namespace std;
float prodotto(float a, float b) { return a * b;}
int main() { float num1 = 2.5; float num2 = 3.7;
float risultato = prodotto(num1, num2);
cout << "Il prodotto è: " << risultato << endl;
return 0;}
Esercizio 8
Scrivi una funzione che prenda in input un array di caratteri e stampi tutti i caratteri in ordine inverso.
#include <iostream>using namespace std;
void stampaInversa(char array[], int lunghezza) { for (int i = lunghezza - 1; i >= 0; i--) { cout << array[i] << " "; }}
int main() { const int NUM_CARATTERI = 5; char caratteri[NUM_CARATTERI] = {'A', 'B', 'C', 'D', 'E'};
cout << "Caratteri in ordine inverso: "; stampaInversa(caratteri, NUM_CARATTERI); cout << endl;
return 0;}
Esercizio 9
Scrivi una funzione che prenda in input un numero intero e restituisca true se è un numero primo, altrimenti restituisca false.
#include <iostream>using namespace std;
bool isPrimo(int n) { if (n <= 1) { return false; }
for (int i = 2; i <= n/2; i++) { if (n % i == 0) { return false; } }
return true;}
int main() { int numero = 17;
if (isPrimo(numero)) { cout << numero << " è un numero primo." << endl; } else { cout << numero << " non è un numero primo." << endl; }
return 0;}
Esercizio 10
Scrivi una funzione che prenda in input una matrice di interi e il numero di righe e colonne, e stampi tutti gli elementi della matrice.
#include <iostream>using namespace std;
void stampaMatrice(int matrice[][3], int righe, int colonne) { for (int i = 0; i < righe; i++) { for (int j = 0; j < colonne; j++) { cout << matrice[i][j] << " "; } cout << endl; }}
int main() { const int NUM_RIGHE = 3; const int NUM_COLONNE = 3; int matrice[NUM_RIGHE][NUM_COLONNE] = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
cout << "Elementi della matrice:" << endl; stampaMatrice(matrice, NUM_RIGHE, NUM_COLONNE);
return 0;}