ट्रैक
/
Julia
Julia
/
अभ्यास
/
कार असेंबल कीजिए
कार असेंबल कीजिए

कार असेंबल कीजिए

सीखने का अभ्यास

परिचय

तुलना ऑपरेटर

Julia में तुलना ऑपरेटर बहुत-सी दूसरी भाषाओं जैसे ही हैं, हालाँकि गणित पसंद करने वालों के लिए इनमें कुछ अतिरिक्त विकल्प भी हैं।

समानता के लिए ऑपरेटर == (बराबर) और != या ≠ (बराबर नहीं) हैं।

txt = "abc"
txt == "abc"  # true
txt != "abc"  # false
txt ≠ "abc"  # false (synonym for !=)

इसके अलावा बड़ा/छोटा बताने वाले कई ऑपरेटर भी हैं।

1 < 3  # true
3 > 3  # false
3 <= 3  # true
3 ≤ 3  # true (synonym for <=)
4 >= 3  # true
4 ≥ 3  # true (synonym for >=)

जैसा Julia में अक्सर होता है, उपयुक्त एडिटर में गणितीय चिह्न का इस्तेमाल करना आसान हो जाता है। ≠, ≤ या ≥ पाने के लिए \ne, \le या \ge लिखकर TAB दबाइए।

पिछले उदाहरण में सिर्फ संख्याएँ हैं, लेकिन पाठ्यक्रम के दूसरे हिस्सों में हम देखेंगे कि कई और डेटा टाइप में भी क्रम का अर्थ होता है और उन्हें बड़ा/छोटा जाँचने के लिए तुलना किया जा सकता है।

तुलना ऑपरेटरों को एक के बाद एक जोड़ा जा सकता है, जिससे साफ़ और संक्षिप्त सिंटैक्स लिखना संभव होता है:

n = 3
1 ≤ n ≤ 5  # true (n "between" two limits)

पिछला उदाहरण 1 ≤ n && n ≤ 5 का ही दूसरा रूप है।

if के साथ शाखाएँ बनाना

if स्टेटमेंट का पूरा रूप ऐसा होता है:

if conditional1
    statements...
elseif conditional2
    statements...
else
    statements...
end

यहाँ गोल ब्रैकेट () या घुंघराले ब्रैकेट {} की ज़रूरत नहीं पड़ती, और इंडेंटेशन "सिर्फ" कोड पढ़ने में आसानी के लिए है (लेकिन पढ़ने में आसानी बहुत ज़रूरी है!)।

elseif और else दोनों वैकल्पिक हैं, और एक से ज़्यादा elseif ब्लॉक भी हो सकते हैं। लेकिन end लिखना ज़रूरी है।

if स्टेटमेंट को एक के अंदर एक (नेस्टेड) भी रखा जा सकता है, हालाँकि कोड पढ़ने में आसानी के लिए ब्रैकेट, इंडेंटेशन और कमेंट का सोच-समझकर इस्तेमाल करना बेहतर होता है।

if स्टेटमेंट का सबसे छोटा रूप कुछ ऐसा होगा:

if n < 0
    n = 0
end

याद रखिए: शर्त की जगह सिर्फ वे एक्सप्रेशन इस्तेमाल किए जा सकते हैं जो true या false देते हैं। Julia जानबूझकर "ट्रुथीनेस" जैसी किसी धारणा से बचती है, इसलिए शून्य वैल्यू, खाली स्ट्रिंग और खाली ऐरे false के बराबर नहीं होते।

टर्नरी ऑपरेटर

एक आम और सीधी स्थिति यह है कि किसी शर्त के आधार पर दो वैल्यू में से एक चुननी होती है।

बहुत-सी भाषाओं की तरह Julia में भी टर्नरी ऑपरेटर है, जो इसे और संक्षिप्त बना देता है।

इसका सिंटैक्स conditional ? value_if_true : value_if_false है।

तो पिछला उदाहरण ऐसे लिखा जा सकता है:

n = n < 0 ? 0 : n

कंपाइलर को गोल ब्रैकेट की ज़रूरत नहीं होती, लेकिन इससे कोड पढ़ने में आसानी हो सकती है।

निर्देश

इस अभ्यास में आप एक कार फैक्ट्री की असेंबली लाइन के उत्पादन का विश्लेषण करने के लिए कोड लिखेंगे। असेंबली लाइन की गति 0 (बंद) से 10 (अधिकतम) तक हो सकती है।

सबसे कम गति (1) पर हर घंटे 221 कारें बनती हैं। गति के साथ उत्पादन रैखिक रूप से बढ़ता है। इसलिए जब गति 4 हो, तो हर घंटे 4 * 221 = 884 कारें बननी चाहिए। लेकिन तेज़ गति पर खराब कारें बनने की संभावना बढ़ जाती है, और ऐसी कारों को फिर हटाना पड़ता है।

आपके सामने तीन काम हैं। हर आवश्यक फंक्शन एक ही पूर्णांक पैरामीटर लेता है: असेंबली लाइन की गति।

1. सफलता दर की गणना कीजिए

success_rate() मेथड बनाइए। यह बताती है कि किसी दी गई गति पर कोई कार बिना किसी एरर के बनने की संभावना कितनी है। यह तालिका दिखाती है कि गति सफलता दर को कैसे प्रभावित करती है:

  • 0: 0% सफलता दर।
  • 1 से 4: 100% सफलता दर।
  • 5 से 8: 90% सफलता दर।
  • 9: 80% सफलता दर।
  • 10: 77% सफलता दर।
julia> success_rate(10)
0.77

2. प्रति घंटे उत्पादन दर की गणना कीजिए

production_rate_per_hour() मेथड बनाइए। यह सफलता दर को ध्यान में रखते हुए बताती है कि असेंबली लाइन हर घंटे कितना उत्पादन करती है।

julia> production_rate_per_hour(6)
1193.4

ध्यान दीजिए कि लौटाई गई वैल्यू एक दशमलव संख्या होती है।

3. प्रति मिनट काम करने वाली कारों की संख्या की गणना कीजिए

working_items_per_minute() मेथड बनाइए। यह बताती है कि हर मिनट कितनी काम करने वाली कारें बनती हैं:

julia> working_items_per_minute(6)
19

ध्यान दीजिए कि लौटाई गई वैल्यू एक पूर्णांक होती है: अधूरी कारें इसमें शामिल नहीं होतीं।

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

कार असेंबल कीजिए शुरू करने के लिए तैयार हैं?

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