ट्रैक
/
R
R
/
अभ्यास
/
लसाग्ना
लसाग्ना

लसाग्ना

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

परिचय

वेरिएबल और असाइनमेंट

R एक डायनैमिक टाइपिंग वाली भाषा है, इसलिए आम तौर पर वेरिएबल का टाइप बताने की ज़रूरत नहीं होती। वैल्यू असाइन करने के लिए पसंदीदा ऑपरेटर <- है।

x <- 42
avogadro <- 6.02e23
mystr <- "Hello, World!"

<- की जगह = इस्तेमाल करना अक्सर काम कर जाता है, पर हमेशा नहीं। इसे खराब स्टाइल माना जाता है, इसलिए इससे बचना चाहिए। अगर आप RStudio में काम कर रहे हैं, तो इसे कीबोर्ड शॉर्टकट Alt-minus से डाला जा सकता है।

ऑपरेटर ज़्यादातर आम हैं, लेकिन %/% और %% पर ध्यान दीजिए:

2 + 3   # 5
2 - 3   # -1
2 * 3   # 6
2 / 3   # 0.6666667
8 %/% 3 # 2 (integer division)
8 %% 3  # 2 (remainder)
2 ^ 3   # 8 (exponential)

R में # से एक लाइन का कमेंट शुरू होता है। कई लाइनों वाले कमेंट के लिए कोई अलग सिंटैक्स नहीं है।

फंक्शन

फंक्शन बनाने के लिए:

squareit <- function(x) {
    x * x
}

फंक्शन में शून्य या उससे अधिक आर्गुमेंट हो सकते हैं, जिन्हें कॉमा से अलग किया जाता है। function() के साथ ब्रैकेट () ज़रूरी होते हैं, भले ही कोई पैरामीटर न हो।

फंक्शन के आर्गुमेंट के लिए डिफ़ॉल्ट वैल्यू भी तय की जा सकती है, पर ऐसी वैल्यू उन सभी आर्गुमेंट के बाद आनी चाहिए जिनकी कोई डिफ़ॉल्ट वैल्यू नहीं है। डिफ़ॉल्ट वैल्यू असाइन करने के लिए <- की जगह = इस्तेमाल कीजिए। थोड़ा बेमतलब सा उदाहरण:

squareit <- function(x = 42) {
    x * x
}

squareit()
#> [1] 1764

एक लाइन वाली फंक्शन बॉडी के लिए कर्ली ब्रैकेट { } सख्ती से ज़रूरी नहीं हैं, पर उन्हें लिखना अच्छा स्टाइल माना जाता है।

ऊपर के उदाहरणों की तरह R फंक्शन की अंतिम वैल्यू अपने आप लौटा देता है।

फंक्शन बॉडी में कहीं भी return() इस्तेमाल करके रिटर्न वैल्यू को स्पष्ट किया जा सकता है।

फंक्शन कॉल करना कई दूसरी भाषाओं की तरह ही है:

squareit(3)
#> [1] 9

निर्देश

इस अभ्यास में आप कुछ कोड लिखेंगे जिसकी मदद से आप अपनी पसंदीदा रेसिपी की किताब से एक शानदार लज़ान्या पका सकेंगे।

आपके सामने चार काम हैं, और चारों लज़ान्या पकाने में लगने वाले समय से जुड़े हैं।

1. ओवन का अपेक्षित समय मिनटों में तय कीजिए

expected_minutes_in_oven() नाम का फंक्शन बनाइए जो कोई पैरामीटर नहीं लेता और बताता है कि लज़ान्या को ओवन में कितने मिनट रहना चाहिए। रेसिपी की किताब के अनुसार ओवन में अपेक्षित समय 60 मिनट है।

> expected_minutes_in_oven()
[1] 60

2. ओवन में बचा हुआ समय मिनटों में निकालिए

remaining_time_in_minutes फंक्शन बनाइए। यह फंक्शन पैरामीटर के रूप में वे मिनट लेता है जितनी देर तक लज़ान्या ओवन में रह चुकी है, और बताता है कि पिछले काम में मिले ओवन के अपेक्षित समय के आधार पर लज़ान्या को ओवन में अभी कितने मिनट और रहना बाकी है।

> remaining_time_in_minutes(50)
[1] 10

3. तैयारी का समय मिनटों में निकालिए

prep_time_in_minutes() फंक्शन बनाइए। यह फंक्शन पैरामीटर के रूप में लज़ान्या की उन परतों की संख्या लेता है जो आपने लगाईं, और बताता है कि लज़ान्या तैयार करने में आपको कितने मिनट लगे। इसमें यह मान लिया जाता है कि हर परत तैयार करने में आपको 2 मिनट लगते हैं।

> prep_time_in_minutes(2)
[1] 4

4. बीता हुआ समय मिनटों में निकालिए

elapsed_time_in_minutes फंक्शन बनाइए जो दो आर्गुमेंट लेता है: पहला आर्गुमेंट लज़ान्या की उन परतों की संख्या है जो आपने लगाईं, और दूसरा पैरामीटर वे मिनट हैं जितनी देर लज़ान्या ओवन में रह चुकी है। फंक्शन को बताना चाहिए कि लज़ान्या पकाने में आपने कुल कितने मिनट काम किया, यानी तैयारी के मिनटों और इस समय ओवन में बिताए मिनटों का जोड़।

> elapsed_time_in_minutes(3, 20)
[1] 26
GitHub के ज़रिए संपादित करें यह लिंक एक नई विंडो या टैब में खुलता है
R Exercism

लसाग्ना शुरू करने के लिए तैयार हैं?

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