Mariangela de Oliveira Gomes Setti - Programa de Pós-Graduação ...
Mariangela de Oliveira Gomes Setti - Programa de Pós-Graduação ...
Mariangela de Oliveira Gomes Setti - Programa de Pós-Graduação ...
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
26<br />
inicio<br />
inteiro c;<br />
enquanto resto (divi<strong>de</strong>ndo, divisor) ≠ 0 //calcula o resto da divisão <strong>de</strong> divi<strong>de</strong>ndo por divisor<br />
c ← resto (divi<strong>de</strong>ndo, divisor);<br />
divi<strong>de</strong>ndo ← divisor;<br />
divisor ← c;<br />
fim-enquanto<br />
retornar divisor<br />
fim-funcao.<br />
Entretanto, há uma maneira mais concisa para calcular o MDC, utilizando o<br />
processo Recursivo, como mostra o exemplo 2.<br />
Exemplo 2 - Algoritmo <strong>de</strong> Eucli<strong>de</strong>s utilizando o Processo Recursivo<br />
Função mdcDeEucli<strong>de</strong>s (divi<strong>de</strong>ndo: inteiro, divisor: inteiro): inteiro<br />
// calcula o mdc pelo método <strong>de</strong> Eucli<strong>de</strong>s usando recursivida<strong>de</strong><br />
inicio<br />
se divisor = 0 entao //Se r = 0, o algoritmo termina e o valor do MDC é b<br />
mdcDeEucli<strong>de</strong>s ← divi<strong>de</strong>ndo<br />
senao mdcDeEucli<strong>de</strong>s ← mdcDeEucli<strong>de</strong>s (divisor, resto (divi<strong>de</strong>ndo, divisor))<br />
fim-se<br />
//a operação resto (divi<strong>de</strong>ndo, divisor), resulta no resto da divisão <strong>de</strong> divi<strong>de</strong>ndo por divisor<br />
fim-funcao.<br />
Observa-se que o algoritmo recursivo está mais próximo do algoritmo matemático, ele<br />
é praticamente a própria <strong>de</strong>finição do MDC, ao passo que para transformar este mesmo<br />
algoritmo na versão iterativa, é necessário discretizar os processos <strong>de</strong> repetição e condicionais<br />
que estão implícitos no mo<strong>de</strong>lo matemático.<br />
Resumindo, as idéias <strong>de</strong> Knuth (1968), para que um método, um roteiro, ou um<br />
procedimento seja consi<strong>de</strong>rado um algoritmo, ele <strong>de</strong>ve possuir clareza, precisão, um número<br />
finito <strong>de</strong> instruções e <strong>de</strong>ve ter a sua execução terminada para quaisquer valores <strong>de</strong> dados.