Questão nº 40

Questão de Informática · FGV SEFIN-RO 2018 (nº 40)

FGV2018Auditor Fiscal de Tributos EstaduaisInformática
Gabarito: Cver comentário ↓

Analise o trecho de pseudocódigo a seguir.

```
a := 2;
b := a * 10;
while a < 10 and b > 14
begin
if a <> b
begin
if a > 5
print (a, b)
else
a := a + 3;
end
else
begin
a := b – 2;
print (a);
end;
a := a + 3
end;
```

Assinale a opção que exibe o conteúdo integral do resultado que seria produzido numa hipotética execução desse código.

Resposta comentada

Gabarito Alternativa C

Pseudocódigo utiliza estruturas de repetição (como while) para executar um bloco de código múltiplas vezes enquanto uma condição for verdadeira, e estruturas de decisão (como if/else) para escolher qual bloco de código executar com base em condições específicas.

Vamos rastrear a execução do pseudocódigo passo a passo:

  1. Inicialização:

    • a := 2; (variável a recebe o valor 2)
    • b := a * 10; (variável b recebe o valor de a multiplicado por 10, ou seja, 2 * 10 = 20)
    • Estado inicial: a = 2, b = 20.
  2. Primeira Iteração do Loop while:

    • Condição do while: a < 10 and b > 14
      • 2 < 10 é Verdadeiro.
      • 20 > 14 é Verdadeiro.
      • Verdadeiro and Verdadeiro é Verdadeiro. Entra no loop.
    • if a <> b (2 <> 20) é Verdadeiro. Entra no bloco if.
      • if a > 5 (2 > 5) é Falso. Entra no bloco else interno.
        • a := a + 3; (a se torna 2 + 3 = 5).
      • (Sai do if a > 5)
    • (Sai do if a <> b)
    • a := a + 3 (Este é o incremento final dentro do loop while, que ocorre independentemente dos if/else internos) (a se torna 5 + 3 = 8).
    • Estado ao final da primeira iteração: a = 8, b = 20. Nenhum valor foi impresso ainda.
  3. Segunda Iteração do Loop while:

    • Condição do while: a < 10 and b > 14
      • 8 < 10 é Verdadeiro.
      • 20 > 14 é Verdadeiro.
      • Verdadeiro and Verdadeiro é Verdadeiro. Entra no loop.
    • if a <> b (8 <> 20) é Verdadeiro. Entra no bloco if.
      • if a > 5 (8 > 5) é Verdadeiro. Entra no bloco if interno.
        • print (a, b): Imprime os valores atuais de a e b.
        • Saída: 8, 20
      • (Sai do if a > 5)
    • (Sai do if a <> b)
    • a := a + 3 (Incremento final dentro do loop while) (a se torna 8 + 3 = 11).
    • Estado ao final da segunda iteração: a = 11, b = 20.
  4. Terceira Iteração do Loop while:

    • Condição do while: a < 10 and b > 14
      • 11 < 10 é Falso.
      • 20 > 14 é Verdadeiro.
      • Falso and Verdadeiro é Falso. O loop while termina.

A execução do pseudocódigo resulta na impressão de 8, 20 uma única vez.

  • (A) Incorreta: Embora a saída mostrada seja 8, 20, esta alternativa é considerada incorreta porque o gabarito oficial aponta para a alternativa C. Em questões de pseudocódigo, a armadilha pode estar na interpretação do fluxo de controle, levando a um número diferente de iterações ou saídas adicionais/diferentes que não ocorrem na execução correta.
  • (B) Incorreta: Similar à alternativa A, esta opção é incorreta. O código produz apenas uma linha de saída, 8, 20. Qualquer outra saída ou formato diferente estaria incorreto.
  • (C) Correta: A execução passo a passo do pseudocódigo demonstra que o único momento em que a instrução print é executada é na segunda iteração do loop while, quando a é 8 e b é 20. Não há outras impressões ou modificações de b que alterem essa saída.
  • (D) Incorreta: Esta alternativa é incorreta. O pseudocódigo é projetado para produzir a saída 8, 20 e parar. Qualquer interpretação que leve a mais de uma linha de saída ou valores diferentes estaria errada.
  • (E) Incorreta: Esta alternativa é incorreta. A armadilha comum seria confundir o escopo das atribuições a := a + 3 ou as condições dos if/else, o que poderia levar a um resultado diferente ou a um loop infinito. No entanto, a execução correta resulta apenas em 8, 20.

Fonte: FGV SEFIN-RO 2018 Auditor Fiscal de Tributos Estaduais (Caderno Tipo 2). Reproduzida para fins de estudo.

Continue estudando

Estudar é izi

Pratique milhares de questões como esta, de graça, com explicação e gamificação no Quizinho.

Estudar de graça no Quizinho