Cash

ユーザにお釣りを渡すために必要なコインの最小数を計算するプログラムを実装します。

$ python cash.py
Change owed: 0.41
4

仕様

  • ~/pset6/cash/にあるcash.pyと呼ばれるファイルにプログラムを書きます。このプログラムはまずユーザにいくらの両替が必要かを尋ね、それから両替が可能なコインの最小数を出力します。これは問題セット1と同じですが、今回のプログラムはPythonで書かなければなりません。
  • CS50ライブラリからget_floatを使用して、ユーザの入力を取得し、出力print して回答を出力します。使用可能な硬貨は、25セント (クオーター) 、10セント (ダイム) 、5セント (ニッケル) 、および1セント (ペニー)のみであるとします。
    • ドル記号がなくてもドルとセントを扱えるように、get_floatを使用してください。つまり、あるお客が9.75ドルのお釣りを抱えている場合 (25セントの新聞にお客が10ドル札で支払っている場合など) 、プログラムからの入力は$9.75975ではなく9.75であると仮定します。また、あるお客がちょうど9ドルのお釣りを抱えている場合、プログラムからの入力は9.009であると仮定し、$9900ではないとします。もちろん、浮動小数点値の性質上、プログラムは9.09.000などの入力でも機能するでしょう。ユーザの入力がお金のように 「フォーマット」 されているかどうかを確認する必要はありません。
  • ユーザが負でない値を指定しなかった場合、プログラムはユーザがそうするまで、有効な値の入力を何度もユーザに求める必要があります。
  • コードのテストを自動化できるように、プログラムの出力の最後の行には、「コインの最小数:整数」の後に改行を指定してください。

使い方

プログラムは次の例のように動作するはずです。

$ python cash.py
Change owed: 0.41
4

テスト

この問題についてはcheck50を使用できますが、次の各項目については、最初に自分でコードをテストすることをお勧めします。

  • プログラムをpython cash.pyとして実行し、入力を求めるプロンプトが表示されるのを待ちます。0.41と入力し、Enterキーを押します。プログラムの出力は4になります。
  • プログラムをpython cash.pyとして実行し、入力を求めるプロンプトが表示されるのを待ちます。0.01と入力し、Enterキーを押します。プログラムの出力は1になります。
  • プログラムをpython cash.pyとして実行し、入力を求めるプロンプトが表示されるのを待ちます。0.15と入力し、Enterキーを押します。プログラムの出力は2になります。
  • プログラムをpython cash.pyとして実行し、入力を求めるプロンプトが表示されるのを待ちます。1.60と入力し、Enterキーを押します。プログラムの出力は7になります。
  • プログラムをpython cash.pyとして実行し、入力を求めるプロンプトが表示されるのを待ちます。23と入力し、Enterキーを押します。プログラムの出力は92になります。
  • プログラムをpython cash.pyとして実行し、入力を求めるプロンプトが表示されるのを待ちます。4.2と入力し、Enterキーを押します。プログラムの出力は18になります。
  • プログラムをpython cash.pyとして実行し、入力を求めるプロンプトが表示されるのを待ちます。-1と入力し、Enterキーを押します。ユーザに別の数字を入力するように再度促すなどして、この入力を無効として拒否する必要があります。
  • プログラムをpython cash.pyとして実行し、入力を求めるプロンプトが表示されるのを待ちます。fooと入力し、Enterキーを押します。ユーザに別の数字を入力するように再度促すなどして、この入力を無効として拒否する必要があります。
  • プログラムをpython cash.pyとして実行し、入力を求めるプロンプトが表示されるのを待ちます。何も入力せずに、Enterキーを押します。ユーザに別の数字を入力するように再度促すなどして、この入力を無効として拒否する必要があります。

check50を使用して以下を実行し、コードの正確さを評価してください。ただし、コンパイルとテストは必ず自分で行ってください。

check50 cs50/problems/2021/x/sentimental/cash

以下を実行し、style50を使用してコードのスタイルを評価します。

style50 cash.py

この問題は、正確さとスタイルの基準に沿ってのみ採点されます。

提出方法

次のコマンドを実行し、GitHubのユーザー名とパスワードを入力してログインします。セキュリティ上の理由から、パスワードには実際の文字ではなくアスタリスク (*) が表示されます。

submit50 cs50/problems/2021/x/sentimental/cash