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.

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>

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

Saved successfully!

Ooh no, something went wrong!