Problema 4
O Sr. Manoel Joaquim acaba de adquirir uma panificadora e pretende implantar a metodologia da tabelinha, que já é um sucesso na sua loja de 1,99 . Você foi contratado para desenvolver o programa que monta a tabela de preços de pães, de 1 até 50 pães, a partir do preço do pão informado pelo usuário.
Observação: as mensagens exibidas para o usuário deverão ser exatamente como apresentado abaixo (mensagens exibidas com os comandos input() e print()).
Exemplo de execução do programa:
Digite o preço do pão: 0.18
1 - R$ 0.18
2 - R$ 0.36
...
50 - R$ 9.00
Digite o preço do pão: 0.18
1 - R$ 0.18
2 - R$ 0.36
...
50 - R$ 9.00
Passo 1
O enunciado pede um programa que:
- Leia do usuário o preço de um pão (o prompt exibido deve ser exatamente: "Digite o preço do pão: ").
- Mostre na tela a “tabelinha” de preços de 1 até 50 pães, uma linha por quantidade, no formato exatamente igual a este:
1 - R\(0.18,2 - R\) 0.36, …,50 - R$ 9.00.
Informações relevantes fornecidas: - A entrada é um único número (preço unitário do pão).
- A saída são 50 linhas, uma para cada quantidade de 1 a 50.
- A formatação monetária deve mostrar duas casas decimais (por exemplo,
9.00para nove reais).
Observação que importa: o prompt e cada linha impressa devem ter os textos e espaços exatamente como no exemplo.
Passo 2
Como vamos obter e armazenar o preço informado:
- O comando Python
input()lê texto do usuário. O enunciado exige que o texto do prompt seja exatamenteDigite o preço do pão:, então devemos usarinput("Digite o preço do pão: "). - O
input()retorna uma string; para fazer contas precisamos de um número. Em Python convertemos para ponto flutuante comfloat().
Exemplo de código para ler:
preco = float(input("Digite o preço do pão: "))
Explicação didática:
preco passa a ser um número do tipo ponto flutuante (por exemplo 0.18) que permite multiplicações. Não se preocupes se float tem pequenos erros de representação — para exibir usamos formatação que mostra exatamente duas casas decimais.Passo 3
Como vamos gerar as 50 linhas (estrutura de repetição):
- Precisamos repetir um mesmo procedimento para cada
ide1até50. Em Python a forma direta é usarfor i in range(1, 51):. - Para cada
icalculamos o total pago poripães com a fórmula
(escrevendo em TeX:
).
- Em código:
for i in range(1, 51):
total = preco * i
Didática:
range(1, 51) gera a sequência inteira 1, 2, 3, …, 50; em cada volta i assume um desses valores.Passo 4
Como formatar a saída exatamente como pede o enunciado:
- Cada linha tem o formato
i - R$ X.YY, ondeX.YYé o valor com duas casas decimais e o separador decimal é o ponto (conforme o exemplo). - Em Python a forma mais simples e legível é usar f-strings com o especificador
:.2fpara formatar floats com duas casas decimais. Exemplo:
print(f"{i} - R$ {total:.2f}")
Explicação do
:.2f: o : introduz a formatação; . indica casas decimais; 2 pede duas casas; f indica formato de ponto flutuante. Assim, se total for 9.0, aparece 9.00; se for 0.36, aparece 0.36. Esse print garante que o texto e os espaços fiquem exatamente iguais ao exemplo.Passo 5
Montagem completa do programa e linha-a-linha do que acontece:
- Passo de leitura:
preco = float(input("Digite o preço do pão: "))mostra o prompt e transforma a resposta em número. - Loop de 1 a 50:
for i in range(1, 51): - Cálculo do total:
total = preco * i- Exemplo numérico (didático): se
precofor0.18, então parai=2temos. (Nota: aqui, na explicação em TeX uso vírgula decimal; no programa o número será exibido com ponto como no exemplo.)
- Exemplo numérico (didático): se
- Impressão formatada:
print(f"{i} - R$ {total:.2f}") - Juntando tudo, o programa imprimirá exatamente:
1 - R$ 0.18
2 - R$ 0.36
...
50 - R$ 9.00
quando o preço digitado for
0.18.Passo 6
Dicas e cuidados na hora da prova:
- Atenção ao prompt: tenha certeza de escrever exatamente
Digite o preço do pão:(com maiúsculas, espaços e dois-pontos). - Use
range(1, 51)e nãorange(50)(que iria de 0 a 49). - Use
:.2fpara garantir duas casas decimais; não confie emround()só para exibir, porqueprintsem formatação pode mostrar muitas casas ou uma representação estranha. - Se o avaliador testar com entrada com vírgula (por exemplo
0,18) ofloat()em Python dará erro; siga o formato do enunciado (no exemplo a entrada usa ponto decimal). Na prova, se o enunciado exigir entrada com vírgula, haveria tratamento extra, mas aqui o enunciado mostra ponto, então usarfloat()é suficiente.
Resposta
preco = float(input(“Digite o preço do pão: “))
for i in range(1, 51):
total = preco * i
print(f”{i} - R$ {total:.2f}”)
for i in range(1, 51):
total = preco * i
print(f”{i} - R$ {total:.2f}”)