تمرين من المصدر الأصلي · تطبيق عملي

نقدي

استخدم الشرح العربي للفهم، واعتمد صفحة CS50 الأصلية مرجعًا نهائيًا للمواصفات والتسليم.

جلسة دراسة مقترحة: حتى 60 دقيقةالجهد الكلي التقريبي: 120 دقيقة · أكمل من حيث توقفت لاحقًا.Week 6
محاور هذه الخطوة
  • Python
  • القواميس
  • القوائم
  • الاستثناءات

ترجمة آلية تحت المراجعة

نقدي

المصدر الأصلي

قائمة تنفيذ التمرين

تُحفظ علامات هذه القائمة على هذا الجهاز والمتصفح فقط. أنشئ حسابًا مفعّلًا لحفظ إنجاز التمرين في مسارك.

نقدي

مشكلة بحاجة إلى حل

في ملف يسمى cash.py في مجلد يسمى sentimental-cash، اكتب برنامجًا يسأل المستخدم عن مقدار التغيير المستحق ثم ينشر الحد الأدنى لعدد العملات المعدنية التي يمكن إجراء التغيير المذكور بها. يمكنك القيام بذلك تمامًا كما فعلت في مجموعة المشاكل 1، باستثناء أن برنامجك هذه المرة يجب أن يكون مكتوبًا بلغة بايثون، ويجب أن تفترض أن المستخدم سيُدخل التغيير بالدولار (e.g.، 0.50 دولار بدلاً من 50 سنتًا).

تجريبي

المواصفات

  • استخدم get_float من مكتبة CS50 للحصول على مدخلات المستخدم و print لإخراج إجابتك. افترض أن العملات المعدنية الوحيدة المتاحة هي الأرباع (25 سنتًا)، والدايمات (10 سنتات)، والنيكل (5 سنتات)، والبنسات (1 سنتات).
    • نطلب منك استخدام get_float حتى تتمكن من التعامل مع الدولارات والسنتات، حتى لو كانت بدون علامة الدولار. بمعنى آخر، إذا كان بعض العملاء مدينًا بمبلغ 9.75 دولارًا (كما في الحالة التي تبلغ فيها تكلفة الصحيفة 25 سنتًا ولكن العميل يدفع بفاتورة بقيمة 10 دولارات)، فافترض أن مدخلات برنامجك ستكون 9.75 وليس $9.75 أو 975. ومع ذلك، إذا كان بعض العملاء مدينًا بمبلغ 9 دولارات بالضبط، فافترض أن مدخلات برنامجك ستكون كذلك 9.00 أو فقط 9 ولكن، مرة أخرى، لا $9 أو 900. بالطبع، بحكم طبيعة قيم الفاصلة العائمة، من المحتمل أن يعمل برنامجك مع مدخلات مثل 9.0 و 9.000 أيضًا؛ لا داعي للقلق بشأن التحقق مما إذا كان إدخال المستخدم "منسقًا" كما ينبغي أن يكون المال.
  • إذا فشل المستخدم في تقديم قيمة غير سالبة، فيجب على برنامجك إعادة مطالبة المستخدم بمبلغ صالح مرارًا وتكرارًا حتى يمتثل المستخدم.
  • بالمناسبة، حتى نتمكن من أتمتة بعض اختبارات الشيفرة الخاصة بك، نطلب أن يكون السطر الأخير من إخراج برنامجك هو الحد الأدنى لعدد العملات الممكنة فقط: عدد صحيح متبوع بسطر جديد.

كيفية الاختبار

بينما check50 متاح لهذه المشكلة، ننصحك أولاً باختبار الشيفرة بنفسك لكل مما يلي.

  • قم بتشغيل البرنامج الخاص بك باسم python cash.py، وانتظر المطالبة بالإدخال. اكتب 0.41 ثم اضغط على زر الإدخال. يجب أن يخرج برنامجك 4.
  • قم بتشغيل البرنامج الخاص بك باسم python cash.py، وانتظر المطالبة بالإدخال. اكتب 0.01 ثم اضغط على زر الإدخال. يجب أن يخرج برنامجك 1.
  • قم بتشغيل البرنامج الخاص بك باسم python cash.py، وانتظر المطالبة بالإدخال. اكتب 0.15 ثم اضغط على زر الإدخال. يجب أن يخرج برنامجك 2.
  • قم بتشغيل البرنامج الخاص بك باسم python cash.py، وانتظر المطالبة بالإدخال. اكتب 1.60 ثم اضغط على زر الإدخال. يجب أن يخرج برنامجك 7.
  • قم بتشغيل البرنامج الخاص بك باسم python cash.py، وانتظر المطالبة بالإدخال. اكتب 23 ثم اضغط على زر الإدخال. يجب أن يخرج برنامجك 92.
  • قم بتشغيل البرنامج الخاص بك باسم python cash.py، وانتظر المطالبة بالإدخال. اكتب 4.2 ثم اضغط على زر الإدخال. يجب أن يخرج برنامجك 18.
  • قم بتشغيل البرنامج الخاص بك باسم python cash.py، وانتظر المطالبة بالإدخال. اكتب -1 ثم اضغط على زر الإدخال. يجب أن يرفض برنامجك هذا الإدخال باعتباره غير صالح، وذلك عن طريق إعادة مطالبة المستخدم بكتابة رقم آخر.
  • قم بتشغيل البرنامج الخاص بك باسم python cash.py، وانتظر المطالبة بالإدخال. اكتب foo ثم اضغط على زر الإدخال. يجب أن يرفض برنامجك هذا الإدخال باعتباره غير صالح، وذلك عن طريق إعادة مطالبة المستخدم بكتابة رقم آخر.
  • قم بتشغيل البرنامج الخاص بك باسم python cash.py، وانتظر المطالبة بالإدخال. لا تكتب أي شيء، ثم اضغط على زر الإدخال. يجب أن يرفض برنامجك هذا الإدخال باعتباره غير صالح، وذلك عن طريق إعادة مطالبة المستخدم بكتابة رقم آخر.

صحة

check50 cs50/problems/2026/x/sentimental/cash

النمط

style50 cash.py

كيفية الإرسال

في جهازك الطرفي، قم بتنفيذ ما يلي لإرسال عملك، والإجابة على المطالبات التي تظهر أيضًا.

submit50 cs50/problems/2026/x/sentimental/cash

أنهيت التطبيق؟

راجع عناصر التنفيذ أعلاه، ثم احفظ إنجازك وانتقل إلى التمرين التالي.

حفظ إنجاز التمرين

يمكنك قراءة الدورة كاملة دون حساب. يصبح حفظ التقدم متاحًا بعد تفعيل الحساب، ويبقى محفوظًا بعد انتهاء العضوية.

العودة إلى جميع التمارين