Baixe o app para aproveitar ainda mais
Prévia do material em texto
Procedimentos e Funções CIC107-Programação de Computadores I Emiliana Mara Lopes Simões simoes.eml@gmail.com Universidade Federal de Ouro Preto novembro 2009 Funções Um problema complexo é melhor abordado se for dividido primeiramente em vários subproblemas Função É um bloco de instruções que realiza uma tarefa específica quando é chamada de algum outro ponto do programa Exemplo 1: Função sqrt da biblioteca matemática (cmath) Já utilizamos a função sqrt definida na biblioteca cmath de C++. Vejam um programa exemplo para relembrar o seu uso: #include <cmath> #include <iostream> using namespace std; main(){ float num, raiz; cout << “Digite o numero que voce deseja obter a raiz quadrada: ”; cin >> num; raiz = sqrt(num); cout << “A raiz quadrada de ” << num << “ eh ” << raiz << endl; system(“pause”); } Exemplo 1: Função sqrt da biblioteca matemática (cmath) Podemos fazer uma analogia de uma função com uma caixa-preta Não importa como mas... Qualquer valor passado à função sqrt será manipulado e sua raiz quadrada retornada Exemplo 1: Função sqrt da biblioteca matemática (cmath) sqrt(9) Exemplo 2: Implementação de uma função para calcular a área de um retâgulo Para calcular a área de um retângulo qualquer de quais informações precisamos? Exemplo 2: Implementação de uma função para calcular a área de um retâgulo Obviamente a informação retornada será o valor da área do retângulo... Exemplo 2: Implementação de uma função para calcular a área de um retâgulo Exemplo 2: Implementação de uma função para calcular a área de um retâgulo float area(float b, float h){ float a; a = b * h; return a; } Exemplo 2: Implementação de uma função para calcular a área de um retâgulo #include <iostream> using namespace std; float area(float b, float h){ float a; a = b * h; return a; } main(){ float resp; resp = area(10, 15); cout << “A area do retangulo e: ” << resp; system(“pause>null”); } Exemplo 2: Implementação de uma função para calcular a área de um retâgulo Funções: Forma Geral tipo_retorno nome_da_funcao(<lista_de_parâmetros>) { <declarações e instruções> return <valor_de_retorno>; } –––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– float area(float b, float h){ float a; a = b * h; return a; } Funções: tipo_retorno, nome_da_função tipo_retorno é o tipo do resultado (valor) retornado pela função (Exemplo: int, float, char, bool) O tipo_retorno void indica que a função não retorna um valor nome_da_função é qualquer identificador válido e corresponde ao nome pelo qual será possível chamar a função Funções: lista_de_parâmetros lista_de_parâmetros é uma lista separada por vírgulas na qual a função determina o tipo e o nome dos seus parâmetros, por exemplo, int x Cada parâmetro funciona dentro da função como qualquer outra variável Forma geral da lista de parâmetros: (tipo nome1, tipo nome2, ..., tipo nomeN) Uma função pode não ter parâmetros (lista de parâmetros vazia!!!); Funções: Comando return O comando return determina o fim da execução de uma função; A expressão contida dentro do comando return é chamada de valor de retorno, e corresponde à resposta de uma determinada função; O valor de retorno deve ser compatível com o tipo de retorno declarado para a função!!! Exemplo 3: Implementação de uma função para imprimir na tela uma mensagem de boas vindas Problema: Implementar uma função para imprimir na tela a mensagem “Sejam bem vindos ao curso de programacao II” Exemplo 3: Implementação de uma função para imprimir na tela uma mensagem de boas vindas Problema: Implementar uma função para imprimir na tela a mensagem “Sejam bem vindos ao curso de programacao II” Exemplo 3: Implementação de uma função para imprimir na tela uma mensagem de boas vindas #include <iostream> using namespace std; void msg(){ cout << “Sejam bem vindos ao curso de programacao II” << endl; return; } main(){ msg(); system(“pause>null”); } Exemplo 3: Implementação de uma função para imprimir na tela uma mensagem de boas vindas Exemplo 3: Implementação de uma função para imprimir na tela uma mensagem de boas vindas Protótipos de funções Até o momento, as funções apareceram antes da função main() Assim como ocorre com uma variável, não podemos usar uma função sem antes declará-la A declaração de uma função é chamada protótipo e é uma instrução que estabelece o tipo da função, seu nome e especifica os argumentos que ela recebe Protótipos de funções Protótipo da função area (implementada anteriormente) Protótipos de funções Modificação do Exemplo 2: Regras de Escopo A parte do programa em que um identificador pode ser utilizado é conhecida como escopo Variáveis Locais São aquelas que só têm validade dentro do bloco no qual são declaradas Variáveis Locais Variáveis Locais Variáveis Locais Variáveis Globais São declaradas fora de todas as funções do programa. Uma variável global tem validade dentro de todas as funções que aparecem após a sua declaração no arquivo Variáveis Globais #include <iostream> using namespace std; int x; //variável global void f1(){ x += 10; } void f2(){ x += 20; } main(){ x = 0; f1(); f2(); cout << “valor atual de x: ” << x << endl; system(“pause>null”); } Exemplo de Uso de Funções PROBLEMA: Implementar uma função capaz de calcular o fatorial de um número Exemplo de Uso de Funções PROBLEMA: Implementar uma função capaz de calcular o fatorial de um número int fatorial(int n); Exemplo de Uso de Funções int fatorial(int n){ int fat; fat = 1; for(int i = 2; i <= n; i++) fat = fat * i; return fat; } Exemplo de Uso de Funções PROBLEMA: Desenvolver um programa que calcule a combinação de n elementos tomados p a p e escreva o seu resultado. A fórmula da combinação é dada por: C(n,p) = n! p!× (n − p)! Exemplo de Uso de Funções main(){ int n, p, c; do{ cout << “Digite a quantidade de elementos: ”; cin >> n; }while(n <= 0); do{ cout << “Digite a quantidade de elementos a combinar: ”; cin >> p; }while( (p <= 0) || (p > n) ); c = fatorial(n) / ( fatorial(p) * fatorial(n - p) ); cout << “As combinacoes possiveis sao:” << c << endl; system(“pause>null”); } Exemplo de Uso de Funções Dúvidas?
Compartilhar