English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
In questo tutorial, imparerai a utilizzare le funzioni per risolvere diversi problemi singoli.
Per meglio comprendere i parametri e il valore di ritorno delle funzioni, possiamo classificare le funzioni definite dall'utente in:
Consideriamo una situazione in cui è necessario verificare i numeri primi. Attraverso i 4 modi diversi di definire la funzione dell'utente descritti sopra, è possibile risolvere i seguenti problemi.
#include <iostream> using namespace std; void prime(); int main() { // Nessun parametro viene passato a prime() prime(); return 0; } // Il tipo di ritorno della funzione è void, perché non restituisce alcun valore. void prime(); { int num, i, flag = 0; cout << "Inserisci un numero intero positivo per la verifica: "; cin >> num; for (i = 2; i <= num / 2; ++i) { if (num % i == 0) { flag = 1; break; } } if (flag == 1) { cout << num << " non è un numero primo."; } else { cout << num << " è un numero primo."; } }
Nel programma sopra, la funzione prime() viene chiamata in main(), ma senza parametri.
La funzione prime() viene utilizzata per ottenere un numero positivo dall'utente e verificare se il numero è un numero primo.
Poiché il tipo di ritorno di prime() è void, la funzione non restituisce alcun valore.
#include <iostream> using namespace std; int prime(); int main() { int num, i, flag = 0; // Nessun parametro viene passato a prime() num = prime(); for (i = 2; i <= num / 2; ++i) { if (num % i == 0) { flag = 1; break; } } if (flag == 1) { cout << num << " non è un numero primo."; } else { cout << num << " è un numero primo."; } return 0; } // Il tipo di ritorno della funzione è int int prime() { int n; printf("Inserisci un numero intero positivo per la verifica: "); cin >> n; return n; }
Nel programma sopra, la funzione prime() viene chiamata da main() senza parametri.
La funzione prime() ottiene un numero intero positivo dall'utente. Poiché il tipo di ritorno della funzione è int, restituisce il numero inserito alla funzione main().
Poi, nel main() stesso, verifica se il numero è primo e lo stampa a schermo.
#include <iostream> using namespace std; void prime(int n); int main() { int num; cout << "Inserisci un numero intero positivo per la verifica: "; cin >> num; // Il parametro num viene passato alla funzione prime() prime(num); return 0; } /* La chiamata alla funzione non ha valore di ritorno. Pertanto, il tipo di ritorno della funzione è void. */ void prime(int n) { int i, flag = 0; for (i = 2; i <= n/2; ++i) { if (n % i == 0) { flag = 1; break; } } if (flag == 1) { cout << n << " non è un numero primo."; } else { cout << n << " è un numero primo."; } }
Nel programma sopra, prima si richiede all'utente di inserire un numero positivo, che viene memorizzato nella variabile num.
Poi, passa num alla funzione prime(), dove verifica e stampa se il numero è primo.
Poiché, la funzione prime() restituisce il tipo void, la funzione prime() non ha valore di ritorno.
#include <iostream> using namespace std; int prime(int n); int main() { int num, flag = 0; cout << "Inserisci un numero intero positivo per la verifica: "; cin >> num; // Il parametro num viene passato alla funzione check() flag = prime(num); if(flag == 1) cout << num << " non è un numero primo."; else cout << num << " è un numero primo."; return 0; } /* Questa funzione restituisce un valore intero. */ int prime(int n) { int i; for(i = 2; i <= n/2; ++i) { if(n % i == 0) return 1; } return 0; }
Nel programma sopra, viene chiesto all'utente di inserire un numero intero positivo e viene memorizzato nella variabile num.
Poi, viene passato il numero a funzione prime(), dove viene verificato se il numero è un numero primo.
Poiché il tipo di ritorno di prime() è int, viene restituito 1 o 0 al metodo chiamante main(). Se il numero è un numero primo, viene restituito 1. Se non lo è, viene restituito 0.
Nel metodo main(), il valore 1 o 0 restituito viene memorizzato nella variabile flag e il testo corrispondente viene stampato a schermo.
Tutti e quattro i programmi elencati sopra forniscono lo stesso risultato di output e sono tecnicamente programmi corretti.
Non ci sono specifiche rigorose per la scelta del metodo.
Scegli un metodo specifico in base alla situazione specifica e al modo in cui intendi risolvere il problema.