C++ में संख्याओं के जो डेटा टाइप पहले से मौजूद हैं, उन्हें दो हिस्सों में बाँटा जा सकता है: पूर्णांक और दशमलव संख्याएँ।
पूर्णांक ऐसी संख्याएँ होती हैं जिनमें दशमलव बिंदु नहीं होता, जैसे 0, 691 या -2.
दशमलव संख्याओं में दशमलव बिंदु होता है, जैसे 6.02214076, 0.1 या -1.616.
नीचे दिया गया उदाहरण चार अलग-अलग वेरिएबल घोषित करने और उन्हें शुरुआती वैल्यू देने का तरीका दिखाता है
int m_morales{9241}; // base 10: 0-9
int a_apaec{0x24CD}; // base 16: 0-9 and A-F
int m_gargan{0b10010000011001}; // base 2: 0-1
int b_reilly{022031}; // base 8: 0-7
// Leading with a 0 not the letter o.
जब आप किसी int वेरिएबल को कोई वैल्यू असाइन करते हैं, तो आप सीधे एक लिटरल से ऐसा कर सकते हैं.
लिटरल कोड में सीधे लिखी गई संख्या होती है, जैसे 9241.
संख्या लिखने के अलग-अलग आधारों के लिए अलग-अलग पूर्णांक लिटरल होते हैं.
आधार 10 वाले पूर्णांक लिटरल सबसे आम हैं और इनमें 0 से 9 तक के अंक इस्तेमाल होते हैं.
0x जैसा कोई खास प्रिफिक्स लगाकर दूसरे आधार भी इस्तेमाल किए जा सकते हैं.
ऊपर का उदाहरण संख्या 9241 को उसके चारों रूपों और प्रिफिक्सों के साथ दिखाता है.
सभी वेरिएबल को एक ही वैल्यू दी गई है.
अलग-अलग निरूपण प्रणालियों के बारे में और जानने के लिए एक छोटा ट्यूटोरियल देखिए.
पढ़ने में आसानी के लिए आप अंकों को अलग करने हेतु अपॉस्ट्रॉफी लगा सकते हैं.
9'241 और 0b0100'100'0001'1001 या 92'4'1 एक ही हैं.
दशमलव संख्याओं के लिटरल दो तरह के होते हैं.
0.0024 लिखने के अलावा आप इसका वैज्ञानिक संकेतन 2.4e-3 भी इस्तेमाल कर सकते हैं.
सबसे आम दशमलव संख्या टाइप double है.
एक्सप्रेशन बनाने के लिए C++ में +, -, *, /, ( और ) तथा % इस्तेमाल किए जा सकते हैं.
दो पूर्णांकों के बीच किए गए ऑपरेशन का परिणाम भी एक पूर्णांक ही होता है.
5 / 2 का परिणाम 2 मिलेगा.
जब इनमें से कोई एक टाइप दशमलव संख्या का हो, तो परिणाम भी दशमलव संख्या ही होगा.
5.0 / 2 और 5 / 2.0 का परिणाम 2.5 मिलेगा.
% शेष ऑपरेटर है और पूर्णांक विभाजन का शेष देता है: 5%3 का परिणाम 2 है.
असाइनमेंट ऑपरेटर एक लिटरल की मदद से किसी वेरिएबल को वैल्यू देता है. यह हमेशा दाएँ से बाएँ होता है, कभी उलटा नहीं.
int length = 5;
int width = 2;
length = width;
यहाँ पूर्णांक वैल्यू 5 को length वेरिएबल को असाइन किया गया है.
फिर पूर्णांक वैल्यू 2 को width वेरिएबल को असाइन किया जाता है.
अंत में width की वैल्यू length वेरिएबल में कॉपी हो जाती है और पहले वाली वैल्यू 5 खत्म हो जाती है.
यह भी ध्यान रखिए कि असाइनमेंट ऑपरेशन के समय हम width की वैल्यू केवल length में असाइन कर रहे होते हैं.
इसलिए अगर बाद में width की वैल्यू बदल भी जाए, तो length की वैल्यू पर उसका कोई असर नहीं पड़ेगा.
असाइनमेंट ऑपरेटर को दूसरे ऑपरेटरों (अंकगणितीय और बिटवाइज़) के साथ जोड़ा जा सकता है; इन्हें compound assignment ऑपरेटर कहते हैं: +=, -=, *=, /=, %=.
ये ऑपरेटर वेरिएबल की मौजूदा वैल्यू पर कोई ऑपरेशन करके उसे बदल देते हैं.
// we start with 0 people
int people{};
// we need 0 eggs
int eggs{};
// two people joined:
people += 2;
// people is now 2
// let's add 3 eggs per person
eggs += 3 * people;
// eggs is now 6
people और eggs वेरिएबल को शुरू में 0 वैल्यू दी गई है.
फिर हम people वेरिएबल की मौजूदा वैल्यू 0 में पूर्णांक वैल्यू 2 जोड़ते हैं और परिणाम को वापस people में असाइन कर देते हैं.
अब people की वैल्यू 2 हो जाती है.
इसके बाद हम हर व्यक्ति के लिए 3 अंडे जोड़ते हैं, यानी कुल 6 अंडे.
अब इस 6 को eggs वेरिएबल की मौजूदा वैल्यू 0 में जोड़कर वापस eggs में असाइन कर दीजिए.
अब eggs की वैल्यू 6 हो जाएगी.
इसके बराबर एक्सप्रेशन ये होंगे: people = people + 2 और eggs = eggs + (3 * people).
इस अभ्यास में आप ऐसा कोड लिखेंगे जिससे एक फ्रीलांसर प्रोजेक्ट मैनेजर से बात कर सके। आपको कुछ छोटे फंक्शन बनाने हैं जिनसे दैनिक और मासिक दरें जल्दी से निकाली जा सकें, चाहें तो दी गई छूट के साथ।
सबसे पहले हम फ्रीलांसर और प्रोजेक्ट मैनेजर के बीच कुछ नियम तय करते हैं:
कभी-कभी फ्रीलांसर अपनी दैनिक दर पर छूट देता है (जैसे अपने सबसे वफादार ग्राहकों या गैर-लाभकारी ग्राहकों के लिए)।
छूट को प्रतिशत दर्शाने वाली भिन्नात्मक संख्याओं के रूप में दर्शाया जाता है, जैसे 25.0 (25%)।
daily_rate नाम का एक फंक्शन बनाइए जो पैरामीटर के रूप में दी गई प्रति घंटा दर से दैनिक दर निकाले।
अनुबंध के अनुसार एक दिन में 8 बिल योग्य घंटे होते हैं।
daily_rate(60)
// => 480.0
लौटाई गई दैनिक दर का टाइप double होना चाहिए।
छूट के बाद की कीमत निकालने के लिए apply_discount फंक्शन बनाइए।
इसे दो पैरामीटर लेने चाहिए: मूल कीमत और प्रतिशत में छूट की दर।
apply_discount(150, 10)
// => 135.0
लौटाई गई वैल्यू हमेशा double टाइप की होनी चाहिए, किसी भी तरह से पूर्णांकित नहीं।
छूट के बाद की मासिक दर निकालने के लिए monthly_rate फंक्शन बनाइए।
इसमें दो पैरामीटर होंगे: प्रति घंटा दर और प्रतिशत में छूट।
monthly_rate(77, 10.5)
// => 12130
लौटाई गई मासिक दर को निकटतम पूर्णांक तक ऊपर की ओर पूर्णांकित (सीलिंग) किया जाना चाहिए।
days_in_budget नाम का एक फंक्शन बनाइए जो बजट, प्रति घंटा दर और छूट लेता है, और यह निकालता है कि उस बजट में कितने पूरे कार्यदिवस का काम आ सकता है।
days_in_budget(20'000, 80, 11.0)
// => 35
लौटाई गई दिनों की संख्या को नीचे की ओर पूर्णांकित (फ्लोर) किया जाना चाहिए।
Exercism पर साइन अप कीजिए और C++ को 19 कॉन्सेप्ट100 अभ्यास तथा असली इंसानों से मिलने वाली मेंटरिंग के साथ सीखिए और उसमें महारत हासिल कीजिए, वह भी बिल्कुल मुफ्त।