Dark Skyllen 7 #1 Postado 11 Fevereiro, 2010 (editado) Funções Aula 5 Ao iniciar um arquivo no C++, acrescentamos sempre o seguinte bloco: [b]int[/b] main(int argc, char *argv[]){ } Mas você sabe o que isso significa? :hmm: A função main é a responsável por fazer com que nosso programe rode, sem ela não teriamos um corpo para nosso programa. Entretanto, durante a programação outras funçõe podem ser criadas e utilizadas dentro de main(). Primeiro, vamos entender como estruturar uma função: tipo nome (parametros necessários para que a função execute) { } Sendo: tipo - o tipo de dado que a função retorna nome - um nome qualquer a sua escolha parametros - pode ser quantos quiser, são esses os dados que deverão ser passados para que a função execute. Vamos dar um exemplo durante nosso programa: Entenda o bloco abaixo: Declaramos uma função soma do tipo int e ela possui a e b como parametros. [b]int[/b] soma ([b]int[/b] a, [b]int[/b] { } Só que nossa função ainda está incompleta, está faltando o corpo dela. Essa função então terá como função (:palm:) executar a soma de dois números, serão eles a e b. [b]int[/b] soma ([b]int[/b] a, [b]int[/b] { a+b; } Bom, há um erro nessa função.. ela não funcionaria, pois assim que executarmos a função, como saberemos o resultado dela? :fuu: Simples, usando o return. O return faz com que a função que foi executada, retorne um valor IGUAL AO TIPO DA FUNÇÃO, por exemplo, se você criar uma função do tipo INT, ela tera que retornar INT. Usando o return, nosso code ficaria: [b]int[/b] soma ([b]int[/b] a, [b]int[/b] { [b]return[/b] a+b; } Fazendo um programa com funções Vamos criar um programinha para testarmos nossa função: [left][color=seagreen]#include <iostream.h>[/color][/left] [left][b]int[/b] soma ([b]int[/b] a, [b]int[/b] {[/left] [left][b]return[/b] a+b;[/left] [left]}[/left] [left][b]int[/b] main(int argc, char *argv[]){[/left] [left][b]int[/b] num1, num2, resultado;[/left] [left]cout << [color=red]"Digite dois números: "[/color] << endl; cin >> num1 >> num2; resultado = soma(num1, num2); cout << [color=red]"A soma dos dois números é: "[/color] << resultado << endl; system([color=red]"pause"[/color]); [b]return 0;[/b][/left] [left]}[/left] Declaramos nossa função antes do main para que ela seja reconhecida dentro da função main e então pedimos para o usuário digitar dois valores. Com os dois valores, executamos as funções com os seguintes parâmetros, num1 e num2 e ele retornou o valor da soma. Esse valor foi alocado na variavel resultado. Viram como é fácil trabalhar com funções? :coolface: Mais exemplo de funções: [left][color=seagreen]#include <iostream.h>[/color][/left] [b]bool[/b] checaMedia([b]int[/b] nota1, [b]int[/b] nota2){ [indent][b]if[/b] (((nota1+nota2)/2) >= 5){ [indent][b]return true[/b]; [/indent] [/indent] [indent]} [left][b]else return false[/b];[/left] [/indent]} [left][b]int[/b] main([b]int[/b] argc, [b]char[/b] *argv[]){[/left] [left][b]int[/b] num1, num2;[/left] [left]cout << [color=red]"Digite dois números: "[/color] << endl; cin >> num1 >> num2; [b]if[/b] (checaMedia(num1, num2) == [b]true[/b]){ cout << [color=red]"Aluno aprovado"[/color] << endl; } [b]else[/b] { cout << [color=red]"Aluno reprovado"[/color] << endl; } system([color=red]"pause"[/color]); [b]return 0[/b];[/left] } Por enquanto é só pessoal! Pratiquem com mais funções e qualquer dúvida e só postar! Editado 15 Março, 2010 por Dark Skyllen Compartilhar este post Link para o post Compartilhar em outros sites
Piikachu 0 #2 Postado 17 Fevereiro, 2010 Muito bom, aprovado. =] Compartilhar este post Link para o post Compartilhar em outros sites
LG 1 #3 Postado 17 Fevereiro, 2010 Belo tutorial... Função é uma coisa muito usada, ou melhor sempre é usada =D até mais LG Compartilhar este post Link para o post Compartilhar em outros sites
Baxnie 8 #4 Postado 17 Fevereiro, 2010 Só faltou dizer que o objetivo principal de se usar funções é para não repetir código. Compartilhar este post Link para o post Compartilhar em outros sites
dragonlorde 0 #5 Postado 7 Abril, 2010 /\ Mesmo assim a aula ta muito boa... Venho seguindo todas as aulas e todas tao excelentes Obrigado~ Compartilhar este post Link para o post Compartilhar em outros sites
BLackBode 0 #6 Postado 30 Novembro, 2010 até agora to aprendendo bem.. outra otima aula fiz um programa pra calcular um numero qualquer elevado a outro qualquer usando o material dessa aula.. bem legal [spoiler=exponencial] #include <cstdlib> #include <iostream> using namespace std; int exponencial(int numero, int expoente) // funçao para calcular o resultado de uma opereçao exponencial { int num1 = numero; int contagem = 1; for( ; contagem < expoente ; contagem++) { numero = numero*num1; } return numero; } int main(int argc, char *argv[]) { std::string sair; // declaraçao de string int num1, expo; for( ; sair != "NAO" && sair != "Nao" && sair != "nao" && sair != "n" ; ) // loop condicional { cout << "Digite um numero : "; cin >> num1; // entrada de dados cout << "Digite seu expoente :"; cin >> expo; // entrada de dados system("cls"); // limpa tela cout << "O numero " << num1 << " com expoente " << expo << " da um total de : " << exponencial(num1,expo); cout << "\n\n\n"; cout << "Deseja calcular novamente? (SIM/NAO) :"; cin >> sair; // opcao sair system("cls"); } return EXIT_SUCCESS; } Compartilhar este post Link para o post Compartilhar em outros sites
Fearlet 0 #7 Postado 17 Janeiro, 2018 Muito bom Compartilhar este post Link para o post Compartilhar em outros sites