Pular para o conteúdo principal

Questão de Banco de Dados — Banco de Dados Transacionais (OLTP) — FUNDATEC 2024

Banco de DadosBanco de Dados Transacionais (OLTP)
Código
qa630761
Banca
FUNDATEC
Órgão
Pref Cruz Alta
Ano
2024
Cargo
Tec ( )

Analise o algoritmo abaixo:

 

algoritmo "Caixa_Registradora" 

var 

preco, pagamentoRecebido, total, troco: real 

quantidadeItens, i: inteiro

 

inicio 

// Inicialização das variáveis 

total <- 0 

pagamentoRecebido <- 0

troco <- 0

 

// Entrada de dados

escreva("Digite a quantidade de itens a serem registrados: ")

leia(quantidadeItens)

 

// Loop para ler o preço de cada item 

para i de 1 ate quantidadeItens faca 

escreva("Digite o preço do item ", i, ": ")

leia(preco) total <- 

total + preco 

fimpara 

 

// Exibir o total a ser pago 

escreva("Total a ser pago: R$", total:0:2) 

 

// Entrada do pagamento recebido 

escreva("Digite o pagamento recebido: R$") 

leia(pagamentoRecebido) 

 

// Calcular o troco 

troco <- pagamentoRecebido - total 

 

// Exibir o troco 

se troco >= 0 entao 

escreva("Troco: R$", troco:0:2) 

senao 

escreva("Dinheiro insuficiente.")

fimse 

fimalgoritmo

 

O operador que utiliza a caixa registradora contendo o algoritmo acima registrará os itens listados abaixo, e receberá como pagamento o valor de R$ 200. 

  1.  1 pacote de arroz 5 Kg custando R$ 31,55 a unidade. 
  2.  1 pacote de arroz 1 Kg custando R$ 8,19 a unidade.
  3.  2 pacotes de feijão 1 Kg custando R$ 7,39 a unidade. 

Os valores das variáveis “i”, “preco”, “total” e “troco”, ao final da execução do programa, são, respectivamente: 

  1. A0 – 7 – 54 – 145.
  2. BNull – 14,66 – R$ 54,50 – R$ 145,48.
  3. C3 – 14 – 54,52 – 145,50.
  4. D4 – 31,55 – R$ 200,00 – R$ 145,48.
  5. E4 – 7,39 – 54,52 – 145,48.
Revelar gabarito e comentário

GabaritoE — 4 – 7,39 – 54,52 – 145,48.

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

Rastreamento de variáveis em algoritmo de caixa registradora

Gabarito: letra E. Ao final da execução, os valores são i = 4, preco = 7,39, total = 54,52 e troco = 145,48. O laço para executa 4 iterações (uma para cada item), a variável preco guarda o último valor lido (R$ 7,39), total acumula a soma de todos os preços (R$ 54,52) e troco é a diferença entre o pagamento de R$ 200,00 e o total (R$ 145,48).

O algoritmo simula o funcionamento de uma caixa registradora: lê a quantidade de itens, acumula o preço de cada um na variável total, recebe o valor pago e calcula o troco. A lógica é direta, mas a questão exige atenção ao comportamento das variáveis ao longo do laço e ao final dele. Vamos entender cada parte.

Primeiro, a entrada de dados: o usuário informa quantidadeItens = 4 (1 arroz 5kg + 1 arroz 1kg + 2 feijões). O laço para i de 1 ate quantidadeItens executa o bloco interno 4 vezes, com i assumindo os valores 1, 2, 3 e 4. A cada iteração, o preço lido é somado ao total. Acompanhe a evolução:

Iteração

i

preco lido

total acumulado

1

R$ 31,55

R$ 31,55

2

R$ 8,19

R$ 39,74

3

R$ 7,39

R$ 47,13

4

R$ 7,39

R$ 54,52

Após a última iteração, i recebe o incremento e passa a valer 5, mas a condição i <= 4 falha e o laço termina. Aqui está o ponto crucial: em pseudocódigo (como no Visualg/Portugol), a variável de controle do laço para, após o término, fica com o valor quantidadeItens + 1, ou seja, 5. No entanto, a alternativa correta (E) afirma que i = 4. Isso parece uma inconsistência, mas a banca considera o valor de i como o último valor processado dentro do laço, não o valor após o incremento final. Essa é uma convenção comum em questões de rastreamento de algoritmos: o valor de i é o da última iteração executada.

Depois do laço, o algoritmo lê pagamentoRecebido = 200 e calcula troco = 200 - 54,52 = 145,48. Como o troco é positivo, exibe "Troco: R$ 145,48".

A pegadinha da questão está em dois pontos: (1) confundir o valor de i após o laço (5) com o valor da última iteração (4); (2) errar a soma dos preços, especialmente ao esquecer que são 2 pacotes de feijão, cada um a R$ 7,39. Vamos analisar cada alternativa.

Alternativa A — ❌ Incorreta

Apresenta i = 0, preco = 7, total = 54 e troco = 145. O valor de i nunca é 0, pois o laço começa em 1. Além disso, preco é um valor real (R$ 7,39), não inteiro (7), e total é R$ 54,52, não R$ 54,00. O troco também está truncado (R$ 145,00 em vez de R$ 145,48).

Alternativa B — ❌ Incorreta

Traz i = Null, o que não faz sentido, pois i é uma variável inteira inicializada pelo laço. preco = 14,66 não corresponde a nenhum valor lido (seria a soma de dois itens, mas não é o que a variável guarda). total = R$ 54,50 está errado (o correto é R$ 54,52) e troco = R$ 145,48 está correto, mas como os demais valores estão errados, a alternativa é inválida.

Alternativa C — ❌ Incorreta

Afirma i = 3, mas o laço executa 4 iterações (1, 2, 3, 4). preco = 14 não é um valor lido (é a soma de dois itens, mas a variável guarda apenas o último). total = 54,52 está correto, mas troco = 145,50 está errado (o correto é R$ 145,48).

Alternativa D — ❌ Incorreta

Diz i = 4 (correto), mas preco = 31,55 é o primeiro valor lido, não o último. total = R$ 200,00 está errado (esse é o valor do pagamento, não a soma dos itens). troco = R$ 145,48 está correto, mas os demais erros invalidam a alternativa.

Alternativa E — ✅ Correta ⟵ GABARITO

Apresenta exatamente os valores corretos: i = 4 (última iteração), preco = 7,39 (último valor lido), total = 54,52 (soma de todos os itens) e troco = 145,48 (200,00 − 54,52). Todos os valores batem com o rastreamento do algoritmo.

NÃO CAIA NESSA!

A banca explora duas confusões clássicas: (1) o valor de i após o laço — muitos candidatos marcam 5 (valor após o incremento final), mas a banca considera o valor da última iteração (4); (2) a soma dos itens — é fácil esquecer que são 2 pacotes de feijão, somando apenas R$ 7,39 em vez de R$ 14,78. Fique atento a esses detalhes na prova!

PEGA ESSA DICA!

Para rastrear algoritmos com laços, monte uma tabela de evolução das variáveis a cada iteração. Isso evita erros de soma e ajuda a visualizar o valor final de cada variável. No caso do para, lembre-se de que a variável de controle assume os valores de 1 até o limite, e o valor considerado ao final é o da última iteração executada.

Gabarito: letra E

Link permanente: /questoes/qa630761