1 00:00:00,000 --> 00:00:00,994 2 00:00:00,994 --> 00:00:11,431 >> [音楽再生] 3 00:00:11,431 --> 00:00:12,500 >> ROBボーデン:こんにちは。 4 00:00:12,500 --> 00:00:13,230 私はロブだ。 5 00:00:13,230 --> 00:00:15,080 との貪欲得ることができます - 6 00:00:15,080 --> 00:00:18,560 >> だから我々は、最初にすべきことは、 正確にどのようにユーザーに確認されている 7 00:00:18,560 --> 00:00:20,500 多くの変更が負っている。 8 00:00:20,500 --> 00:00:23,310 だからここに、我々は我々が持っている参照してください。 DO / whileループ。 9 00:00:23,310 --> 00:00:26,650 そして、我々はドルを設定している GetFloat指定に等しい。 10 00:00:26,650 --> 00:00:27,890 GetFloat指定とは何ですか? 11 00:00:27,890 --> 00:00:30,700 これは、関数の一つだ 取得するCS50ライブラリ 12 00:00:30,700 --> 00:00:32,450 ユーザーからのフロート。 13 00:00:32,450 --> 00:00:35,200 その機能を使用するためには、覚えておいて、 我々は、ハッシュする必要があります 14 00:00:35,200 --> 00:00:37,790 上部のCS50.h。 15 00:00:37,790 --> 00:00:42,310 >> だから我々はからその値を取得したら ユーザは、我々はまた、ことを確認する必要があります 16 00:00:42,310 --> 00:00:43,560 それが有効な値です。 17 00:00:43,560 --> 00:00:46,050 私たちは、負のお金を借りていることはできません。 18 00:00:46,050 --> 00:00:48,460 だからそれが目的です これを行うの/ whileループ。 19 00:00:48,460 --> 00:00:52,420 我々はしばらくの間ドルをループし続ける ゼロ未満である。 20 00:00:52,420 --> 00:00:56,960 ループは正しいことである間、および/やる 我々が依頼する必要があるため、ここで使用する 21 00:00:56,960 --> 00:01:00,290 方法については、少なくとも一度は、ユーザー 多くのお金を負っている。 22 00:01:00,290 --> 00:01:05,040 >> だから我々はドルのその数を取得したら、 我々はint型セントを持ってここを参照してください 23 00:01:05,040 --> 00:01:08,630 ラウンドドル時間に等しい CENTS_PER_DOLLAR。 24 00:01:08,630 --> 00:01:10,740 一番上には、我々はその参照 CENTS_PER_DOLLARです 25 00:01:10,740 --> 00:01:13,750 常識的に100として定義されます。 26 00:01:13,750 --> 00:01:16,270 したがって、この行は何をやっている? 27 00:01:16,270 --> 00:01:21,200 >> さて、あなたは覚えている場合、浮動小数点 値は非常に正確ではありません。 28 00:01:21,200 --> 00:01:25,470 整数とは異なり、我々は表現できない 浮動小数点値を正確に。 29 00:01:25,470 --> 00:01:28,660 いくつかの並べ替えが常にある 不正確。 30 00:01:28,660 --> 00:01:32,840 だから我々はちょうど整数で働くことを好む この問題を通して。 31 00:01:32,840 --> 00:01:42,690 そしてここで、ユーザは、3.42ドルを入力した場合、 我々は342セントにそれを変換しています 32 00:01:42,690 --> 00:01:45,900 丸めだけを取り除く その不正確のいずれか。 33 00:01:45,900 --> 00:01:49,940 >> だから我々は中セントの数を取得したら 整数、我々を続行することができます 34 00:01:49,940 --> 00:01:51,730 プログラムの残りの部分。 35 00:01:51,730 --> 00:01:55,910 我々は、整数を宣言していることがわかり 我々だけ使用するようにしている硬貨 36 00:01:55,910 --> 00:01:59,560 合計を追跡するために コインの数。 37 00:01:59,560 --> 00:02:01,590 ここでは、私たちの最初のwhileループがあります。 38 00:02:01,590 --> 00:02:06,780 >> セント以上である間、我々は参照してください。 上記、ハッシュで四半期に等しい 39 00:02:06,780 --> 00:02:14,680 それが真の間、我々は、25のように定義 コインの私達の番号を増加したい 40 00:02:14,680 --> 00:02:18,350 および四半期ごとのデクリメントセント。 41 00:02:18,350 --> 00:02:22,810 この構文ことを覚えている セントに相当します 42 00:02:22,810 --> 00:02:26,020 セントマイナス四半期に等しい。 43 00:02:26,020 --> 00:02:28,170 それらは同じである。 44 00:02:28,170 --> 00:02:31,850 >> したがって、このwhileループは何をやっている? 45 00:02:31,850 --> 00:02:39,260 ここでの考え方は、私は3.42ドルを知っていれば、ということです 負っている、私は与え続けることができます 46 00:02:39,260 --> 00:02:42,670 私が与えることができないまでの四半期 四半期、それ以上。 47 00:02:42,670 --> 00:02:47,720 私はこれ以上の四半期を与えることができない、 私は3.25ドルを与えられたら。 48 00:02:47,720 --> 00:02:53,300 >> そうだと、一度さて、我々はよ このwhileループから抜け出す。 49 00:02:53,300 --> 00:02:57,650 セントは17セントで残されます。 50 00:02:57,650 --> 00:03:01,910 そして、我々は次のダウン続けます 私たちが言うWhileループところ、しばらくセント 51 00:03:01,910 --> 00:03:04,270 以上ダイムに等しい。 52 00:03:04,270 --> 00:03:07,420 >> そして今、我々はまったく同じをしている 我々は四半期ケースにした物、 53 00:03:07,420 --> 00:03:09,010 ダイムを除い。 54 00:03:09,010 --> 00:03:15,050 だから、0.17ドルで、我々はループは我々ができるようになるまでよ もはやであるダイムを与えない 55 00:03:15,050 --> 00:03:16,680 一度だけ。 56 00:03:16,680 --> 00:03:20,470 そして、我々は7セントが残ることでしょう。 57 00:03:20,470 --> 00:03:24,730 >> その後、我々は、これ硬貨に進みます 我々は、ループを与えることができないでしょうになるまで 58 00:03:24,730 --> 00:03:29,420 これ以上硬貨、その意志 2セントで私たちを残して。 59 00:03:29,420 --> 00:03:34,400 そして、ダウン下部に、我々は持っている ペニー、がループと意志 60 00:03:34,400 --> 00:03:37,140 最終的にはゼロセントで私たちを残して。 61 00:03:37,140 --> 00:03:41,670 そして、最後に、我々だけでする必要が コインの私達の数を出力します。 62 00:03:41,670 --> 00:03:44,980 >> したがって、このプログラムは完全に正しい。 63 00:03:44,980 --> 00:03:47,310 しかし、我々は実際には少し良く行うことができます。 64 00:03:47,310 --> 00:03:52,660 今私は、私はあなたに万ドルを借りていると言うなら、 ここに1がだあなたが行く必要はありません 65 00:03:52,660 --> 00:03:55,310 四半期、2四半期、四分の三。 66 00:03:55,310 --> 00:03:59,450 あなたはすぐに知っておくべきこと 私はあなたに40,000宿舎を借りています。 67 00:03:59,450 --> 00:04:04,070 >> 今度は、そのプログラムを見てみましょう 少し良くそれを処理します。 68 00:04:04,070 --> 00:04:07,190 物事のこのバージョンでは、我々はまだ必要があります の量をユーザーに依頼する 69 00:04:07,190 --> 00:04:10,930 彼らは正確ににする変更 我々は以前と同じように。 70 00:04:10,930 --> 00:04:14,110 我々は正確に丸める必要がある 我々の前に行った方法。 71 00:04:14,110 --> 00:04:17,910 そして、我々はまだ我々のコインの整数を持っている 以前とまったく同じ宣言した。 72 00:04:17,910 --> 00:04:21,399 >> だからここのWHEREもの 少し違う得る。 73 00:04:21,399 --> 00:04:24,640 私たちは、コインプラス等号をやっている 四半期で割っセント 74 00:04:24,640 --> 00:04:27,140 当四半期は25です。 75 00:04:27,140 --> 00:04:31,790 これは、できるだけ多くを取る何を言っている として四半期はセントに入り、追加することができます 76 00:04:31,790 --> 00:04:33,030 硬貨への。 77 00:04:33,030 --> 00:04:40,100 >> セント142であれば、142で割った 25で私たちに5を与えます。 78 00:04:40,100 --> 00:04:43,950 その整数の除算を覚えている 自動的に切り捨てられます。 79 00:04:43,950 --> 00:04:46,870 だから我々は、コインをやって、プラス5に等しくしている。 80 00:04:46,870 --> 00:04:51,850 >> この直後に、我々は言っている セント等しいセントMOD四半期。 81 00:04:51,850 --> 00:04:57,150 Mod演算子が与えることを忘れないでください 分割後の当方余り。 82 00:04:57,150 --> 00:05:05,840 与えるので、142 MOD四半期、 17は142マイナス125である。 83 00:05:05,840 --> 00:05:10,470 それは後に残ります 25で割った142をやって。 84 00:05:10,470 --> 00:05:13,040 >> だから今セントは17に等しい。 85 00:05:13,040 --> 00:05:16,080 そして、我々はまったく同じをする ダイムのためのもの。 86 00:05:16,080 --> 00:05:18,620 10で割った17は私達に1を与える。 87 00:05:18,620 --> 00:05:20,150 そして、我々はコインにそれを追加します。 88 00:05:20,150 --> 00:05:25,380 そして、我々は、セントを更新 7で17 MOD 10、も。 89 00:05:25,380 --> 00:05:27,200 >> 硬貨用と同じ。 90 00:05:27,200 --> 00:05:29,180 5で割った7は1です。 91 00:05:29,180 --> 00:05:30,880 硬貨にそれを追加します。 92 00:05:30,880 --> 00:05:34,600 してから7 MOD 5は2である。 93 00:05:34,600 --> 00:05:35,910 そして、それは私たちのセントです。 94 00:05:35,910 --> 00:05:39,065 >> そして、ペニーのため、実際のはありません 分割または改造のポイント、以来、 95 00:05:39,065 --> 00:05:42,170 我々は残って0.2ドルを持っている場合、我々はできる ただ、すぐにそれを追加 96 00:05:42,170 --> 00:05:43,590 コインの私たちの数。 97 00:05:43,590 --> 00:05:48,210 そして最後に、我々は我々をプリントアウトする必要があります コインの枚数と、場合により、 98 00:05:48,210 --> 00:05:52,100 私たちのプログラムの終了時に0を返す すべてのものを示すために働いた。 99 00:05:52,100 --> 00:05:53,120 >> 私の名前はロブです。 100 00:05:53,120 --> 00:05:54,020 そして、これは貪欲だった。 101 00:05:54,020 --> 00:05:57,620 >> [音楽再生] 102 00:05:57,620 --> 00:06:01,515