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. FUNÇÃO POTENCIA (INTEIRO BASE, INTEIRO EXPOENTE) DE INTEIRO DECLARE INTEIRO : I, RESULTADO; RESULTADO <- 1; PARA I DE 1 ATÉ EXPOENTE PASSO 1 FAÇA RESULTADO <- RESULTADO * BASE; FIMPARA; FIM;

Essa pergunta também está no material:

ALGORITIMOS UNIMAR
143 pág.

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

Ainda não temos respostas

Você sabe responder essa pergunta?

Crie uma conta e ajude outras pessoas compartilhando seu conhecimento!


✏️ 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