ट्रैक
/
Java
Java
/
अभ्यास
/
अधिवर्ष
अधिवर्ष

अधिवर्ष

आसान

परिचय

ग्रेगोरियन कैलेंडर में लीप वर्ष तब होता है:

  • हर उस वर्ष में जो 4 से पूरी तरह विभाज्य हो।
  • सिवाय उस स्थिति के जब वर्ष 100 से पूरी तरह विभाज्य हो; ऐसी स्थिति में वह लीप वर्ष तभी होता है जब वह 400 से भी पूरी तरह विभाज्य हो।

कुछ उदाहरण:

  • 1997 लीप वर्ष नहीं था, क्योंकि यह 4 से विभाज्य नहीं है।
  • 1900 लीप वर्ष नहीं था, क्योंकि यह 400 से विभाज्य नहीं है।
  • 2000 लीप वर्ष था!
Note

लीप वर्ष की इस पूरी घटना की चार मिनट की एक मज़ेदार व्याख्या के लिए यह YouTube वीडियो देखिए।

निर्देश

आपको यह तय करना है कि दिया गया वर्ष लीप वर्ष है या नहीं।

कार्यान्वयन

शुरू करने से पहले यह समझ लीजिए कि ऐसा कोड कैसे लिखा जाता है जो टेस्ट केस पास कर सके। अधिक जानकारी के लिए यह ट्यूटोरियल देखिए।

Java के अधिकांश अभ्यासों में कई टेस्ट केस होते हैं। इन केसों को इस तरह बनाया गया है कि वे एक उपयोगी प्रक्रिया को सहारा दें, जिसे टेस्ट-ड्रिवन डेवलपमेंट (TDD) कहा जाता है। TDD में एक व्यवस्थित चक्र बार-बार दोहराया जाता है, जो प्रोग्रामरों को जटिल कार्यक्षमता एक साथ नहीं, बल्कि टुकड़े-टुकड़े करके बनाने में मदद करता है। उस चक्र का वर्णन इस प्रकार है:

  1. ऐसा टेस्ट जोड़िए जो उस कार्यक्षमता का एक हिस्सा बताता हो जो आप बनाना चाहते हैं और जो अभी आपके कोड में नहीं है।
  2. टेस्ट चलाकर पुष्टि कीजिए कि अभी जोड़ा गया यह टेस्ट फेल होता है।
  3. अपने मौजूदा कोड में बदलाव कीजिए जब तक कि:
    • पुराने सारे टेस्ट पास होते रहें;
    • नया टेस्ट भी पास हो जाए।
  4. अपने कोड को साफ़ कीजिए और ध्यान रखिए कि सारे टेस्ट पास होते रहें। इसमें आम तौर पर वेरिएबलो के नाम बदलना, दोहराए गए लॉजिक के टुकड़े हटाना, बची हुई लॉगिंग हटाना, आदि शामिल होता है।
  5. चरण 1 पर लौटते रहिए, जब तक सारी कार्यक्षमता बन न जाए!

इस ट्रैक की टेस्ट फाइलों में वे सारे टेस्ट होते हैं जो आपके हल को मान्य माने जाने के लिए पास करने चाहिए। ऊपर बताए गए चक्र से यह बात तुरंत मेल नहीं खाती, जिसमें टेस्ट एक-एक करके लिखे जाते हैं। लेकिन हम अपने टेस्ट लिखने के लिए जिस टूल का इस्तेमाल करते हैं, वह JUnit, एक ऐसा @Disabled एनोटेशन देता है जिसकी मदद से पहले से लिखे गए टेस्ट को कुछ समय के लिए छोड़ा जा सकता है। इस एनोटेशन का इस्तेमाल करके हम यह सुनिश्चित करते हैं कि हम जो टेस्ट फाइलें आपको देते हैं, वे इन नियमों का पालन करती हैं:

  • किसी भी टेस्ट फाइल में पहला टेस्ट डिफॉल्ट रूप से नहीं छोड़ा जाता।
  • किसी भी टेस्ट फाइल में पहले को छोड़कर बाकी सारे टेस्ट डिफॉल्ट रूप से छोड़ दिए जाते हैं।

इसकी मदद से आप इन थोड़े बदले हुए चरणों को अपनाकर TDD चक्र का अनुकरण कर सकते हैं:

  1. टेस्ट चलाकर पुष्टि कीजिए कि अभी अधिकतम एक टेस्ट ही फेल होता है।
  2. अपने मौजूदा कोड को तब तक बदलते रहिए जब तक छोड़े न गए सारे टेस्ट पास न हो जाएँ।
  3. अपने कोड को साफ़ कीजिए और ध्यान रखिए कि छोड़े न गए सारे टेस्ट पास होते रहें।
  4. टेस्ट फाइल में सबसे ऊपर लिखा @Disabled एनोटेशन हटा दीजिए।
  5. चरण 1 पर लौटते रहिए, जब तक कोई भी टेस्ट छोड़ा न जाए और सारे टेस्ट पास न हो जाएँ!
GitHub के ज़रिए संपादित करें यह लिंक एक नई विंडो या टैब में खुलता है
Java Exercism

अधिवर्ष शुरू करने के लिए तैयार हैं?

Exercism पर साइन अप कीजिए और Java को 26 कॉन्सेप्ट158 अभ्यास तथा असली इंसानों से मिलने वाली मेंटरिंग के साथ सीखिए और उसमें महारत हासिल कीजिए, वह भी बिल्कुल मुफ्त।

अधिवर्ष को गहराई से जानिए!

अधिवर्ष को हल करने के लिए अलग-अलग एल्गोरिदम और तरीके हैं। उनकी गहराई में जाइए, जहाँ Jeremy और Erik Exercism पर 10 अलग-अलग भाषाओं में दिलचस्प Community Solutions देखते हैं।