Pular para o conteúdo principal

Questão de Algoritmos e Estrutura de Dados — Algoritmos — FCC 2023

Algoritmos e Estrutura de DadosAlgoritmos
Código
fc068621
Banca
FCC
Órgão
Copergás - PE
Ano
2023
Nível
Superior
Cargo
Analista Sistemas
Considere o algoritmo a seguir:var x, y, z: inteiroiníciopara x ← 1 até 10 passo 1 façapara y ← 1 até 10 passo 1 façaz ← x * y;exiba(z)fim_paraexiba(y)fim_parafimAo ser executado em condições ideais, o penúltimo valor exibido da variável z e o valor exibido da variável y serão, respectivamente,
  1. A100 e 10.
  2. B100 e 11.
  3. C80 e 10.
  4. D90 e 11.
  5. E90 e 10.
Revelar gabarito e comentário

GabaritoD — 90 e 11.

Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.

Algoritmos: Laços aninhados e variáveis de controle

Gabarito: letra D (90 e 11). O penúltimo valor exibido de z é 90 (x=10, y=9) e o valor exibido de y é 11, pois após o término do laço interno y assume o valor 11 (condição de saída).

A questão testa o comportamento de laços para (for) em pseudocódigo, especificamente o valor final da variável de controle após a última iteração. No algoritmo apresentado:

para x ← 1 até 10 passo 1 faça
    para y ← 1 até 10 passo 1 faça
        z ← x * y;
        exiba(z)
    fim_para
    exiba(y)
fim_para

O laço interno executa 10 vezes para cada x, exibindo z a cada iteração. Ao final do laço interno, y é incrementado para 11 (valor que excede o limite superior) e então é exibido. Esse processo se repete para x de 1 a 10.

Determinação do penúltimo z

São exibidos 100 valores de z (10×10). A ordem de exibição é crescente em y para cada x. O último z exibido é x=10, y=10 → z=100. O penúltimo z (99º) é x=10, y=9 → z=90. Confira a sequência do último bloco (x=10):

  • y=1: exibe 10

  • y=2: exibe 20

  • ...

  • y=9: exibe 90 ← penúltimo z geral

  • y=10: exibe 100 ← último z

Valor exibido de y

Após cada laço interno, y é exibido com o valor que causa a saída do laço, ou seja, 11. O último y exibido (após x=10) também é 11.


Alternativa A — ❌ Incorreta

100 e 10. O penúltimo z não é 100 (é o último), e o y exibido é 11, não 10.

Alternativa B — ❌ Incorreta

100 e 11. O penúltimo z está errado (é 90).

Alternativa C — ❌ Incorreta

80 e 10. 80 seria x=10, y=8 (terceiro anterior), e y=10 é o limite interno antes do incremento final, mas y exibido é 11.

Alternativa D — ✅ Correta ⟵ GABARITO

90 e 11. Penúltimo z = 90 (x=10, y=9) e y = 11 após o laço.

Alternativa E — ❌ Incorreta

90 e 10. O penúltimo z está correto, mas o y exibido é 11.

NÃO CAIA NESSA!

A banca explora a confusão entre o último valor assumido pela variável de controle dentro do laço (10) e o valor após o término (11). Muitos candidatos pensam que y termina em 10, mas na verdade o laço para incrementa a variável até ultrapassar o limite, deixando-a em 11. Memorize: ao final de um for (y=1; y<=10; y++), y vale 11.

Gabarito: letra D.

Link permanente: /questoes/fc068621