ट्रैक
/
JavaScript
JavaScript
/
अभ्यास
/
फ्रीलांसर दरें
फ्रीलांसर दरें

फ्रीलांसर दरें

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

परिचय

संख्याएँ

प्रोग्रामिंग की बहुत-सी भाषाओं में अलग-अलग तरह की संख्याओं के लिए अलग-अलग संख्या टाइप होते हैं, लेकिन JavaScript में सिर्फ दो हैं:

  • number: एक संख्या वाला डेटा टाइप, जो डबल-प्रिसिज़न 64-बिट फ्लोटिंग-पॉइंट फॉर्मैट (IEEE 754) में होता है। इसके उदाहरण हैं -6, -2.4, 0, 0.1, 1, 3.14, 16.984025, 25, 976, 1024.0 और 500000।
  • bigint: एक संख्या वाला डेटा टाइप, जो पूर्णांकों को किसी भी परिशुद्धता वाले फॉर्मैट में दर्शा सकता है। इसके उदाहरण हैं -12n, 0n, 4n और 9007199254740991n।

अगर आपको किसी भी परिशुद्धता की ज़रूरत हो या आप बहुत बड़ी संख्याओं पर काम कर रहे हों, तो bigint टाइप इस्तेमाल कीजिए। वरना number टाइप ही बेहतर विकल्प है।

राउंडिंग

एक बिल्ट-इन ग्लोबल ऑब्जेक्ट है जिसका नाम Math है, और यह तरह-तरह के राउंडिंग फंक्शन देता है। उदाहरण के लिए, floor दशमलव संख्या को उसके नीचे की निकटतम पूर्ण संख्या में बदलता है और ceil उसे उसके ऊपर की निकटतम पूर्ण संख्या में।

Math.floor(234.34); // => 234
Math.ceil(234.34); // => 235

अंकगणित के ऑपरेटर

JavaScript संख्याओं पर बुनियादी अंकगणितीय क्रियाएँ करने के लिए 6 अलग-अलग ऑपरेटर देता है।

  • +: जोड़ का ऑपरेटर संख्याओं का योग निकालने के लिए इस्तेमाल होता है।
  • -: घटाव का ऑपरेटर दो संख्याओं के बीच का अंतर निकालने के लिए इस्तेमाल होता है।
  • *: गुणा का ऑपरेटर दो संख्याओं का गुणनफल निकालने के लिए इस्तेमाल होता है।
  • /: भाग का ऑपरेटर दो संख्याओं को बाँटने के लिए इस्तेमाल होता है।
2 - 1.5; //=> 0.5
19 / 2; //=> 9.5
  • %: शेषफल का ऑपरेटर भाग देने के बाद बचने वाला शेषफल निकालने के लिए इस्तेमाल होता है।

    40 % 4; // => 0
    -11 % 4; // => -3
    
  • **: घातांक का ऑपरेटर किसी संख्या की घात निकालने के लिए इस्तेमाल होता है।

    4 ** 3; // => 64
    4 ** 1 / 2; // => 2
    

क्रियाओं का क्रम

एक ही लाइन में कई ऑपरेटर इस्तेमाल करते समय JavaScript इस प्राथमिकता तालिका में दिखाए गए क्रम का पालन करता है। इसे अपने संदर्भ में सरल बनाकर कहें तो JavaScript वही PEDMAS (कोष्ठक, घात, भाग/गुणा, जोड़/घटाव) नियम इस्तेमाल करता है, जो हमने प्रारंभिक गणित की कक्षाओं में सीखा है।

const result = 3 ** 3 + 9 * 4 / (3 - 1);
// => 3 ** 3 + 9 * 4/2
// => 27 + 9 * 4/2
// => 27 + 18
// => 45

संक्षिप्त असाइनमेंट ऑपरेटर

संक्षिप्त असाइनमेंट ऑपरेटर, किसी वेरिएबल पर अंकगणित की क्रिया करने और उसी वेरिएबल में नई वैल्यू असाइन करने वाले कोड को छोटे रूप में लिखने का तरीका हैं। उदाहरण के लिए, दो वेरिएबल x और y लीजिए। तब x += y, x = x + y के बराबर है। अक्सर इसमें वेरिएबल y की जगह कोई संख्या इस्तेमाल की जाती है। बाकी 5 क्रियाएँ भी इसी तरह की जा सकती हैं।

let x = 5;
x += 25; // x is now 30

let y = 31;
y %= 3; // y is now 1

निर्देश

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

Note

ratePerHour वेरिएबल और dayRate फंक्शन का संबंध पैसे से है। इनमें समय की एक इकाई के लिए पैसा मापा जाता है: क्रमशः घंटे और दिन।

1. प्रति घंटा दर दी हो तो दिन की दर निकालिए

एक ग्राहक फ्रीलांसर से संपर्क करके उसकी दरों के बारे में पूछता है। फ्रीलांसर बताता है कि वह दिन में 8 घंटे काम करता है। लेकिन फ्रीलांसर को इस प्रोजेक्ट की सिर्फ प्रति घंटा दर पता है। प्रति घंटा दर दी हो, तो दिन की दर का अंदाज़ा लगाने में उसकी मदद कीजिए।

dayRate(89);
// => 712

दिन की दर को पूर्णांकित करने या किसी "तय" परिशुद्धता में बदलने की ज़रूरत नहीं है।

2. तय बजट दिया हो तो काम के दिनों की संख्या निकालिए

एक और दिन, एक प्रोजेक्ट मैनेजर फ्रीलांसर को तय बजट वाले एक प्रोजेक्ट पर काम करने का प्रस्ताव देता है। तय बजट और फ्रीलांसर की प्रति घंटा दर दी हो, तो बजट खत्म होने तक वह कितने दिन काम करेगा, यह निकालने में उसकी मदद कीजिए। नतीजे को निकटतम पूर्ण संख्या तक नीचे की ओर पूर्णांकित करना ज़रूरी है।

daysInBudget(20000, 89);
// => 28

3. बड़े प्रोजेक्टों के लिए छूट वाली दर निकालिए

अक्सर फ्रीलांसर के ग्राहक उसे कई महीनों तक चलने वाले प्रोजेक्टों के लिए काम पर रखते हैं। ऐसे मामलों में फ्रीलांसर हर पूरे महीने पर छूट देने का फैसला करता है, और बाकी दिनों का बिल दिन की दर से बनता है। आपके बेहतरीन वर्क-लाइफ बैलेंस का मतलब है कि आप हर कैलेंडर महीने में सिर्फ 22 दिन काम करते हैं, इसलिए हर महीने में 22 दिनों का बिल बनता है। ऐसे प्रोजेक्टों की लागत का अंदाज़ा लगाने में उसकी मदद कीजिए, जब प्रति घंटा दर, प्रोजेक्ट में जितने दिनों का बिल बनता है उनकी संख्या, और महीने की छूट दर दी गई हो। छूट हमेशा एक संख्या के रूप में दी जाती है, जहाँ 42% का मतलब 0.42 होता है। नतीजे को निकटतम पूर्ण संख्या तक ऊपर की ओर पूर्णांकित करना ज़रूरी है।

priceWithMonthlyDiscount(89, 230, 0.42);
// => 97972
GitHub के ज़रिए संपादित करें यह लिंक एक नई विंडो या टैब में खुलता है
JavaScript Exercism

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

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