ट्रैक
/
Java
Java
/
अभ्यास
/
कारें, इकट्ठी हों!
कारें, इकट्ठी हों!

कारें, इकट्ठी हों!

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

परिचय

संख्याएँ

Java में दो तरह की संख्याएँ होती हैं:

  • पूर्णांक: वे संख्याएँ जिनके दशमलव चिह्न के बाद कोई अंक नहीं होता (पूर्ण संख्याएँ)। जैसे -6, 0, 1, 25, 976 और -500000।
  • दशमलव संख्याएँ: वे संख्याएँ जिनके दशमलव चिह्न के बाद शून्य या उससे अधिक अंक होते हैं। जैसे -20.4, 0.1, 2.72, 16.984025 और 1024.0।

Java में सबसे आम संख्यात्मक टाइप int और double हैं। int एक 32-बिट पूर्णांक है और double एक 64-बिट दशमलव संख्या।

अंकगणित के लिए सामान्य अंकगणितीय ऑपरेटर इस्तेमाल किए जाते हैं। संख्याओं की तुलना सामान्य संख्यात्मक तुलना ऑपरेटरों (जैसे 5 > 4 और 4 <= 5) तथा समानता (==) और असमानता (!=) ऑपरेटरों से की जा सकती है।

Java में संख्यात्मक कन्वर्ज़न दो तरह के होते हैं:

  1. इम्प्लिसिट कन्वर्ज़न: इसमें कोई डेटा नष्ट नहीं होता और अतिरिक्त सिंटैक्स लिखने की ज़रूरत नहीं पड़ती।
  2. एक्सप्लिसिट कन्वर्ज़न: इसमें डेटा नष्ट हो सकता है और कास्ट के रूप में अतिरिक्त सिंटैक्स लिखना पड़ता है।

चूँकि int में double से कम परिशुद्धता होती है, इसलिए int को double में बदलना सुरक्षित है और यह एक इम्प्लिसिट कन्वर्ज़न है। लेकिन double को int में बदलने पर डेटा नष्ट हो सकता है, इसलिए वहाँ एक्सप्लिसिट कन्वर्ज़न की ज़रूरत पड़ती है।

if-else स्टेटमेंट

if-then स्टेटमेंट

Java में सबसे बुनियादी कंट्रोल फ्लो स्टेटमेंट if-then स्टेटमेंट है। इस स्टेटमेंट का इस्तेमाल कोड के किसी हिस्से को तभी चलाने के लिए किया जाता है जब कोई खास शर्त true हो। if-then स्टेटमेंट if क्लॉज़ की मदद से बनाया जाता है:

class Car {
    void drive() {
        // the "if" clause: the car needs to have fuel left to drive
        if (fuel > 0) {
            // the "then" clause: the car drives, consuming fuel
            fuel--;
        }
    }
}

ऊपर के उदाहरण में, अगर कार में ईंधन नहीं बचा है, तो Car.drive मेथड को कॉल करने पर कुछ भी नहीं होगा।

if-then-else स्टेटमेंट

if-then-else स्टेटमेंट तब चलने का एक वैकल्पिक रास्ता देता है जब if क्लॉज़ की शर्त का मान false होता है। यह वैकल्पिक रास्ता if क्लॉज़ के बाद आता है और else क्लॉज़ की मदद से बनाया जाता है:

class Car {
    void drive() {
        if (fuel > 0) {
            fuel--;
        } else {
            stop();
        }
    }
}

ऊपर के उदाहरण में, अगर कार में ईंधन नहीं बचा है, तो Car.drive मेथड को कॉल करने पर कार को रोकने के लिए दूसरा मेथड कॉल किया जाएगा।

if-then-else स्टेटमेंट else if क्लॉज़ की मदद से कई शर्तों के साथ भी काम करता है:

class Car {
    void drive() {
        if (fuel > 5) {
            fuel--;
        } else if (fuel > 0) {
            turnOnFuelLight();
            fuel--;
        } else {
            stop();
        }
    }
}

ऊपर के उदाहरण में, ईंधन 5 से कम या उसके बराबर होने पर कार चलेगी, लेकिन ईंधन की लाइट जल जाएगी। जब ईंधन 0 तक पहुँच जाता है, तो कार चलना बंद कर देगी।

निर्देश

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

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

  • 1 से 4: 100% सफलता दर।
  • 5 से 8: 90% सफलता दर।
  • 9: 80% सफलता दर।
  • 10: 77% सफलता दर।

आपके सामने दो काम हैं।

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

असेंबली लाइन की मौजूदा गति और सफलता दर को ध्यान में रखते हुए उसकी प्रति घंटा उत्पादन दर निकालने के लिए CarsAssemble.productionRatePerHour() मेथड लागू कीजिए:

CarsAssemble.productionRatePerHour(6)
// => 1193.4

ध्यान रखिए कि लौटाई गई वैल्यू एक double होती है।

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

यह गिनने के लिए कि हर मिनट कितनी काम करने वाली कारें बनती हैं, CarsAssemble.workingItemsPerMinute() मेथड लागू कीजिए:

CarsAssemble.workingItemsPerMinute(6)
// => 19

ध्यान रखिए कि लौटाई गई वैल्यू एक int होती है।

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

कारें, इकट्ठी हों! शुरू करने के लिए तैयार हैं?

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