Baixe o app para aproveitar ainda mais
Prévia do material em texto
MINISTÉRIO DA EDUCAÇÂO UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE ESCOLA DE CIÊNCIAS E TECNOLOGIA ECT1203 –Linguagem de Programação Funções Recursivas A recursividade é um recurso que permite que uma função seja definida em termos dela mesma. Ou seja, uma função é recursiva quando dentro dela está presente uma instrução de chamada a ela própria. Todo algoritmo baseado em funções recursivas pode ser transformado em um algoritmo iterativo sem recursividade, que utiliza laços de repetição tais como laços while ou for. Apesar de normalmente serem mais lentos que os algoritmos iterativos e de consumirem mais memória, uma das principais vantagens dos algoritmos recursivos é a facilidade de programação de problemas que são inerentemente recursivos. Para constatar essa maior facilidade de programação, resolva os seguintes problemas: Problema 1a: O Máximo Divisor Comum – MDC entre dois números inteiros x e y é o maior número inteiro z do qual tanto x quanto y são múltiplos. Ou seja, os restos das divisões de x por z e de y por z são iguais a zero. Sem utilizar recursividade, escreva uma função denominada mdc, que receba como parâmetros dois números inteiros x e y e que retorne o valor do MDC entre esses dois valores. Para testar a função, faça um programa que receba do usuário dois números inteiros e, utilizando a função mdc, imprima na tela o valor do MDC entre os números. Problema 1b: Considerando-se agora que o MDC entre dois números x e y é definido como segue: se y é igual a 0, então mdc(x,y) é igual a x; caso contrário, mdc(x,y) é igual a mdc (y, x%y), onde % é o operador resto da divisão ou módulo. Implemente uma função recursiva mdcR, que receba como parâmetros dois números inteiros x e y e que retorne o valor do MDC entre esses dois valores. Para testar a função, faça um programa que receba do usuário dois números inteiros e, utilizando a função mdcR, imprima na tela o valor do MDC entre os números. Problema 2: Os termos de uma série de Tribonacci são definidos pela seguinte recursão: ( ) { ( ) ( ) ( ) Implemente uma função recursiva t, que receba como parâmetro um número inteiro n e que retorne o valor do enésimo termo da série de Tribonacci. Por exemplo, para n igual a 1, a função deve retornar o valor 0, que é o primeiro termo da série. Para n igual a 3, a função deve retornar o valor 1, que é o terceiro termo da série. Em seguida, para testar a função t, faça um programa que imprima na tela o valor dos 50 primeiros elementos da série de Tribonnaci. Utilize a função t para calcular o valor de cada termo da série. MINISTÉRIO DA EDUCAÇÂO UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE ESCOLA DE CIÊNCIAS E TECNOLOGIA ECT1203 –Linguagem de Programação Problema 3a: Implemente uma função recursiva denominada soma, que receba como parâmetro um número inteiro n, e que retorne o valor do seguinte somatório. Em seguida, para testar a função criada, faça um programa que receba do usuário um número inteiro e, utilizando a função soma, imprima na tela o valor do somatório abaixo. ∑ Problema 3b: Implemente novamente o item anterior sem utilizar recursividade.
Compartilhar