ट्रैक
/
Lean
Lean
/
अभ्यास
/
प्रतिरोधक रंग तिकड़ी
प्रतिरोधक रंग तिकड़ी

प्रतिरोधक रंग तिकड़ी

मध्यम

निर्देश

अगर आप Raspberry Pi की मदद से कुछ बनाना चाहते हैं, तो आप शायद प्रतिरोधक इस्तेमाल करेंगे। इस अभ्यास के लिए आपको इनके बारे में सिर्फ तीन बातें जाननी हैं:

  • हर प्रतिरोधक की एक प्रतिरोध वैल्यू होती है।

  • प्रतिरोधक छोटे होते हैं, इतने छोटे कि अगर आप उन पर प्रतिरोध वैल्यू छाप दें, तो उसे पढ़ना मुश्किल हो जाएगा। इस समस्या से निपटने के लिए निर्माता प्रतिरोधकों पर रंगीन पट्टियाँ छापते हैं, और इन पट्टियों से उनकी प्रतिरोध वैल्यू पता चलती है।

  • हर पट्टी किसी संख्या के एक अंक की तरह काम करती है। उदाहरण के लिए, अगर वे brown रंग की पट्टी (वैल्यू 1) छापें और उसके बाद green रंग की पट्टी (वैल्यू 5), तो इसका मतलब संख्या 15 होगा। इस अभ्यास में आप एक काम का प्रोग्राम बनाएँगे, ताकि आपको पट्टियों की वैल्यू याद रखने की जरूरत न पड़े। यह प्रोग्राम 3 रंग इनपुट के रूप में लेता है और सही वैल्यू ohms में बताता है। इन रंगीन पट्टियों का कोड इस तरह है:

  • black: 0

  • brown: 1

  • red: 2

  • orange: 3

  • yellow: 4

  • green: 5

  • blue: 6

  • violet: 7

  • grey: 8

  • white: 9

प्रतिरोधक रंग जोड़ी वाले अभ्यास में आपने पहले दो रंगों को संख्या में बदला था। जैसे: orange-orange से मुख्य वैल्यू 33 मिलती थी। तीसरा रंग बताता है कि मुख्य वैल्यू में कितने शून्य जोड़ने हैं। मुख्य वैल्यू में इतने शून्य जोड़ने पर जो वैल्यू मिलती है, वह ohms में होती है। इस अभ्यास के लिए इससे कोई फर्क नहीं पड़ता कि ohms असल में क्या होते हैं। उदाहरण के लिए:

  • orange-orange-black का मतलब है 33, और कोई शून्य नहीं, यानी 33 ohms.
  • orange-orange-red का मतलब है 33, और 2 शून्य, यानी 3300 ohms.
  • orange-orange-orange का मतलब है 33, और 3 शून्य, यानी 33000 ohms.

(अगर गणित आपकी पसंद है, तो आप इन शून्यों को 10 की घात मान सकते हैं। अगर गणित आपकी पसंद नहीं है, तो शून्यों के साथ ही चलिए। दोनों बातें वास्तव में एक ही हैं, बस एक सीधी भाषा में कही गई है और दूसरी गणित की शब्दावली में।)

इस अभ्यास में आपको रंगों को एक लेबल में बदलना है:

"... ohms"

तो "orange", "orange", "black" इनपुट देने पर प्रोग्राम को यह लौटाना चाहिए:

"33 ohms"

जब प्रतिरोधक बड़े होते हैं, तो बड़े मान को दिखाने के लिए मीट्रिक उपसर्ग इस्तेमाल किया जाता है, जैसे "kiloohms"। यह वैसा ही है जैसे "2000 मीटर" कहने के बजाय "2 किलोमीटर" कहना, या "2000 ग्राम" के लिए "2 किलोग्राम" कहना।

उदाहरण के लिए, "orange", "orange", "orange" इनपुट देने पर प्रोग्राम को यह लौटाना चाहिए:

"33 kiloohms"

सिंटैक्स को परिभाषित करना

Caution

यह अभ्यास Resistor Color Duo के आगे की कड़ी है और उसी पर आधारित है। आप प्रैक्टिस अभ्यासों को किसी भी क्रम में हल कर सकते हैं, फिर भी हम सुझाए गए क्रम का पालन करने के लिए प्रोत्साहित करते हैं।

इस अभ्यास में आपको रंगों के लिए पहले से परिभाषित सिंटैक्स दिया गया है, जो c* प्रीफिक्स का उपयोग करता है, जैसे c*black। इसके बाद आपको ऐसा सिंटैक्स परिभाषित करना है जो निर्देशों के अनुसार रंगों के एक क्रम को, उसकी SI इकाई और संभवतः किसी मेट्रिक उपसर्ग के साथ, प्रतिरोध की वैल्यू से जोड़ता है। रंग *[[ और ]] के बीच रहते हैं और , से अलग किए जाते हैं, जैसे *[[c*black, c*yellow, c*violet]]।

इस काम में संभवतः आपको नोटेशन या मैक्रो का इस्तेमाल करना पड़ेगा। आप एक रेफरेंस देख सकते हैं।

चूँकि नया सिंटैक्स कंपाइल समय पर विस्तारित होता है, इसलिए जब तक सारा आवश्यक सिंटैक्स परिभाषित न हो, कोई भी टेस्ट कंपाइल नहीं हो पाएगा। इस कारण हम पारंपरिक रनटाइम टेस्ट पर निर्भर रहने के बजाय #guard_msgs का उपयोग करते हैं। यह कमांड किसी दिए गए डॉकस्ट्रिंग की तुलना किसी दूसरे कमांड द्वारा बनाए गए संदेश से करता है, इस मामले में #eval से, और अगर दोनों अलग हों तो एरर बताता है। अगर कोई एरर न आए, तो आप इसे पास होते टेस्ट की तरह मान सकते हैं।

अगर आप स्थानीय रूप से या Lean के ऑनलाइन प्लेग्राउंड में काम करते हैं, तो #guard_msgs द्वारा बताई गई किसी भी एरर पर आपको Lean InfoView के जरिए तुरंत फीडबैक मिलेगा।

Note

प्रतिरोध की वैल्यू को Ω (ओम) इकाई में आउटपुट करना चाहिए। यह यूनिकोड अक्षर स्थानीय रूप से या Lean के ऑनलाइन प्लेग्राउंड में \ohm शॉर्टकट से बनाया जा सकता है। अगर आप Exercism के ऑनलाइन एडिटर में काम कर रहे हैं, तो यह अक्षर निर्देशों से कॉपी कर सकते हैं।

Caution

ऑनलाइन टेस्ट रनर फिलहाल पूरी Lean मेटा-प्रोग्रामिंग लाइब्रेरी को इंपोर्ट करने का समर्थन नहीं करता। आप Lean में डिफॉल्ट रूप से उपलब्ध किसी भी फीचर का उपयोग करने के लिए स्वतंत्र हैं, जिनमें Lean नेमस्पेस के अंदर वाले फीचर भी शामिल हैं, लेकिन import Lean जोड़ने या Lean नेमस्पेस से किसी विशेष मॉड्यूल को इंपोर्ट करने पर Exercism पर सबमिट करते समय आपका सबमिशन फेल हो जाएगा।

ध्यान दें कि इस अभ्यास को हल करने के लिए Lean लाइब्रेरी को इंपोर्ट करना जरूरी नहीं है।

GitHub के ज़रिए संपादित करें यह लिंक एक नई विंडो या टैब में खुलता है
Lean Exercism

प्रतिरोधक रंग तिकड़ी शुरू करने के लिए तैयार हैं?

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