ट्रैक
/
C++
C++
/
अभ्यास
/
ब्याज दिलचस्प है
ब्याज दिलचस्प है

ब्याज दिलचस्प है

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

परिचय

लूप

किसी लॉजिक को बार-बार चलाने के लिए लूप का उपयोग किया जाता है। सबसे आम दो प्रकार हैं while loop (जो अनिश्चित बार चलता है) और for loop (जो निश्चित, यानी गिनकर तय की गई बार चलता है)। एक for each लूप भी होता है, जो आगे के किसी कॉन्सेप्ट में आएगा।

सामान्य सिंटैक्स

for loop एक हेडर और एक कोड ब्लॉक से बना होता है। कोड ब्लॉक में लूप के अंदर का कोड होता है, जो कर्ली ब्रैकेट में लपेटा रहता है। हेडर में 3 हिस्से होते हैं, जो सेमीकोलन ; से अलग किए जाते हैं: इनिट-स्टेटमेंट, शर्त, और एक और एक्सप्रेशन। इनमें से हर एक खाली भी हो सकता है।

for (init_statement; condition; expression) {
  some_statement;
}
  • init_statement वाला हिस्सा ऐसा कोड है जो लूप शुरू होने से पहले सिर्फ एक बार चलता है।
  • शर्त वाला हिस्सा एक ऐसा एक्सप्रेशन होना चाहिए जिसका परिणाम boolean हो, और जो यह तय करता हो कि लूप कब रुकना चाहिए। जब तक इस शर्त का परिणाम true रहता है, लूप के अंदर का कोड चलता रहता है। जैसे ही इस एक्सप्रेशन का परिणाम false होता है, लूप का कोई और इटरेशन नहीं चलता।
  • एक्सप्रेशन वाला हिस्सा ऐसा कोड है जो हर इटरेशन के अंत में चलता है।

while loop तब तक अपने अंदर का कोड चलाता रहता है जब तक उसकी शर्त की जाँच का परिणाम true रहता है। नीचे दिया गया कोड दिखाता है कि for को while loop में कैसे बदला जाए।

init_statement;
while(condition) {
    some_statement;
    expression;
}

बीच में: बढ़ाना और घटाना

लूप के साथ काम करते समय अक्सर काउंटर वेरिएबल में 1 जोड़ना या 1 घटाना पड़ता है, जो इटरेशन का हिसाब रखता है। यह इतना आम है कि बढ़ाने और घटाने की क्रियाओं के लिए खास ऑपरेटर हैं: ++ और --।

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

int a{3};
int b{--a};
// b is 2, a is now 2
int c{a++};
// c is 2, a is now 3

for लूप: एक उदाहरण

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

int sum{0};
for (int i{1}; i < 10; ++i) {
  sum += i;
}

यह लूप 1 से 9 तक की संख्याओं का जोड़ करता है (9 भी शामिल है)।

break और continue

लूप के अंदर के कोड में आप break कीवर्ड का उपयोग करके लूप को पूरी तरह रोक सकते हैं:

int sum{2};
while(true) {
    sum *= 2;
    if (sum > 1000)
        break;
}
// sum is now 1024

इसके उलट, continue कीवर्ड सिर्फ मौजूदा इटरेशन को रोकता है और अगले इटरेशन के साथ आगे बढ़ जाता है:

int equal_sum{0};
for (int i{1}; i < 7; ++i) {
  if  (i%2 == 1) {
    continue;
  }
  equal_sum += i;
}
// equal_sum is now 12
Note

लूप का लॉजिक समझना आम तौर पर तब आसान होता है जब break और continue का इस्तेमाल कम से कम हो या बिल्कुल न हो। दोनों कीवर्ड कोड के कुछ हिस्सों को छोड़ देते हैं, जिससे कोड को समझते चलना अक्सर और मुश्किल हो जाता है।

निर्देश

इस अभ्यास में आप बचत खातों के साथ काम करेंगे। हर साल आपके बचत खाते का बैलेंस उसकी ब्याज दर के आधार पर अपडेट किया जाता है। आपका बैंक आपको कितनी ब्याज दर देता है, यह इस पर निर्भर करता है कि आपके खाते में कितनी रकम है (यानी उसका बैलेंस):

  • 0 डॉलर से कम बैलेंस पर 3.213% (बैलेंस और ज़्यादा नेगेटिव हो जाता है)।
  • 0 डॉलर या उससे अधिक और 1000 डॉलर से कम बैलेंस पर 0.5%।
  • 1000 डॉलर या उससे अधिक और 5000 डॉलर से कम बैलेंस पर 1.621%।
  • 5000 डॉलर या उससे अधिक बैलेंस पर 2.475%।

आपके चार कार्य हैं, और हर कार्य बैलेंस तथा उसकी ब्याज दर से जुड़ा है।

1. ब्याज दर की गणना कीजिए

interest_rate फंक्शन बनाइए, जो दिए गए बैलेंस के आधार पर ब्याज दर निकालता है:

interest_rate(200.75);
// => 0.5

2. ब्याज की गणना कीजिए

yearly_interest फंक्शन बनाइए, जो दिए गए बैलेंस के आधार पर ब्याज निकालता है:

yearly_interest(200.75):
// => 1.003750

3. सालाना बैलेंस अपडेट की गणना कीजिए

annual_balance_update फंक्शन बनाइए, जो ब्याज दर को ध्यान में रखते हुए सालाना बैलेंस अपडेट निकालता है:

annual_balance_update(200.75);
// => 201.75375

4. मनचाहा बैलेंस पाने तक लगने वाले सालों की गणना कीजिए

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

double balance {200.75};
double targetBalance {214.88};
years_until_desired_balance(balance, targetBalance)
// => 14

ध्यान दीजिए कि लौटाई जाने वाली वैल्यू एक int होती है।

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

ब्याज दिलचस्प है शुरू करने के लिए तैयार हैं?

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