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.
55<br />
1. inicio<br />
valor da variável divisor correspon<strong>de</strong> ao MDC procurado. Observando o Quadro 2,<br />
assumindo a = divi<strong>de</strong>ndo e b = divisor, vemos que os passos 1 e 2 são representados pela<br />
condição da estrutura <strong>de</strong> repetição, e pelo comando <strong>de</strong> atribuição, da linha 4, em que a<br />
variável c recebe o resto atualizado entre divi<strong>de</strong>ndo e divisor, já o passo 3 correspon<strong>de</strong> as<br />
linhas 5 e 6, <strong>de</strong>ntro da estrutura <strong>de</strong> repetição.<br />
Neste caso percebemos as unida<strong>de</strong>s significantes no registro <strong>de</strong> partida e <strong>de</strong> chegada<br />
não são congruentes.<br />
O Quadro 3 apresenta a representação intermediária do Método <strong>de</strong> Eucli<strong>de</strong>s e a versão<br />
recursiva do algoritmo.<br />
Algoritmo <strong>de</strong> Eucli<strong>de</strong>s Recursivo<br />
2. se divisor = 0 entao<br />
3. mdcDeEucli<strong>de</strong>s ← divi<strong>de</strong>ndo<br />
4. senao mdcDeEucli<strong>de</strong>s ←<br />
5. mdcDeEucli<strong>de</strong>s(divisor, resto (divi<strong>de</strong>ndo, divisor))<br />
6. fim-se<br />
7. fim-funcao.<br />
Representação Intermediária do<br />
Método <strong>de</strong> Eucli<strong>de</strong>s<br />
passo 1: [Cálculo do resto] Divida<br />
divi<strong>de</strong>ndo por divisor. Seja r o resto;<br />
passo 2: [Verifique se o resto é nulo]<br />
Se r = 0, o algoritmo termina e o<br />
valor do MDC é divisor;<br />
passo 3: [Troca] Faça a = b, b =<br />
resto e volte para o passo 1.<br />
Quadro 3 - Comparação entre as unida<strong>de</strong>s significantes no registro <strong>de</strong> partida e <strong>de</strong><br />
chegada, para a versão Recursiva.<br />
A primeira vez que a função é chamada, divi<strong>de</strong>ndo = a e divisor = b, o que<br />
correspon<strong>de</strong> ao passo 1, consi<strong>de</strong>rando que o divisor seja > 0, a função se “auto” chama, o que<br />
caracteriza a recursão, só que <strong>de</strong>ssa vez, com o divisor no lugar do divi<strong>de</strong>ndo e com o resto da<br />
divisão entre divi<strong>de</strong>ndo e divisor no lugar do divisor, o que correspon<strong>de</strong> ao passo 2, até que o<br />
resto entre divi<strong>de</strong>ndo e divisor seja igual a zero, o que correspon<strong>de</strong> ao passo 3. Então, as<br />
chamadas vão sendo substituídas pelos resultados intermediários até chegar ao mdc final.<br />
Comparando o Quadro 2 com o Quadro 3, observamos que as unida<strong>de</strong>s significantes<br />
no registro <strong>de</strong> partida, a saber, a <strong>de</strong>scrição dos passos para o cálculo do mdc, e as unida<strong>de</strong>s<br />
significantes no registro <strong>de</strong> chegada, respectivamente, os algoritmos iterativo e recursivo,<br />
estão mais próximas no algoritmo recursivo, pois esta versão é praticamente a sequência <strong>de</strong>