Buscar

LAB06 - Funçoes Recursivas

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.

Continue navegando