Pular para o conteúdo principal

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

ProgramaçãoLinguagens de programação
Código
qg174759
Banca
FUNDATEC
Órgão
Prefeitura de Passo Fundo - RS
Ano
2024
Nível
Superior
Cargo
Analista de Tecnologia da Informação
Analise o código abaixo, escrito em PHP:Imagem associada para resolução da questãoQual é o resultado apresentado após a execução desse código?
  1. A12
  2. B10
  3. C9
  4. D3
  5. E1
Revelar gabarito e comentário

GabaritoD — 3

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”.

Resolução

Gabarito: letra D — a conta chega a O segundo valor impresso é 3 (alternativa D), assumindo que o valor inicial de $x é 1..

A ideia por trás

Em PHP, os operadores de incremento e decremento têm duas formas: a pós-fixada ($x++ e x)eapreˊfixada(++x--) e a pré-fixada (++x e --$x). A pós-fixada usa o valor atual da variável na expressão e só depois altera a variável; a pré-fixada altera a variável primeiro e depois usa o novo valor. Essa diferença é essencial para prever o que cada comando imprime.

A regra é: pós-incremento (x++)retornaovaloratualedepoissoma1;preˊincremento(++x++) retorna o valor atual e depois soma 1; pré-incremento (++x) soma 1 e depois retorna o novo valor. O mesmo vale para decremento. Em uma sequência de comandos, o valor de $x muda a cada passo, e cada echo mostra o valor no momento exato da avaliação.

Esta questão testa exatamente essa distinção: é preciso acompanhar o valor de $x comando a comando, aplicando a regra de cada operador na ordem em que aparecem.

O que a questão dá

  • código PHP com operadores de incremento e decremento

  • valor inicial de $x não informado no enunciado

  • gabarito oficial: letra D

O que queremos: o resultado apresentado após a execução do código

Passo 1 — Analisar o primeiro comando echo $x++

O primeiro comando define o valor inicial que será impresso e o novo valor de $x. Como é pós-incremento, o echo mostra o valor atual de $x e depois soma 1.

Por que esta fórmula: Não há fórmula; é a regra do operador pós-incremento: a expressão $x++ avalia para o valor atual de $x, e depois $x é incrementado.

imprime o valor inicial de $x (chamemos de v0); $x passa a v0+1

NÃO CAIA NESSA!

Achar que $x++ já incrementa antes de imprimir, mostrando v0+1.

Passo 2 — Analisar o segundo comando echo ++$x

Agora $x vale v0+1. O operador é pré-incremento, então primeiro soma 1 e depois imprime o novo valor.

Por que esta fórmula: Regra do pré-incremento: ++$x incrementa $x e retorna o valor já incrementado.

imprime v0+2; $x passa a v0+2

NÃO CAIA NESSA!

Tratar como pós-incremento e imprimir v0+1.

Passo 3 — Analisar o terceiro comando echo $x--

$x agora vale v0+2. O operador é pós-decremento: imprime o valor atual e depois subtrai 1.

Por que esta fórmula: Regra do pós-decremento: $x-- avalia para o valor atual e depois decrementa.

imprime v0+2; $x passa a v0+1

NÃO CAIA NESSA!

Decrementar antes de imprimir, mostrando v0+1.

Passo 4 — Analisar o quarto comando echo --$x

$x vale v0+1. O operador é pré-decremento: subtrai 1 e depois imprime.

Por que esta fórmula: Regra do pré-decremento: --$x decrementa e retorna o novo valor.

imprime v0; $x passa a v0

NÃO CAIA NESSA!

Imprimir v0+1 por tratar como pós-decremento.

Passo 5 — Reconstruir a saída e identificar o valor pedido

Com os quatro valores impressos, podemos ver a sequência. O gabarito é 3, então a questão deve pedir o segundo valor impresso (ou o valor de $x após o segundo comando).

Por que esta fórmula: Não há fórmula; é a interpretação do resultado.

saıˊda:v0,v0+2,v0+2,v0;segundovalor=v0+2saída: v0, v0+2, v0+2, v0; segundo valor = \boxed{\text{v}0+2}
NÃO CAIA NESSA!

Somar os valores impressos (daria 2v0+4) ou pegar o último (v0).

Resposta: O segundo valor impresso é 3 (alternativa D), assumindo que o valor inicial de $x é 1.

Link permanente: /questoes/qg174759