ユーザにお釣りを渡すために必要なコインの最小数を計算するプログラムを実装します。
$ python cash.py
Change owed: 0.41
4
始め方
VS Codeを開きます。
ターミナルウィンドウ内をクリックすることから始めて、それからcd
を実行します。
その後プロンプトは次のようになっていることがわかります。
$
ターミナルウィンドウの内側をクリックし、次のように入力します。
wget https://cdn.cs50.net/2021/fall/psets/6/sentimental-cash.zip
その後にEnterを押すと、sentimental-cash.zipというZIPがあなたのCodespaceにダウンロードされます。wgetと次のURLの間にあるスペースや、その他の文字を見落とさないように注意してください。
次に
unzip sentimental-cash.zip
を実行して、sentimental-cashというフォルダを作成します。
ZIPファイルは不要になったため、
rm sentimental-cash.zip
を実行し、プロンプトで “y “に続いてEnterで応答すると、ダウンロードしたZIPファイルが削除されます。
次に
cd sentimental-cash
の後にEnterを押して、そのディレクトリに移動する(つまり、開く)。これでプロンプトは以下のようになります。
sentimental-cash/ $
ls
を実行するとcash.py
が表示されます。問題が発生した場合は、同じ手順をもう一度実行して、どこが間違っていたかを判断できるかどうかを確認してください。
仕様
cash.py
というファイルにプログラムを書きます。このプログラムはまずユーザにいくらの両替が必要かを尋ね、それから両替が可能なコインの最小数を出力します。これはProblem set 1と同じですが、今回のプログラムはPythonで書かなければなりません。またユーザはお釣りをドルで入力すると仮定しなければなりません (例えば,50 セントの代わりに 0.50 ドルです).- CS50ライブラリからget_floatを使用して、ユーザの入力を取得し、出力
print
して回答を出力します。使用可能な硬貨は、25セント (クオーター) 、10セント (ダイム) 、5セント (ニッケル) 、および1セント (ペニー)のみであるとします。- ドル記号がなくてもドルとセントを扱えるように、
get_float
を使用してください。つまり、あるお客が9.75ドルのお釣りを抱えている場合 (25セントの新聞にお客が10ドル札で支払っている場合など) 、プログラムからの入力は$9.75
や975
ではなく9.75
であると仮定します。また、あるお客がちょうど9ドルのお釣りを抱えている場合、プログラムからの入力は9.00
や9
であると仮定し、$9
や900
ではないとします。もちろん、浮動小数点値の性質上、プログラムは9.0
や9.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/2022/x/sentimental/cash
以下を実行し、style50
を使用してコードのスタイルを評価します。
style50 cash.py
提出方法
ターミナルで、以下のコマンドを実行して提出してください。
submit50 cs50/problems/2022/x/sentimental/cash