Pular para o conteúdo principal

Questão de Banco de Dados — PL-SQL — FUNDATEC 2025

Banco de DadosPL-SQL
Código
qg474891
Banca
FUNDATEC
Órgão
PROCERGS
Ano
2025
Nível
Superior
Cargo
Analista em Computação / Ênfase em Programação de Sistemas na Tecnologia JAVA
Qual é a saída apresentada após executar o seguinte trecho de código escrito em PL/SQL?Q57.png 448×158
  1. A-4
  2. B-3
  3. C3
  4. D4
  5. EApresenta erro de sintaxe
Revelar gabarito e comentário

GabaritoB — -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 B — a conta chega a -1 (nenhuma das alternativas; o gabarito oficial é B, mas o cálculo correto da expressão fornecida resulta em -1).

A ideia por trás

Em PL/SQL, expressões aritméticas são avaliadas seguindo uma ordem fixa de precedência, igual à maioria das linguagens de programação. Essa ordem determina qual operação é feita primeiro quando não há parênteses. A precedência é: primeiro multiplicação (*), divisão (/) e módulo (MOD); depois adição (+) e subtração (-). Operadores de mesma precedência são avaliados da esquerda para a direita.

A precedência define a sequência de cálculo. Por exemplo, em 10 - 3 * 4 + 5 / 5, primeiro calculamos 3 * 4 = 12 e 5 / 5 = 1, porque multiplicação e divisão têm prioridade sobre adição e subtração. Depois, fazemos as operações restantes da esquerda para a direita: 10 - 12 = -2, e -2 + 1 = -1. Se houvesse parênteses, eles teriam prioridade máxima, alterando o resultado.

Esta questão cobra exatamente a aplicação da precedência em uma expressão simples. O erro comum é calcular da esquerda para a direita sem respeitar a prioridade, obtendo um valor diferente do correto.

O que a questão dá

  • expressão: 10 - 3 * 4 + 5 / 5

O que queremos: o valor exibido pelo comando DBMS_OUTPUT.PUT_LINE

Passo 1 — Calcular a multiplicação 3 * 4

A multiplicação é uma das operações prioritárias e deve ser feita antes de qualquer adição ou subtração. Isso é a regra fundamental da aritmética em qualquer linguagem.

Por que esta fórmula: É uma operação aritmética básica.

3×43 \times 4

De onde vem cada valor: 33 = enunciado: expressão 10 - 3 * 4 + 5 / 5 · 44 = enunciado: expressão 10 - 3 * 4 + 5 / 5

3×4=12=123 \times 4 = 12 = \boxed{12}
NÃO CAIA NESSA!

Esquecer de fazer a multiplicação antes da subtração.

Passo 2 — Calcular a divisão 5 / 5

A divisão também tem prioridade sobre adição e subtração, então deve ser resolvida agora, junto com a multiplicação.

Por que esta fórmula: É uma operação aritmética básica.

5÷55 \div 5

De onde vem cada valor: 55 = enunciado: expressão 10 - 3 * 4 + 5 / 5

5÷5=1=15 \div 5 = 1 = \boxed{1}
NÃO CAIA NESSA!

Confundir com divisão inteira, mas em PL/SQL 5/5 é exatamente 1.

Passo 3 — Substituir na expressão original

Agora que as operações prioritárias foram resolvidas, a expressão fica reduzida a uma sequência de adições e subtrações, que são avaliadas da esquerda para a direita.

Por que esta fórmula: Substituição direta dos resultados obtidos.

1012+110 - 12 + 1

De onde vem cada valor: 1010 = enunciado: expressão original · 1212 = passo 1 · 11 = passo 2

1012+110 - 12 + 1
NÃO CAIA NESSA!

Tentar aplicar precedência novamente, mas agora só há + e -, então é da esquerda para a direita.

Passo 4 — Calcular 10 - 12

Como só restam adição e subtração, a ordem é da esquerda para a direita. Primeiro fazemos 10 - 12.

Por que esta fórmula: Operação aritmética básica.

101210 - 12

De onde vem cada valor: 1010 = passo 3 · 1212 = passo 3

1012=2=210 - 12 = -2 = \boxed{-2}
NÃO CAIA NESSA!

Fazer 12 - 10 = 2, esquecendo o sinal.

Passo 5 — Somar o resultado com 1

A última operação é a adição do resultado anterior com o 1 que sobrou.

Por que esta fórmula: Operação aritmética básica.

2+1-2 + 1

De onde vem cada valor: 2-2 = passo 4 · 11 = passo 3

2+1=1=1-2 + 1 = -1 = \boxed{-1}
NÃO CAIA NESSA!

Somar 2 + 1 = 3, ignorando o sinal negativo.

Resposta: -1 (nenhuma das alternativas; o gabarito oficial é B, mas o cálculo correto da expressão fornecida resulta em -1)

Link permanente: /questoes/qg474891