تفاصيل العمل

نظرة عامة على المشروع (CS50 Cash Calculator):

المشروع عبارة عن برنامج مكتوب بلغة C، وهو تطبيق عملي لمسألة تُعرف بـ "Greedy Algorithm" (الخوارزمية الجشعة)، وهي إحدى المهام التطبيقية الشهيرة في مساق علوم الحاسوب CS50 التابع لجامعة هارفارد. يهدف البرنامج إلى حساب وتحديد أقل عدد ممكن من الفئات النقدية (الورقية والمعدنية) اللازمة لتكوين مبلغ مالي معين يقوم المستخدم بإدخاله.

آلية العمل والوظائف (Functionality):

إدخال البيانات: يبدأ البرنامج بدالة get_cash() التي تطلب من المستخدم إدخال المبلغ المالي كقيمة عشرية (Float) (على سبيل المثال: 200.75 أو 254.75).

التحليل الحسابي المتسلسل: يمرر البرنامج هذا المبلغ عبر سلسلة من الدوال (Functions) المترابطة. تبدأ الخوارزمية باقتطاع أكبر فئة نقدية ممكنة من المبلغ، وتستمر بالنزول إلى الفئات الأصغر تدريجياً للوصول إلى الصفر.

الفئات النقدية المدعومة في الكود: * ورقية: 100، 50، 20، 10، 5، و 1 (مكتوبة في الكود باسم Pounds).

معدنية/كسور: 0.50 (أنصاف - Halves)، و 0.25 (أرباع - Quarters).

المخرجات (Output): يقوم البرنامج في النهاية بطباعة تقرير مفصل يوضح العدد المطلوب من كل فئة نقدية على حدة لجمع المبلغ الأصلي المكتوب.

التقنيات والمفاهيم البرمجية المستخدمة:

لغة البرمجة: C.

البرمجة المجزأة (Modular Programming): قام المطور بتقسيم البرنامج بشكل احترافي إلى دوال صغيرة منفصلة (مثل calculate_hundreds, calculate_fiftys, calculate_quarters، إلخ) بدلاً من كتابة الكود كاملاً داخل الـ main. هذا يسهل قراءة الكود وتتبعه (Clean Code).

إدارة أنواع البيانات (Data Types): التعامل مع الأرقام العشرية (Floats) في إدخال المبالغ، والأعداد الصحيحة (Integers) في حساب عدد الأوراق النقدية.

الخوارزميات: استخدام منطق القسمة وباقي القسمة لاحتساب التوزيع الأمثل للفئات.

الاختبار والتنفيذ:

يُظهر الفيديو في نهايته عملية اختبار حية للبرنامج (Testing) من خلال الـ Terminal (واجهة الأوامر)، حيث يقوم المطور بتشغيل البرنامج وإدخال مبالغ مختلفة، ويقوم النظام باحتساب الفئات بدقة وبشكل فوري كما هو متوقع، مما يؤكد خلوه من الأخطاء المنطقية (Logical Errors).

بشكل عام، المشروع هو تطبيق ممتاز لفهم أساسيات البرمجة، كيفية هيكلة الكود، وبناء خوارزميات فعّالة لحل المشكلات اليومية.

بطاقة العمل

اسم المستقل
عدد الإعجابات
0
تاريخ الإضافة