Cash
Implemente um programa que calcule o número mínimo de moedas necessário para dar troco ao usuário.
$ python cash.py
Change owed: 0.41
4
Começando
Abra o VS Code.
Comece clicando dentro da janela do seu terminal e execute o comando cd
. Você deve ver que o "prompt" se assemelha ao abaixo.
$
Clique dentro da janela do terminal e execute
wget https://cdn.cs50.net/2022/fall/psets/6/sentimental-cash.zip
seguido de Enter para baixar um arquivo ZIP chamado sentimental-cash.zip
em seu espaço de código. Certifique-se de não
ignorar o espaço entre wget
e a URL a seguir, ou
qualquer outro caractere!
Agora execute
unzip sentimental-cash.zip
para criar uma pasta chamada sentimental-cash
. Você não precisa
mais do arquivo ZIP, então pode executar
rm sentimental-cash.zip
e responda com "y" seguido de Enter no prompt para remover o arquivo ZIP que você baixou.
Agora digite
cd sentimental-cash
seguido de Enter para mover-se para (ou seja, abrir) esse diretório. Sua linha de comando deve agora se parecer com a abaixo.
sentimental-cash/ $
Se tudo foi bem sucedido, você deve executar
ls
e ver um arquivo chamado cash.c
. Se você tiver algum problema, siga essas mesmas etapas novamente e veja se consegue determinar onde errou!
Especificação
- Escreva, em um arquivo chamado
cash.py
, um programa que pergunte ao usuário quanto de troco é devido e depois exiba a quantidade mínima de moedas com que o troco pode ser feito. Você pode fazer isso exatamente como fez no Problem Set 1, exceto que seu programa desta vez deve ser escrito em Python, e você deve assumir que o usuário inserirá seu troco em dólares (por exemplo, 0,50 dólares em vez de 50 centavos). - Use
get_float
da biblioteca CS50 para obter a entrada do usuário eprint
para exibir sua resposta. Suponha que as únicas moedas disponíveis sejam quarters (25¢), dimes (10¢), nickels (5¢) e pennies (1¢).- Pedimos que você use
get_float
para que possa lidar com dólares e centavos, embora sem o símbolo do dólar. Em outras palavras, se algum cliente deve $9,75 (como no caso em que um jornal custa 25¢, mas o cliente paga com uma nota de $10), assuma que a entrada do programa será9,75
e não$9,75
ou975
. No entanto, se algum cliente deve exatamente $9, assuma que a entrada do programa será9,00
ou apenas9
, mas, novamente, não$9
ou900
. Naturalmente, por causa do valor de ponto flutuante, é possível que seu programa também funcione com entradas como9,0
e9,000
; você não precisa se preocupar em verificar se a entrada do usuário está "formatada" como dinheiro deve ser.
- Pedimos que você use
- Se o usuário não fornecer um valor não negativo, seu programa deve solicitar novamente e novamente um valor válido até que o usuário o forneça.
- Por coincidência, para que possamos automatizar alguns testes em seu código, pedimos que a última linha da saída do seu programa seja apenas o número mínimo possível de moedas: um número inteiro seguido de uma nova linha.
Uso
Seu programa deve se comportar conforme o exemplo abaixo.
$ python cash.py
Change owed: 0.41
4
Testando
Embora o check50
esteja disponível para este problema, é recomendável que você primeiro teste seu código para cada um dos seguintes testes.
- Execute seu programa como
python cash.py
e aguarde um prompt para entrada. Digite0.41
e pressione enter. Seu programa deve imprimir4
. - Execute seu programa como
python cash.py
e aguarde um prompt para entrada. Digite0.01
e pressione enter. Seu programa deve imprimir1
. - Execute seu programa como
python cash.py
e aguarde um prompt para entrada. Digite0.15
e pressione enter. Seu programa deve imprimir2
. - Execute seu programa como
python cash.py
e aguarde um prompt para entrada. Digite1.60
e pressione enter. Seu programa deve imprimir7
. - Execute seu programa como
python cash.py
e aguarde um prompt para entrada. Digite23
e pressione enter. Seu programa deve imprimir92
. - Execute seu programa como
python cash.py
e aguarde um prompt para entrada. Digite4.2
e pressione enter. Seu programa deve imprimir18
. - Execute o seu programa como
python cash.py
e aguarde por um prompt para entrada. Digite-1
e pressione enter. Seu programa deve rejeitar essa entrada como inválida, solicitando ao usuário que digite outro número. - Execute o seu programa como
python cash.py
e aguarde por um prompt para entrada. Digitefoo
e pressione enter. Seu programa deve rejeitar essa entrada como inválida, solicitando ao usuário que digite outro número. - Execute o seu programa como
python cash.py
e aguarde por um prompt para entrada. Não digite nada e pressione enter. Seu programa deve rejeitar essa entrada como inválida, solicitando ao usuário que digite outro número.
Execute o código abaixo para avaliar a correção do seu código usando check50
. Mas certifique-se de compilá-lo e testá-lo por conta própria também!
check50 cs50/problems/2023/x/sentimental/cash
Execute o código abaixo para avaliar o estilo do seu código usando style50
.
style50 cash.py
Como Enviar
No seu terminal, execute o código abaixo para enviar seu trabalho.
submit50 cs50/problems/2023/x/sentimental/cash