المسارات
/
Java
Java
/
التمارين
/
السنة الكبيسة
السنة الكبيسة

السنة الكبيسة

سهل

مقدمة

تكون السنة كبيسة (في التقويم الميلادي) في الحالات الآتية:

  • في كل سنة تقبل القسمة على 4 بدون باقٍ.
  • إلا إذا كانت السنة تقبل القسمة على 100، ففي هذه الحالة تكون كبيسة فقط إذا كانت تقبل القسمة على 400 أيضًا.

بعض الأمثلة:

  • لم تكن سنة 1997 كبيسة لأنها لا تقبل القسمة على 4.
  • لم تكن سنة 1900 كبيسة لأنها لا تقبل القسمة على 400.
  • كانت سنة 2000 كبيسة!
Note

للحصول على شرح ممتع مدته أربع دقائق عن ظاهرة السنوات الكبيسة بأكملها، شاهد هذا الفيديو على يوتيوب.

التعليمات

مهمتك هي تحديد ما إذا كانت سنة معيّنة سنة كبيسة.

التنفيذ

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

تتضمّن معظم تمارين Java عدة حالات اختبار. صُمّمت هذه الحالات لدعم عملية مفيدة تُعرف باسم التطوير الموجّه بالاختبارات (TDD). يتضمّن التطوير الموجّه بالاختبارات تكرار دورة منظّمة تساعد المبرمجين على بناء وظائف معقّدة قطعة تلو الأخرى بدلًا من بنائها دفعة واحدة. ويمكن وصف هذه الدورة كما يلي:

  1. أضف اختبارًا يصف جزءًا واحدًا من الوظائف المطلوبة التي يفتقر إليها الكود حاليًا.
  2. شغّل الاختبارات للتأكد من أن هذا الاختبار المضاف حديثًا يفشل.
  3. حدّث الكود الحالي لديك حتى:
    • تستمر جميع الاختبارات القديمة في النجاح؛
    • وينجح الاختبار الجديد أيضًا.
  4. نظّف الكود لديك، مع التأكد من استمرار نجاح جميع الاختبارات. يتضمّن ذلك عادةً إعادة تسمية المتغيرات، وإزالة أجزاء المنطق المكرّرة، وإزالة أسطر التسجيل المتبقية، وما إلى ذلك.
  5. عُد إلى الخطوة 1 حتى تُبنى كل الوظائف المطلوبة!

تحتوي ملفات الاختبار في هذا المسار على جميع الاختبارات التي يجب أن يجتازها حلّك حتى يُعتبر صالحًا. وقد لا يبدو ذلك متوافقًا للوهلة الأولى مع الدورة الموصوفة أعلاه، حيث تُكتب الاختبارات واحدة تلو الأخرى. لكن الأداة التي نستخدمها لكتابة اختباراتنا، JUnit، توفّر @Disabled تعليقًا توضيحيًا يمكن استخدامه لتخطي اختبار مكتوب مسبقًا مؤقتًا. وباستخدام هذا التعليق التوضيحي، نضمن أن ملفات الاختبار التي نسلّمها إليك تحقق القواعد التالية:

  • الاختبار الأول في أي ملف اختبار لا يُتخطّى افتراضيًا.
  • جميع الاختبارات في أي ملف اختبار، ما عدا الأول، تُتخطّى افتراضيًا.

يتيح لك ذلك محاكاة دورة التطوير الموجّه بالاختبارات باتباع هذه الخطوات المعدّلة قليلًا:

  1. شغّل الاختبارات للتأكد من أن اختبارًا واحدًا على الأكثر يفشل حاليًا.
  2. حدّث الكود الحالي لديك حتى تنجح جميع الاختبارات غير المتخطّاة.
  3. نظّف الكود لديك، مع التأكد من استمرار نجاح جميع الاختبارات غير المتخطّاة.
  4. أزل التعليق التوضيحي @Disabled الأعلى في ملف الاختبار.
  5. عُد إلى الخطوة 1 حتى لا يبقى أي اختبار متخطّى وتنجح جميع الاختبارات!
تعديل عبر GitHub يفتح الرابط في نافذة أو علامة تبويب جديدة
Java Exercism

مستعد لبدء السنة الكبيسة؟

سجّل في Exercism لتتعلّم وتتقن Java عبر 26 مفهومًا158 تمرينًا، وإرشاد بشري حقيقي، وكل ذلك مجانًا.

تعمّق في السنة الكبيسة!

غوص عميق في الخوارزميات والأساليب المختلفة التي يمكنك استخدامها لحل تمرين السنة الكبيسة، حيث يستكشف Jeremy و Erik حلول المجتمع المثيرة للاهتمام عبر 10 لغات مختلفة على Exercism.