Buscar

Neste exemplo da �gura 44, é possível observar que a escrita de uma função recursiva em sua sintaxe é semelhante a qualquer outra função, mas exist...

Neste exemplo da �gura 44, é possível observar que a escrita de uma função recursiva em sua sintaxe é semelhante a qualquer outra função, mas existe um detalhe que indica a existência de uma possível recursão logo num primeiro olhar, quando se percebe que a função, em determinado momento, chama a si mesma.
Analisando com mais detalhes, a funcionalidade da sub-rotina se baseia em calcular, a partir de dois valores recebidos como parâmetros, a operação exponencial matemática, e o resultado seja devolvido ao ponto do algoritmo que chama esta sub-rotina.
Para que o cálculo possa ser realizado, existe uma estrutura de repetição encarregada de �nalizar a função ou chamá-la novamente para que uma nova iteração ocorra desta sub-rotina, e a recursão seja realizada.
A lógica da recursão neste exemplo se baseia na forma como o cálculo é realizado para que se possa pensar em como realizar as sucessivas operações até que uma condição indique que não são mais necessárias chamadas da função, e o processo de repetição termine, mas não ocorre apenas o término das iterações, mas todos os retornos das novas chamadas da função.
Ao receber os dados por meio dos parâmetros, é realizada uma veri�cação em uma estrutura condicional para retornar o valor 1 como resposta no caso de o expoente ser igual a zero, operação de�nida como padrão pela matemática o resultado 1 para qualquer número elevado a zero.
Caso não seja 1 o valor do expoente, a função chama a si mesma novamente solicitando a multiplicação do valor a base pelo retorno da função, repetindo o mesmo valor para a base, mas reduzindo uma unidade no expoente para que a cada iteração, cada nova chamada da função, o processo se repita.
Com isto, se fossem passados os valores 5 para base, e 3 para expoente, a execução da função ocorreria de forma que 3 seria comparado a zero, e sendo diferentes, a condição alternativa para falso inicia a multiplicação do valor da base pelo resultado da chamada da própria função pela recursividade.
Numa segunda iteração da função, o expoente valeria 2, sendo diferente de zero ainda, e engatilhando nova multiplicação da base na expressão já iniciada na iteração anterior, e passando para a nova ocorrência da chamada da função com  base igual, e expoente menos 1.
Na próxima iteração (terceira), tem-se agora o expoente 1, que ainda permanece diferente de zero, e por isto, nova multiplicação é organizada, tendo agora três operações “5 * ” encadeadas.
Novamente a função é chamada com a mesma base, mas agora, com mais uma redução do expoente, seu valor segue como zero para a nova iteração, e nela, como o expoente tem seu valor igual ao da comparação, realmente ocorre o retorno de um valor 1 para ser utilizado na expressão, e ao �m de uma quarta iteração, a expressão se encontra semelhante a “5 * 5 * 5 * 1”.
Realizando o cálculo normalmente, obtém-se um resultados 125 pelas três multiplicações com 5 e uma inicial pelo valor 1, e assim, com os sucessivos retornos, este resultado é obtido e a função encerra seu processamento.
Esse exemplo traz uma demonstração de como se pode aplicar recursividade em algoritmos, mas este mesmo exemplo pode ser escrito em forma de algoritmo imperativo sem a modularização em forma de função ou sem o uso da recursividade. Observe o exemplo da imagem 59.

a) FUNÇÃO POTENCIA (INTEIRO BASE, INTEIRO EXPOENTE) DE INTEIRO
b) FUNÇÃO TABUADA (INTEIRO VALOR1, INTEIRO VALOR2) DE INTEIRO
c) FUNÇÃO FATORIAL (INTEIRO N) DE INTEIRO

Essa pergunta também está no material:

ALGORITIMOS UNIMAR
143 pág.

Algoritmo e Programação Universidade de MaríliaUniversidade de Marília

💡 1 Resposta

User badge image

Ed Verified user icon

Parece que você está tentando inserir um texto extenso ou uma questão que requer uma resposta longa. Se precisar de ajuda com algo mais específico, por favor, reformule sua pergunta.

0
Dislike0

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

✏️ Responder

SetasNegritoItálicoSublinhadoTachadoCitaçãoCódigoLista numeradaLista com marcadoresSubscritoSobrescritoDiminuir recuoAumentar recuoCor da fonteCor de fundoAlinhamentoLimparInserir linkImagemFórmula

Para escrever sua resposta aqui, entre ou crie uma conta

User badge image

Outros materiais