Uma empresa deseja aumentar seus preços em
. Fazer um algoritmo que leia o código e o preço de custo de cada produto e calcule o preço novo; calcule também a média dos preços com e sem aumento; mostre o código e o preço novo de cada produto e, no final, as médias. A entrada de dados deve terminar quando for lido um código de produto negativo.
Passo 1
O que o enunciado pede e quais dados são fornecidos:
- O programa deve ler repetidamente o código e o preço de custo de produtos.
- Para cada produto lido, deve calcular o preço novo aplicando um aumento de
. - Para cada produto deve-se mostrar o código e o preço novo.
- Ao final, depois de todas as leituras, deve mostrar:
- a média dos preços sem aumento (média dos preços de custo lidos);
- a média dos preços com aumento (média dos preços já aumentados).
- A leitura termina quando for lido um código de produto negativo (ou seja, o código negativo é a condição de parada).
- Informações importantes extraídas do enunciado:
- taxa de aumento:
; - condição de parada: código
.
- taxa de aumento:
Passo 2
Entendendo o que significa "aumentar em
" e como calcular o preço novo:
- Aumentar um valor em
significa somar desse valor ao próprio valor. Se o preço de custo for , o acréscimo é . - Podemos escrever o preço novo como:
- Fatorando
:
- Então, para calcular rápido na prova ou código, multiplicamos o preço de custo por
.
Passo 3
Como calcular médias (o que é média aritmética e variáveis que usaremos):
- Se temos
produtos com preços de custo , a média dos preços sem aumento é:
- Se os preços novos correspondentes são
, a média dos preços com aumento é:
- Para implementar sem guardar todos os preços, usa-se acumuladores:
-
= soma acumulada dos ; -
= soma acumulada dos ; -
= contador de produtos lidos.
-
- No fim:
- Atenção: se
(ou seja, nenhum produto lido antes de um código negativo), não se pode dividir por . Nesse caso o programa deve informar que não houve produtos e evitar divisão por zero.
Passo 4
Estrutura geral do algoritmo (visão passo a passo, em linguagem natural para facilitar a implementação):
- Inicializar os acumuladores e contador:
-
-
-
- definir multiplicador de aumento
(porque )
-
- Repetir:
- Ler
. - Se
, sair do laço (termina a entrada). - Ler
. - Calcular
. - Mostrar (imprimir) o
e o (formatado com duas casas decimais). - Atualizar acumuladores:
-
- Voltar a repetir para novo
.
- Ler
- Após sair do laço:
- Se
então informar que nenhum produto foi lido. - Caso contrário calcular:
- Mostrar as duas médias (formatadas com duas casas decimais).
- Se
Passo 5
Detalhes úteis para implementar na prova (pontos práticos e de formatação):
- Formatação de saída: mostrar os preços com duas casas decimais costuma ser exigido. Ex.: imprimir
. - Tipos de variáveis:
-
: inteiro (pode ser negativo para terminar). -
, , , , médias: reais (ponto flutuante). -
: inteiro contador.
-
- Evitar divisão por zero: sempre verificar
antes de calcular médias. - No cálculo use
para evitar escrever sempre somando.
Passo 6
Exemplo prático (traço de execução manual com alguns produtos) — para fixar a ideia:
Suponha que as entradas sejam (cada par é
):
- Primeiro produto:
- Segundo produto:
- Terceiro produto:
- Em seguida vem um código negativo:
(termina)
Passo a passo dos cálculos:
- Início:
. - Produto 1:
-
. - Mostrar:
, . - Atualizar:
, , .
-
- Produto 2:
-
. - Mostrar:
, . - Atualizar:
, , .
-
- Produto 3:
-
. - Mostrar:
, . - Atualizar:
, , .
-
- Fim (codigo
lido): - Calcular médias:
- Mostrar as duas médias.
- Calcular médias:
Esse traço mostra que a lógica de acumular e contar funciona e evita guardar todas as linhas em memória.
Passo 7
Comportamento em casos especiais e dicas finais:
- Se o primeiro código lido já for negativo (
), o programa imprime uma mensagem como “Nenhum produto lido” e não tenta calcular médias. - Em implementações em linguagens como C, Java, Python: atenção ao tipo de leitura (inteiro para código, real para preço) e ao formato de impressão (usar formatação para duas casas).
- Em prova, se tiver que escrever o algoritmo em pseudocódigo, seja claro na ordem: ler código, verificar negativo, ler preço, calcular, imprimir, acumular, repetir.
Resposta
Inicializar
,
,
,
.\nLer
.\nEnquanto
faça:\n Ler
.\n
.\n Imprimir
e
(formatado com 2 casas).\n
.\n
.\n
.\n Ler
.\nFim enquanto.\nSe
então:\n Imprimir “Nenhum produto lido.”\nSenão:\n
.\n
.\n Imprimir
e
(cada uma com 2 casas).\nFim se.