Baixe o app para aproveitar ainda mais
Prévia do material em texto
Instituto Federal do Sul de Minas Gerais Algoritmos Aula 07 – Funções e Recursividade douglas.braz@ifsuldeminas.edu.br Funções • Funções são blocos de construção de C e onde ocorre toda atividade do programa Funções • Funções são blocos de construção de C e onde ocorre toda atividade do programa Tipo válido em C. Se não for especificado, C entende que é do tipo inteiro Funções • Funções são blocos de construção de C e onde ocorre toda atividade do programa Nome válido em C Funções • Funções são blocos de construção de C e onde ocorre toda atividade do programa Lista de nomes das variáveis, separadas por vígula Argumentos de Funções • Parâmetro de Entrada ▫ Passagem por valor: O argumento não é alterado pela função. Argumentos de Funções • Parâmetro de Entrada e Saída ▫ Passagem por referência: O argumento é alterado pela função Matrizes como Parâmetro • Existem basicamente 3 formas de passar uma matriz como parâmetro: 1 – Especificando a dimensão void display (int vet[10]) 2 – Sem especificar a dimensão void display (int vet[ ]) 3 – Ponteiro void display (int *vet) Comando return • Existem 2 formas pelas quais uma função termina sua execução 1º - Último comando da função for executado Comando return • Existem 2 formas pelas quais uma função termina sua execução 2º - Comando return Funções vs. Variáveis Globais Protótipo da função Recursividade Recursividade • Uma rotina é chamada recursiva quando na sua implementação existe uma chamada para si própria ▫ Quase sempre substitui uma repetição ▫ Quase sempre menos eficiente (tempo de exec.) • Duas partes básicas: ▫ Condição de Parada ▫ Chamada Recursiva Exemplo - Fatorial • Esta operação é definida de forma recursiva: ▫ 0! = 1 ▫ n! = (n-1)! * n, para n > 0 4! = 3! * 4 = 2! * 3 * 4 = 1! * 2 * 3 * 4 = 0! * 1 * 2 * 3 * 4 = 1 * 1 * 2 * 3 * 4 = 24 Exemplo - Fatorial Exercícios 1 - Escreva uma função recursiva para determinar o MDC (maior divisor comum) entre dois números naturais x e y, baseando-se nas regras abaixo. Em seguida apresente uma versão iterativa do algoritmo capaz de realizar a mesma tarefa. Exercícios 2 - Escreva uma versão iterativa (não recursiva) da função para calcular fatorial. 3 - A função de Fibonacci é definida assim: f(0)= 0, f(1)= 1, f(n) = f(n-1) + f(n-2), para n > 1. Descreva a função f em C que calcule o n-ésimo elemento da sequência de Fibonacci (faça uma versão iterativa e uma recursiva). Próxima Aula • Manipulação de Arquivos • Estruturas de dados • Alocação Dinâmica
Compartilhar