· Andrea Pollini · programmazione · 5 min read
19 esercizi sulle funzioni in C++
Raccolta di 19 esercizi sulle funzioni in C++ per esercitarsi e migliorare le proprie competenze di programmazione.

Introduzione alle Funzioni
Le funzioni sono blocchi di codice autonomi e riutilizzabili che svolgono compiti specifici. Consentono di modularizzare il codice, rendendolo più leggibile, manutenibile e organizzato.
Dichiarazione di una funzione in C++:
tipo_di_ritorno nome_funzione(lista_parametri) { // Corpo della funzione}
tipo_di_ritorno
specifica il tipo di dato restituito dalla funzione (es:int
,void
,float
).nome_funzione
è un identificatore univoco che la funzione.lista_parametri
è un elenco facoltativo di parametri passati alla funzione, ognuno con un tipo di dato e un nome.corpo_della_funzione
contiene le istruzioni da eseguire all’interno della funzione.
Scopo delle funzioni:
- Modularità: Dividere il codice in blocchi funzionali ben definiti.
- Riutilizzabilità: Evitare la duplicazione di codice eseguendo la stessa operazione più volte.
- Organizzazione: Migliorare la leggibilità e la manutenibilità del codice.
- Astrazione: Nascondere i dettagli di implementazione, esponendo solo l’interfaccia di utilizzo.
Esercizi sulle Funzioni
1. Funzione di saluto: Scrivere una funzione che stampa un messaggio di saluto generico.
void saluto() { std::cout << "Ciao a tutti!" << std::endl;}
2. Funzione di somma: Scrivere una funzione che calcola la somma di due numeri interi passati come parametri.
int somma(int a, int b) { return a + b;}
3. Funzione di controllo della maggiore età: Scrivere una funzione che verifica se un’età (passata come parametro) è maggiore o uguale a 18 anni.
bool maggioreEta(int eta) { return eta >= 18;}
4. Funzione di calcolo dell’area di un quadrato: Scrivere una funzione che calcola l’area di un quadrato dato il suo lato (passato come parametro).
float areaQuadrato(float lato) { return lato * lato;}
5. Funzione di conversione da Celsius a Fahrenheit: Scrivere una funzione che converte una temperatura da Celsius a Fahrenheit.
float celsiusToFahrenheit(float celsius) { return (celsius * 9.0 / 5.0) + 32.0;}
6. Funzione di calcolo del massimo tra tre numeri: Scrivere una funzione che calcola il massimo tra tre numeri interi passati come parametri.
int massimoTreNumeri(int a, int b, int c) { int max = a; if (b > max) max = b; if (c > max) max = c; return max;}
7. Funzione di controllo se un numero è pari o dispari: Scrivere una funzione che verifica se un numero intero (passato come parametro) è pari o dispari e stampa un messaggio corrispondente.
void pariDispari(int numero) { if (numero % 2 == 0) { std::cout << numero << " è un numero pari" << std::endl; } else { std::cout << numero << " è un numero dispari" << std::endl; }}
8. Funzione di calcolo del perimetro di un rettangolo: Scrivere una funzione che calcola il perimetro di un rettangolo date la sua base e la sua altezza (passate come parametri).
float perimetroRettangolo(float base, float altezza) { return 2 * (base + altezza);}
9. Funzione di calcolo del valore assoluto di un numero: Scrivere una funzione che calcola il valore assoluto di un numero intero (passato come parametro).
int valoreAssoluto(int numero) { if (numero >= 0) return numero; else return -numero;}
10. Funzione di calcolo del fattoriale di un numero: Scrivere una funzione ricorsiva che calcola il fattoriale di un numero intero non negativo (passato come parametro).
int fattoriale(int n) { if (n == 0) return 1; else return n * fattoriale(n - 1);}
11. Funzione di verifica se un numero è primo: Scrivere una funzione che verifica se un numero intero (passato come parametro) è un numero primo.
bool isPrimo(int numero) { if (numero <= 1) return false; for (int i = 2; i <= sqrt(numero); i++) { if (numero % i == 0) return false; } return true;}
12. Funzione di ordinamento di un array di interi: Scrivere una funzione che ordina un array di interi in ordine crescente utilizzando il metodo di scambio.
void ordinaArray(int array[], int dimensione) { for (int i = 0; i < dimensione - 1; i++) { for (int j = i + 1; j < dimensione; j++) { if (array[i] > array[j]) { int temp = array[i]; array[i] = array[j]; array[j] = temp; } } }}
13. Funzione di ricerca di un elemento in un array di interi: Scrivere una funzione che cerca un elemento specifico in un array di interi e restituisce la sua posizione (se presente) o -1 se non viene trovato.
int ricercaElemento(int array[], int dimensione, int elemento) { for (int i = 0; i < dimensione; i++) { if (array[i] == elemento) return i; } return -1;}
14. Funzione di calcolo della media di un array di float: Scrivere una funzione che calcola la media di tutti gli elementi in un array di numeri float.
float mediaArray(float array[], int dimensione) { float somma = 0; for (int i = 0; i < dimensione; i++) { somma += array[i]; } return somma / dimensione;}
15. Funzione di conteggio delle parole in una stringa: Scrivere una funzione che conta il numero di parole in una stringa passata come parametro.
int contaParole(std::string stringa) { int contatoreParole = 0; bool inParola = false; for (char c : stringa) { if (isspace(c)) { inParola = false; } else if (!inParola) { inParola = true; contatoreParole++; } } if (inParola) contatoreParole++; // Ultima parola return contatoreParole;}
16. Funzione di controllo se una stringa è palindroma: Scrivere una funzione che verifica se una stringa passata come parametro è una palindroma (si legge uguale da entrambi i lati).
bool isPalindroma(std::string stringa) { std::string stringaInversa; for (char c : stringa) { stringaInversa.insert(0, c); } return stringa == stringaInversa;}
17. Funzione di conversione da maiuscolo a minuscolo e viceversa: Scrivere due funzioni che convertono una stringa intera da maiuscolo a minuscolo e viceversa.
std::string maiuscoloToMinuscolo(std::string stringa) { for (char &c : stringa) { c = tolower(c); } return stringa;}
std::string minuscoloAMaiuscolo(std::string stringa) { for (char &c : stringa) { c = toupper(c); } return stringa;}
18. Funzione di calcolo del MCD tra due numeri: Scrivere una funzione ricorsiva per calcolare il Massimo Comun Divisore (MCD) tra due numeri interi.
int MCD(int a, int b) { if (b == 0) return a; else return MCD(b, a % b);}
19. Funzione di calcolo del MCA tra due numeri: Scrivere una funzione per calcolare il Minimo Comun Multiplo (mcm) tra due numeri interi.
int mcm(int a, int b) { return (a * b) / MCD(a, b);}