English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Neste tutorial, você aprenderá a usar funções para resolver diferentes métodos de um único problema.
Para entender melhor os parâmetros e o valor de retorno das funções, pode-se classificar as funções definidas pelo usuário como:
Considere uma situação em que você deve verificar números primos. Através do seguinte4Diferentes maneiras de criar funções definidas pelo usuário podem resolver os seguintes problemas.
#include <iostream> using namespace std; void prime(); int main() { // Nenhum parâmetro é passado para o prime() prime(); return 0; } // O tipo de retorno da função é void, porque não há valor de retorno. void prime(); { int num, i, flag = 0; cout << "Digite um número inteiro positivo para verificar: "; cin >> num; for(i = 2; i <= num/2; ++i) { if (num % i == 0) { flag = 1; break; } } if (flag == 1) { cout << num << " ". Não é um número primo."; } else { cout << num << " é um número primo."; } }
No programa acima, a função prime() é chamada dentro de main(), mas sem parâmetros.
A função prime() é usada para obter um número positivo do usuário e verificar se o número é primo.
Como o tipo de retorno do prime() é void, a função não retorna nenhum valor.
#include <iostream> using namespace std; int prime(); int main() { int num, i, flag = 0; // Nenhum parâmetro é passado para o prime() num = prime(); for (i = 2; i <= num/2; ++i) { if (num % i == 0) { flag = 1; break; } } if (flag == 1) { cout << num << " não é um número primo."; } else { cout << num << " é um número primo."; } return 0; } // O tipo de retorno da função é int int prime() { int n; printf("Digite um número inteiro positivo para verificar: "); cin >> n; return n; }
No programa acima, chamamos a função prime() a partir do main(), sem parâmetros.
A função prime() obtém um número inteiro positivo do usuário. Como o tipo de retorno da função é int, ela retorna o número digitado para a função main().
Então, dentro do próprio main(), verificamos se o número é primo e imprimimos na tela.
#include <iostream> using namespace std; void prime(int n); int main() { int num; cout << "Digite um número inteiro positivo para verificar: "; cin >> num; // O parâmetro num é passado para a função prime(). prime(num); return 0; } // A chamada da função não tem valor de retorno. Portanto, o tipo de retorno da função é 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 << " ". Não é um número primo."; } else { cout << n << " ". É um número primo."; } }
No programa acima, primeiro pedimos ao usuário que insira um número inteiro positivo, que é armazenado na variável num.
Então, passamos num para a função prime(), onde verificamos e imprimimos se o número é primo.
Porque, o tipo de retorno da função prime() é void, a função prime() não retorna nenhum valor.
#include <iostream> using namespace std; int prime(int n); int main() { int num, flag = 0; cout << "Digite um número inteiro positivo para verificar: "; cin >> num; // O parâmetro num é passado para a função check(). flag = prime(num); if(flag == 1) cout << num << " ". Não é um número primo."; else cout << num << " ". É um número primo."; return 0; } /* Esta função retorna um valor inteiro. */ int prime(int n) { int i; for(i = 2; i <= n/2; ++i) { if(n % i == 0) return 1; } return 0; }
No programa acima, perguntamos ao usuário um número inteiro positivo e o armazenamos na variável num.
Em seguida, o num é passado para a função prime(), onde é verificado se o número é primo.
Como o tipo de retorno de prime() é int, então1Ou 0 é retornado para a chamada da função main(). Se o número for primo, retorna1Se não, retorna 0.
No função main(), o valor retornado1Ou 0 é armazenado na variável flag e o texto correspondente é impresso na tela.
Os quatro programas acima fornecem o mesmo resultado de saída e tecnicamente são programas corretos.
Não há especificação rigorosa para a escolha do método.
Escolha o método específico com base na situação específica e na maneira como você deseja resolver o problema.