Questão 05 ( Cálculo Numérico )
Uma estrutura de repetição sempre precisa de um critério de parada para não ficar repetindo infinitamente. Observe o código abaixo e assinale a afirmativa correta.
(Obs: o asterisco em uma expressão é o símbolo de multiplicação)
x <- 2
enquanto (1 = 1) faça
x <- x * 2
escreva("O valor de x é:", x)
se (x = 12) ou (x não é divisível por 2) então
interrompa
fim-se
fim-enquanto
Alternativas
Alternativa 1:
O looping será executado, no máximo, 54 vezes.
Alternativa 2:
O looping será executado algumas vezes, até chegar em 12, então será terminado.
Alternativa 3:
Esse código gera um looping infinito, porque nenhuma das condições de parada é satisfeita.
Alternativa 4:
O looping será executado algumas vezes, até chegar em um número ímpar, então será terminado.
Alternativa 5:
A única linha executada é a primeira. Como a condição "1 = 1" é verdadeira, o código em repetição não será executado.
Soluções para a tarefa
A alternativa correta é a Alternativa 2. É preciso compreender que na maioria das linguagens de programação, o código é lido e interpretado pelo compilador linha a linha, ou seja, ao chegar no fim do programa, ou ao se deparar com um looping, o código será lido novamente linha a linha.
No caso dos loopings, o código pode ser lido e relido várias vezes dentro do bloco do looping, é o que acontece nesse caso até que o valor de x=12 apareça e então o comando de interromper é obedecido.
Resposta:
Alternativa 3
Explicação:
Como 1 sempre vai ser igual a 1 no primeiro looping do enquanto e como o valor se x sempre vai ser multiplicado por 2 e nunca vai ser igual a 12 ou NÂO ser divisível por 2 o looping será infinito. Sendo os valores de X iguais a 2, 4, 8, 16, 32, 64,128,256 etc....