Questão FC373196
Considere o algoritmo em pseudocódigo abaixo. Var ano, anobase: inteiro Início anobase ←2018 enquanto (verdadeiro) faça imprima("Digite um ano com 4 dígitos (maior que ", anobase,
Algoritmos e Lógica de Programação
FCC · 2018
Considere o algoritmo em pseudocódigo abaixo.
Var ano, anobase: inteiro
Início
anobase ←2018
enquanto (verdadeiro) faça
imprima("Digite um ano com 4 dígitos (maior que ", anobase, " finaliza): ")
leia(ano)
se (ano > anobase)
então vá_para ENCERRA
fim_se
se I
então imprima ("O ano pertence ao século XXI ")
senão se II
então imprima("O ano tem 4 digitos mas não pertence ao século XXI")
senão se III
então imprima("O ano não tem 4 dígitos e/ou é negativo")
fim_se
fim_se
fim_se fim_enquanto
ENCERRA: imprima("Fim do programa")
Fim
Analisando a lógica do programa acima, é correto afirmar que
- ao ser digitado 2018 para o ano, o programa finalizará.
- a lacuna I deve ser preenchida com ano >= 2000 e ano < anobase
- há erro de lógica, pois o comando enquanto não avalia nenhuma condição.
- a lacuna III deve ser preenchida com ano <= 0
- a lacuna II deve ser preenchida com ano >= 1000 e ano <= 2000
Mostrar resposta e comentário
Gabarito
Errado
Comentário do professor
A lacuna II deve ser preenchida com ano >= 1000 e ano <= 2000 porque essa condição seleciona exatamente os anos que têm 4 dígitos e, ao mesmo tempo, não pertencem ao século XXI.
Em termos matemáticos: II corresponde a \(1000 \le ano \le 2000\). Qualquer valor dentro desse intervalo tem quatro algarismos (1000–9999) e, ao restringir o teto a 2000, excluímos os anos do século XXI (que começam em 2001).
Assim, quando o programa atinge essa verificação, a mensagem correta é imprimir: "O ano tem 4 dígitos mas não pertence ao século XXI", pois o teste garante simultaneamente as duas propriedades desejadas.
As demais possibilidades (anos com mais/menos dígitos ou negativos) ficam para o ramo seguinte, mantendo a lógica clara e mutuamente exclusiva entre os casos.
Conteúdo do catálogo FC Concursos · Atualizado em