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.

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

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

Saved successfully!

Ooh no, something went wrong!