Para resolver esse exercício tem que tomar cuidado porque o
examinador chama a função da seguinte forma função(y, x), ou seja, ele inverte
a ordem.
Lembre-se de que o comando MOD retorna o RESTO da DIVISÃO INTEIRA.
Fazendo o teste de
mesa temos:
x
|
y
|
|
928, 100, 28, 16, 12, 4
|
100, 28, 16, 12, 4, 0
|
|
1) Função(x,y:integer)
|
||
2) Y=0?
|
100=0?, 28 =0?, 16=0? 12 =0? 4=0? 0=0?
|
|
2.1) Função = x
|
4
|
|
3) X<y
|
||
3.1) função(y,x)
|
||
4) x>y
|
||
4.1) função(y,x mod y)
|
100, 28, 16, 12, 4
|
28, 16, 12, 4, 0
|
Pra resolver a questão acima precisa saber como calcula o
MDC(máximo divisor comum) entre 2 números, já que o examinador não informou
como faz o cálculo do MDC, esse conceito foi cobrado como se o candidato já
soubesse como calcular o MDC(FODA!!! Hehe). Relembrando como se
calcula o MDC(lembre-se que MDC é diferente de MMC):
- CÁLCULO DO M.D.C. PELO PROCESSO DAS DIVISÕES SUCESSIVAS
Nesse processo efetuamos várias divisões até chegar a uma divisão exata. O
divisor desta divisão é o m.d.c. Acompanhe o cálculo do m.d.c.(48,30).
Regra prática:
1º) dividimos o número maior pelo número menor;
48 / 30 = 1 (com resto 18)
48 / 30 = 1 (com resto 18)
2º) dividimos o divisor 30, que é divisor da divisão anterior,
por 18, que é o resto da divisão anterior, e assim sucessivamente;
30 / 18 = 1 (com resto 12)
30 / 18 = 1 (com resto 12)
18 / 12
= 1 (com resto 6)
12 / 6 = 2 (com resto zero -
divisão exata)
3º) O divisor da divisão exata é 6. Então m.d.c.(48,30)
= 6.
Realizando o teste de mesa com os números do exemplo
acima (48,30) temos:
a
|
b
|
|
Function MDC(A, B)
|
30, 18, 12, 6
|
48, 30, 18, 12
|
1) B mod A = 0?
|
18, 12, 6, 0
|
|
1.1) result = A
|
6
|
|
2) result = MDC(B, A mod B)
|
18(repare que o 18 é o valor
do resto de B mod A, ou seja, 48 mod 30 (não é o 48, CUIDADO!!!), 12, 6
|
30(repare que o 30 mod 48 dá
30, ou seja, sempre o menor valor quando se tenta calcular o resto entre um
número menor que o outro),18, 12
|
resolução:
1 + aleam(5,4) = 1+5=6
aleam(5,4)
5=4 ou 4=0
aleam(4,4) +
aleam(4,3)
1+ aleam(4,3) =
1+4=5
aleam(4,3)
4=3
ou 3=0
aleam(3,3)
+ aleam(3,2)
1
+ aleam(3,2)= 1+3=4
aleam(3,2)
3=2
ou 2=0
aleam(2,2)
+ aleam(2,1)
1
+ aleam(2,1) = 1 +2= 3
aleam(2,1)
2=1
ou 1=0
aleam(1,1)
+ aleam(1,0)
1+
aleam(1,0) = 1+1
aleam(1,0)
1=0
ou 0=0
1
No comments:
Post a Comment