Pular para o conteúdo principal

Questão de Programação — Linguagens de programação — FUNDATEC 2026

ProgramaçãoLinguagens de programação
Código
qg685266
Banca
FUNDATEC
Órgão
IFC-SC
Ano
2026
Nível
Superior
Cargo
Professor EBTT - Informática: Linguagens de Programação
Analise o seguinte trecho de código em PHP (PHP 7), que realiza uma consulta em um banco de dados utilizando a extensão mysqli:Imagem associada para resolução da questãoConsidere que a tabela equipamento possui os seguintes registros:Imagem associada para resolução da questãoQual será a saída exibida pela execução do script?
  1. AAlta produção
  2. BBaixa produção
  3. C3
  4. DAlpha
  5. EBeta
Revelar gabarito e comentário

GabaritoA — Alta produçã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”.

PHP com mysqli: consulta e saída

Gabarito: letra A. O script executa uma consulta na tabela equipamento, percorre os registros retornados e, para cada um, verifica se o valor da coluna status é igual a 'ativo'. Como a tabela possui apenas um registro com status = 'ativo' (o equipamento 'Alpha'), a variável $contador é incrementada uma única vez, resultando em 1. Em seguida, o script compara $contador com 2: como 1 não é maior que 2, o else é executado, exibindo a string 'Baixa produção'. Portanto, a saída correta é Baixa produção.

A questão envolve a compreensão de como o PHP, por meio da extensão mysqli, interage com um banco de dados MySQL. O trecho de código apresentado realiza uma consulta SQL simples, sem cláusula WHERE, o que significa que todos os registros da tabela equipamento são retornados. O script então itera sobre o resultado usando um laço while, que é uma estrutura de repetição fundamental em PHP para percorrer conjuntos de resultados de consultas. Dentro do laço, há uma estrutura condicional if que verifica se o valor da coluna status de cada registro é exatamente igual à string 'ativo'. Essa comparação é feita com o operador de igualdade ==, que compara valores após a conversão de tipos, mas como ambos os lados são strings, a comparação é direta.

A variável $contador é inicializada com o valor 0 antes do laço. A cada iteração em que a condição $registro['status'] == 'ativo' é verdadeira, o valor de $contador é incrementado em 1 usando o operador de incremento ++. Após o laço, o script verifica se $contador é maior que 2. Se fosse, exibiria 'Alta produção'; caso contrário, exibiria 'Baixa produção'. Como há apenas um registro ativo, $contador é 1, que não é maior que 2, então a saída é 'Baixa produção'.

É importante notar que a saída não é o nome do equipamento, nem a quantidade de registros, mas sim uma string que depende da contagem de registros ativos. A alternativa A é a única que corresponde a essa lógica. As demais alternativas apresentam valores que não são produzidos pelo script, como o nome de um equipamento específico ou a contagem total de registros.

A pegadinha desta questão está em não considerar que a condição if filtra apenas os registros com status igual a 'ativo'. O candidato pode contar todos os registros da tabela (3) e marcar a alternativa C, ou pode se confundir com os nomes dos equipamentos e marcar D ou E. A chave é entender que o script conta apenas os registros ativos e, com base nessa contagem, decide qual string exibir.

  1. 1Consulta sem WHERE
  2. 2Conta status = 'ativo'
  3. 3Contador = 1
  4. 41 > 2? Não
  5. 5Exibe 'Baixa produção'
LEVEL · soulevel.com.br

Alternativa A — ✅ Correta ⟵ GABARITO

A alternativa A está correta porque o script conta apenas os registros com status = 'ativo'. Na tabela, apenas o equipamento 'Alpha' possui status = 'ativo', então $contador é incrementado uma vez, resultando em 1. Como 1 não é maior que 2, o else é executado e a string 'Baixa produção' é exibida. A lógica do script é exatamente essa: se houvesse mais de 2 registros ativos, exibiria 'Alta produção'; caso contrário, 'Baixa produção'.

Alternativa B — ❌ Incorreta

A alternativa B está incorreta porque o script não exibe 'Alta produção'. Para que essa saída ocorresse, seria necessário que $contador fosse maior que 2, ou seja, que houvesse pelo menos 3 registros com status = 'ativo'. Como há apenas 1 registro ativo, a condição if ($contador > 2) é falsa, e o else é executado, exibindo 'Baixa produção'.

Alternativa C — ❌ Incorreta

A alternativa C está incorreta porque o script não exibe o número total de registros da tabela. A variável $contador é incrementada apenas para registros com status = 'ativo', não para todos os registros. Como há 3 registros no total, mas apenas 1 ativo, $contador é 1, não 3. O script não imprime o valor de $contador diretamente; ele usa esse valor apenas para decidir entre 'Alta produção' e 'Baixa produção'.

Alternativa D — ❌ Incorreta

A alternativa D está incorreta porque o script não exibe o nome do equipamento. O código não contém nenhuma instrução para imprimir o valor da coluna nome ou qualquer outra coluna. A saída é determinada exclusivamente pela contagem de registros ativos, resultando em uma string fixa ('Alta produção' ou 'Baixa produção'), não em dados da tabela.

Alternativa E — ❌ Incorreta

A alternativa E está incorreta pelo mesmo motivo da alternativa D: o script não exibe o nome de nenhum equipamento. A saída é uma string fixa baseada na contagem de registros ativos. Como há apenas um registro ativo, a saída é 'Baixa produção', não 'Beta'.

Gabarito: letra A

Link permanente: /questoes/qg685266