>> [عزف الموسيقى]
>> ROB BOWDEN: مرحبا.
أنا روب.
ودعونا الحصول على الجشع.
>> وبالتالي فإن أول شيء يتعين علينا القيام به ويطلب من المستخدم بالضبط كيف
هو مستحق الكثير من التغيير.
حتى هنا، ونحن نرى لدينا افعل / بينما حلقة.
ونحن تحديد دولار يساوي GetFloat.
ما هو GetFloat؟
انها واحدة من وظائف في مكتبة CS50 أن يحصل على
تطفو من المستخدم.
تذكر، من أجل استخدام تلك الوظيفة، نحن بحاجة إلى تجزئة تشمل
CS50.h في الأعلى.
>> ذلك مرة واحدة لدينا تلك القيمة من المستخدم، ونحن بحاجة أيضا إلى التأكد من أن
انها قيمة صالحة.
لا يمكننا مدينون المال سلبية.
وحتى هذا الغرض من هذه المهام / بينما حلقة.
نواصل حلقات بينما دولار هو أقل من الصفر.
وافعل / حلقة بينما هو الشيء الصحيح لاستخدام هنا، لأننا بحاجة إلى أن نسأل ل
مستخدم مرة واحدة على الأقل لكيفية هو مستحق الكثير من المال.
>> ذلك مرة واحدة لدينا هذا العدد من الدولارات، نرى هنا لدينا سنتا الباحث
جولة يساوي دولار مرة CENTS_PER_DOLLAR.
في الجزء العلوي، ونحن نرى أن CENTS_PER_DOLLAR هو
تعريف معقول الى 100.
فما هو هذا الخط تفعل؟
>> حسنا، إذا كنت تتذكر، النقطة العائمة القيم ليست دقيقة تماما.
على عكس الأعداد الصحيحة، لا يمكننا أن تمثل قيم النقطة العائمة بالضبط.
هناك دائما نوعا من عدم الدقة.
لذلك نحن نفضل العمل مع الأعداد الصحيحة فقط طوال هذه المشكلة.
وهنا، إذا قام المستخدم بإدخال 3،42 $، نحن تحويل ذلك إلى 342 سنتا و
التقريب، فقط للتخلص من أي من أن عدم الدقة.
>> ذلك مرة واحدة لدينا عدد سنتا في عدد صحيح، ونحن يمكن أن تستمر مع
بقية البرنامج.
نرى هنا أننا معلنا صحيح القطع النقدية التي نحن فقط لاستخدام
لتتبع من مجموع عدد من القطع النقدية.
هنا، لدينا أول حلقة من الوقت.
>> في حين نرى سنتا أكبر من أو يساوي الربع الذي سبق، هو تجزئة
يعرف بأنه 25، في حين أن هذا صحيح، ونحن تريد زيادة عدد لدينا من القطع النقدية
وسنت إنقاص بمقدار الربع.
تذكر أن هذه الجملة ما يعادل سنتا
يساوي سنتا ناقص الربع.
تلك هي نفسها.
>> فما هو هذا بينما حلقة تفعل؟
الفكرة هنا هي أنه، إذا أنا أعرف 3،42 $ هو مستحق، ويمكنني أن الاستمرار في منح
أرباع حتى أنا لا يمكن أن تعطي أرباع أي أكثر من ذلك.
لا استطيع ان اعطي أرباع أي أكثر من ذلك، مرة واحدة لقد أعطيت 3،25 $.
>> حتى ذلك الحين، مرة واحدة هذا هو الحال، وسوف نقوم الخروج من هذا في حين حلقة.
سوف تترك سنتا الى 17 سنتا.
وسوف نستمر وصولا الى القادم في حين حلقة حيث نقول، في حين سنتا
أكبر من أو تساوي عشرة سنتات.
>> والآن نقوم به بالضبط نفس شيء فعلناه في حالة الربع،
إلا مع الدايمات.
حتى مع $ 0.17، وسوف نقوم حلقة حتى نستطيع لم تعد تعطي فلسا واحدا، والذي هو
مرة واحدة بالضبط.
ثم سنقوم أن تترك مع 7 سنتات.
>> ثم سنواصل إلى النيكل، والتي سوف حلقة حتى أننا لا يمكن أن تعطي
أي أكثر من النيكل، والتي سوف ترك لنا مع اثنين سنتا.
وبعد ذلك، في أسفل، لدينا بنسات، وسوف حلقة والتي سوف
أخيرا ترك لنا الصفر سنتا.
ثم في النهاية، نحن بحاجة فقط ل طباعة لدينا عدد من القطع النقدية.
>> لذلك هذا البرنامج هو الصحيح تماما.
ولكن يمكننا القيام به في الواقع أفضل قليلا.
الآن إذا قلت بأنني مدين لك 10،000 دولار، يجب أن لا حاجة للذهاب هنا واحد
الربع، ربعين، وثلاثة أرباع.
يجب أن نعرف على الفور أن أنا مدين لك 40،000 أرباع.
>> الآن دعونا ننظر في البرنامج الذي يعالج بطريقة أفضل قليلا.
في هذا الإصدار من الأشياء، ونحن لا تزال بحاجة أن تطلب من المستخدم للحصول على مبلغ
تغيير أنهم يريدون بالضبط بنفس الطريقة فعلنا من قبل.
نحن بحاجة إلى تقريب بالضبط كما فعلنا من قبل.
ومازال لدينا النقود لدينا عدد صحيح أعلن بالضبط نفس كما كان من قبل.
>> حتى هنا حيث الأشياء احصل مختلفة بعض الشيء.
نقوم به القطع النقدية بالإضافة إلى التساوي سنتا مقسوما الربع
حيث الربع هو 25.
ما هذا القول غير، واتخاذ العديد من يمكن أرباع ما يذهب إلى سنتا وإضافة
لذلك القطع النقدية.
>> حتى إذا سنتا هو 142، 142 تقسيم بنسبة 25 يعطينا 5.
تذكر أن قسمة عدد صحيح باقتطاع تلقائيا.
لذلك نحن تفعلونه القطع النقدية زائد يساوي 5.
>> مباشرة بعد ذلك، نقوله سنتا سنتا تساوي ربع وزارة الدفاع.
تذكر أن المشغل يعطي وزارة الدفاع لنا الباقي بعد القسمة.
حتى الربع 142 وزارة الدفاع، التي من شأنها أن تعطي هو 142 ناقص 125، وهو 17.
هذا هو الباقي بعد به 142 مقسوما على 25.
>> وحتى الآن سنتا تساوي 17.
ونفعل نفس الشيء بالضبط الشيء بالنسبة الدايمات.
17 مقسومة على 10 سيعطينا 1.
ونضيف أن لقطعة نقدية.
ومن ثم نقوم بتحديث سنتا ل تكون وزارة الدفاع 17 10، والذي هو 7.
>> ثم نفس الشيء بالنسبة النيكل.
7 مقسوما على 5 هو 1.
إضافة إلى أن القطع النقدية.
ومن ثم وزارة الدفاع 7 5 2.
وهذا هو لدينا سنتا.
>> ومن ثم، مقابل أجر ضئيل، وليس هناك الحقيقي نقطة في التقسيم أو الشعيب، منذ ذلك الحين،
اذا كان لدينا 0،2 $ خلفها، في وسعنا فقط أضيف أن على الفور ل
لدينا عدد من القطع النقدية.
وأخيرا، نحن بحاجة إلى طباعة لدينا عدد من القطع النقدية، واختياريا،
العودة 0 في نهاية برنامجنا للدلالة على كل شيء يعمل.
>> اسمي روب.
وكان هذا الجشع.
>> [عزف الموسيقى]