Questão de Algoritmos e Estrutura de Dados — Algoritmos — FCC 2023
Algoritmos e Estrutura de Dados›Algoritmos
Código
fc068622
Banca
FCC
Órgão
Copergás - PE
Ano
2023
Nível
Superior
Cargo
Analista Sistemas
Considere o seguinte algoritmo.var renda: realinício leia(renda) se (renda <= 1000) então exiba("Categoria 1") senão se (renda>1000 E renda<=2000) então exiba ("Categoria 2") senão exiba ("Categoria 3") fim_se fim_sefimUma alteração que pode ser feita para otimizar ou melhorar o algoritmo, sem alterar sua lógica, é
Atrocar E por OU na segunda estrutura de seleção.
Btrocar o segundo senão por senão se (renda<=2000).
Cretirar o senão exiba ("Categoria 3").
Dretirar o trecho E renda<=2000 da segunda estrutura de seleção.
Eretirar o trecho renda>1000 E da segunda estrutura de seleção.
Revelar gabarito e comentário▾
GabaritoE — retirar o trecho renda>1000 E da segunda estrutura de seleção.
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: Otimização de Estruturas Condicionais
Gabarito: letra E. A condição renda>1000 E na segunda estrutura de seleção é redundante, pois ao chegar nesse ponto já se sabe que renda > 1000 (a primeira condição renda <= 1000 foi falsa). Retirar essa subexpressão mantém a lógica inalterada e simplifica o código, caracterizando uma otimização válida.
A questão testa a capacidade de identificar redundâncias em condicionais encadeadas. O algoritmo original classifica a renda em três categorias:
Categoria 1: renda ≤ 1000
Categoria 2: 1000 < renda ≤ 2000
Categoria 3: renda > 2000
A chave está em perceber que, no segundo se (senão se), a condição renda>1000 já está implícita, pois só se chega ali se o primeiro se for falso. Portanto, basta testar renda<=2000.
PEGA ESSA DICA!
Em sequências de se-senão se, a condição de cada senão se pode ser simplificada removendo as partes já garantidas pelas condições anteriores. Isso reduz comparações e torna o código mais claro.
Alternativa
Descrição da alteração
Efeito na lógica
Correta?
A
Trocar E por OU na segunda condição
Toda entrada exibe "Categoria 2" (altera lógica)
❌
B
Trocar segundo senão por senão se (renda<=2000)
Renda >2000 não exibe nada (altera lógica)
❌
C
Retirar senão exiba ("Categoria 3")
Renda >2000 não exibe nada (altera lógica)
❌
D
Retirar E renda<=2000 da segunda condição
Toda renda >1000 vira "Categoria 2" (altera lógica)
❌
E
Retirar renda>1000 E da segunda condição
Mantém lógica inalterada (redundância removida)
✅
Alternativa A — ❌ Incorreta
Trocar E por OU na segunda condição produziria renda>1000 OU renda<=2000, que é sempre verdadeira para qualquer número real (todo número é >1000 ou ≤2000). Isso faria com que toda entrada exibisse "Categoria 2", alterando completamente a lógica do algoritmo.
Alternativa B — ❌ Incorreta
Trocar o segundo senão (que leva a "Categoria 3") por senão se (renda<=2000) quebra a estrutura. Se essa nova condição for falsa (o que ocorre para renda >2000), não há ação definida — o programa não exibirá nada. Além disso, a redundância permanece, não sendo uma otimização adequada.
Alternativa C — ❌ Incorreta
Remover o senão exiba ("Categoria 3") faz com que, para renda >2000, nada seja exibido. O algoritmo deixa de cobrir essa faixa, alterando a lógica.
Alternativa D — ❌ Incorreta
Retirar E renda<=2000 da segunda condição deixa apenas renda>1000. Isso faria com que toda renda > 1000 (inclusive acima de 2000) fosse classificada como "Categoria 2", eliminando a Categoria 3.
Alternativa E — ✅ Correta ⟵ GABARITO
Retirar renda>1000 E torna a condição simplesmente renda<=2000. Como já se sabe que renda > 1000 (pela falha do primeiro se), essa condição é equivalente à original e mais eficiente. A lógica permanece exatamente a mesma.