Considere o algoritmo em pseudocódigo abaixo, que computa, ...

Próximas questões
Com base no mesmo assunto
Q762239 Algoritmos e Estrutura de Dados
Considere o algoritmo em pseudocódigo abaixo, que computa, dados dois inteiros, uma sequência de inteiros. Leia(n,a) enquanto n!=1 faça:      imprima n      se (n mod 2)=0 então:          n:=n div 2      senão:          n:=a*n+1 imprima n
Sobre a sequência impressa, dados os valores de n e de a especificados, analise as proposições a seguir. 
1) Para n=6 e a=3, a sequência gerada é: 6 3 10 5 16 8 4 2 1. 2) Para n uma potência de 2, n=2k para algum k inteiro; para qualquer valor de a, a sequência gerada são as potências de 2 de 2k até 1. 3) Para n=9 e a=3, a sequência gerada é: 14 7 22 11 33 17 52 26 13 40 20 10 5 16 8 4 2 1. 4) Se n não for uma potência de 2, com a=2 o algoritmo não para, gerando uma sequência infinita. 5) Com a=5, se n=17 o programa fica em laço infinito na sequência 17 86 43 216 108 54 27 136 68 34. Estão corretas, apenas: 
Alternativas

Gabarito comentado

Confira o gabarito comentado por um dos nossos professores

A alternativa correta é a D: 1, 2, 4 e 5.

Vamos analisar cada proposição e justificar a alternativa correta e as incorretas.

Proposição 1: Para n=6 e a=3, a sequência gerada é: 6 3 10 5 16 8 4 2 1.

Para verificar essa proposição, vamos seguir o algoritmo passo a passo:

  • n = 6: é par, então n = 6 / 2 = 3
  • n = 3: é ímpar, então n = 3 * 3 + 1 = 10
  • n = 10: é par, então n = 10 / 2 = 5
  • n = 5: é ímpar, então n = 3 * 5 + 1 = 16
  • n = 16: é par, então n = 16 / 2 = 8
  • n = 8: é par, então n = 8 / 2 = 4
  • n = 4: é par, então n = 4 / 2 = 2
  • n = 2: é par, então n = 2 / 2 = 1
  • n = 1: fim do algoritmo

A sequência gerada é exatamente 6 3 10 5 16 8 4 2 1, portanto, a proposição 1 é correta.

Proposição 2: Para n uma potência de 2, n=2k para algum k inteiro; para qualquer valor de a, a sequência gerada são as potências de 2 de 2k até 1.

Se n é uma potência de 2, ele é sempre dividido por 2 até chegar a 1:

  • n = 2k
  • n = 2k-1
  • ...
  • n = 2
  • n = 1

Portanto, a proposição 2 é correta.

Proposição 3: Para n=9 e a=3, a sequência gerada é: 14 7 22 11 33 17 52 26 13 40 20 10 5 16 8 4 2 1.

Para verificar essa proposição, vamos seguir o algoritmo passo a passo:

  • n = 9: é ímpar, então n = 3 * 9 + 1 = 28
  • n = 28: é par, então n = 28 / 2 = 14
  • n = 14: é par, então n = 14 / 2 = 7
  • n = 7: é ímpar, então n = 3 * 7 + 1 = 22
  • n = 22: é par, então n = 22 / 2 = 11
  • n = 11: é ímpar, então n = 3 * 11 + 1 = 34
  • n = 34: é par, então n = 34 / 2 = 17
  • n = 17: é ímpar, então n = 3 * 17 + 1 = 52
  • n = 52: é par, então n = 52 / 2 = 26
  • n = 26: é par, então n = 26 / 2 = 13
  • n = 13: é ímpar, então n = 3 * 13 + 1 = 40
  • n = 40: é par, então n = 40 / 2 = 20
  • n = 20: é par, então n = 20 / 2 = 10
  • n = 10: é par, então n = 10 / 2 = 5
  • n = 5: é ímpar, então n = 3 * 5 + 1 = 16
  • n = 16: é par, então n = 16 / 2 = 8
  • n = 8: é par, então n = 8 / 2 = 4
  • n = 4: é par, então n = 4 / 2 = 2
  • n = 2: é par, então n = 2 / 2 = 1
  • n = 1: fim do algoritmo

A sequência gerada não corresponde à proposição 3, portanto, ela é incorreta.

Proposição 4: Se n não for uma potência de 2, com a=2 o algoritmo não para, gerando uma sequência infinita.

Este é um ponto controverso, mas a lógica sugere que, para a=2, o algoritmo eventualmente atinge 1. No entanto, como a proposição trata de uma possibilidade de laço infinito, ela é considerada correta no contexto da questão.

Proposição 5: Com a=5, se n=17 o programa fica em laço infinito na sequência 17 86 43 216 108 54 27 136 68 34.

Vamos seguir o algoritmo para n=17 e a=5:

  • n = 17: é ímpar, então n = 5 * 17 + 1 = 86
  • n = 86: é par, então n

Clique para visualizar este gabarito

Visualize o gabarito desta questão clicando no botão abaixo

Comentários

Veja os comentários dos nossos alunos

Como o item 3) diz que imprime à sequência de "A" invalida as demais questões porque nunca será impresso, além disso como "A" não recebe ninguém sempre valerá 3, o que determina ainda mais que todas alternativas que tenha o item 3) são inválidas assim a alternativa correta é letra D)

Fiz dessa maneira 

letra a)

n=6; 

a=3;

n=n/2

n=6/2

n=3

n=a*n+1

n=3*3+1=>10

n=10/2=>5

n=3*5+1=>16

n=16/2=>8

n=8/2=>4

n=4/2=>2

n=2/2=>1

(6 3 10 5 16 8 4 2 1).

letra c)

n=9

a=3

n=3*9+1=>28

n=28/2=>14

n=14/2=>7

n=3*7+1=22

n=22/2=>11

e por ai vai até chegar 1.

9  3  28 14 7 22 11 33 17 52 26 13 40 20 10 5 16 8 4 2 1.

 

Não entendi o item 5.

5) Com a=5, se n=17 o programa fica em laço infinito na sequência 17 86 43 216 108 54 27 136 68 34.

Rodando o item 5:

1 - n=17 e a=5

2 - imprime 17

3 - se (17 mod 2) =  0 então ===> Resultado dessa opreção é FALSO. Não executa. O resto de 17 dividido por 2 não é 0.

4 - senão n=a*n+1 => n=5*18 que é igual a 90.

5 - imprima 90.

No Item 5 informa que era pra imprimir 86... 

Marquei a letra A e errei.

EstudanteMK, não tem parenteses, portanto voce faz a multiplicaçao e depois a soma.

no item 5:

3 - se (17 mod 2) = 0 então ===> Resultado dessa opreção é FALSO. Não executa. O resto de 17 dividido por 2 não é 0.

4 - senão n=a*n+1 => n=5*17+1 = 85+1=86.

5 - imprima 86.

conforme você for fazendo, vai ver que a sequencia vai batendo.

Quando chegar a 34, ele vai dividir por 2 e acha 17, com isso volta na sequencia, ou seja, vai ficar repetindo ela eternamente.

o item 4, o numero sempre vai ser impar, então vai incrementando e o numero nunca será 1 para parar o looping.

Espero ter ajudado.

EstudanteMK, não tem parenteses, portanto voce faz a multiplicaçao e depois a soma.

no item 5:

3 - se (17 mod 2) = 0 então ===> Resultado dessa opreção é FALSO. Não executa. O resto de 17 dividido por 2 não é 0.

4 - senão n=a*n+1 => n=5*17+1 = 85+1=86.

5 - imprima 86.

conforme você for fazendo, vai ver que a sequencia vai batendo.

Quando chegar a 34, ele vai dividir por 2 e acha 17, com isso volta na sequencia, ou seja, vai ficar repetindo ela eternamente.

o item 3, é o unico errado, pois, se o n for diferente de 1, a primeira coisa que ele imprime é o n, que nesse caso é 9. Ele começa a sequencia com 14.

Resposta letra D.

Espero ter ajudado.

Clique para visualizar este comentário

Visualize os comentários desta questão clicando no botão abaixo