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 BOWDEN: مرحبا. 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 حتى هنا، ونحن نرى لدينا افعل / بينما حلقة. 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 وحتى هذا الغرض من هذه المهام / بينما حلقة. 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 >> ذلك مرة واحدة لدينا هذا العدد من الدولارات، نرى هنا لدينا سنتا الباحث 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 هنا، لدينا أول حلقة من الوقت. 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 >> فما هو هذا بينما حلقة تفعل؟ 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 >> حتى ذلك الحين، مرة واحدة هذا هو الحال، وسوف نقوم الخروج من هذا في حين حلقة. 49 00:02:53,300 --> 00:02:57,650 سوف تترك سنتا الى 17 سنتا. 50 00:02:57,650 --> 00:03:01,910 وسوف نستمر وصولا الى القادم في حين حلقة حيث نقول، في حين سنتا 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 أي أكثر من النيكل، والتي سوف ترك لنا مع اثنين سنتا. 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 الآن إذا قلت بأنني مدين لك 10،000 دولار، يجب أن لا حاجة للذهاب هنا واحد 65 00:03:52,660 --> 00:03:55,310 الربع، ربعين، وثلاثة أرباع. 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 >> حتى هنا حيث الأشياء احصل مختلفة بعض الشيء. 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 >> مباشرة بعد ذلك، نقوله سنتا سنتا تساوي ربع وزارة الدفاع. 81 00:04:51,850 --> 00:04:57,150 تذكر أن المشغل يعطي وزارة الدفاع لنا الباقي بعد القسمة. 82 00:04:57,150 --> 00:05:05,840 حتى الربع 142 وزارة الدفاع، التي من شأنها أن تعطي هو 142 ناقص 125، وهو 17. 83 00:05:05,840 --> 00:05:10,470 هذا هو الباقي بعد به 142 مقسوما على 25. 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 17 مقسومة على 10 سيعطينا 1. 87 00:05:18,620 --> 00:05:20,150 ونضيف أن لقطعة نقدية. 88 00:05:20,150 --> 00:05:25,380 ومن ثم نقوم بتحديث سنتا ل تكون وزارة الدفاع 17 10، والذي هو 7. 89 00:05:25,380 --> 00:05:27,200 >> ثم نفس الشيء بالنسبة النيكل. 90 00:05:27,200 --> 00:05:29,180 7 مقسوما على 5 هو 1. 91 00:05:29,180 --> 00:05:30,880 إضافة إلى أن القطع النقدية. 92 00:05:30,880 --> 00:05:34,600 ومن ثم وزارة الدفاع 7 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