07.02.2015 Views

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 ...

SHOW MORE
SHOW LESS

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.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!