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.
53<br />
Passo 2: 36 div 18 quociente = 2; resto = 0 MDC = 18<br />
Quando Knuth (1968, p. 2), simplifica o enunciado do problema e sistematiza os<br />
passos para sua solução, já é possível verificar uma mudança da linguagem natural para uma<br />
representação mista:<br />
Dados dois números inteiros positivos a e b, encontre o máximo divisor comum (ou seja, o<br />
maior inteiro positivo que divi<strong>de</strong> a e b).<br />
passo 1: [Cálculo do resto] Divida a por b. Seja r o resto;<br />
passo 2: [Verifique se o resto é nulo] Se r = 0, o algoritmo termina e o valor do MDC é b;<br />
passo 3: [Troca] Faça a = b, b = resto e volte para o passo 1.<br />
3. Representação em registro computacional (pseudocódigo):<br />
Apresentamos a seguir, duas versões <strong>de</strong> algoritmos computacionais para o algoritmo<br />
<strong>de</strong> Eucli<strong>de</strong>s, com o intuito <strong>de</strong> comparar o processo <strong>de</strong> conversão necessário a cada caso.<br />
a) Algoritmo <strong>de</strong> Eucli<strong>de</strong>s, utilizando o Processo Iterativo<br />
Função mdcDeEucli<strong>de</strong>s (divi<strong>de</strong>ndo: inteiro, divisor: inteiro): inteiro<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 />
b) 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