quarta-feira, 19 de novembro de 2014

[Shell Script] - Recursão

Olá pessoal, nesse post nós iremos aprender a utilizar recursão em Shell Script.

Você perceberá que é muito simples e semelhante às outras linguagens de programação. Para exemplificar, iremos construir uma função que calcula a potência de um número dado um número (base) e o expoente.

Exemplo: 2 elevado a 4 é 16 onde 2 é a base e 4 é o expoente.

Veja o código abaixo:


A linha 18 testa se o usuário passou dois argumentos, pois para calcular a potência de um número, o usuário deverá passar a base e o expoente.

A linha 24 testa se os parâmetros são números inteiros.

Esses testes servem para deixar o script mais consistente.

Na linha 26 acontece a chamada da função "pot". O "$1" é o primeiro parâmetro (base) e o "$2" é o segundo parâmetro (expoente).

Na linha 9 começa a função "pot". A linha 10 é o caso base da nossa recursão, ou seja, quando o expoente for 0, então retorna 1.

Lembrando que para calcular a potência de um número elevado a outro, basta multiplicar a base pela chamada da função mantendo a base e subtraindo 1 do expoente.

Na linha 13 temos a nossa chamada recursiva, perceba que "$2" foi subtraído em 1, porque o expoente deve ser diminuído na unidade.

Na linha 14 retornamos a multiplicação da base ("$1") por "$?". "$?" é o resultado da última chamada, essa variável guarda o valor das sucessivas chamadas recursivas.

Por último, na linha 27 utilizamos novamente o "$?" para imprimir o resultado do último comando. Mas qual foi o último comando? O último comando foi o comando da linha 26, ou seja, a chamada da função "pot".


Nenhum comentário: