Searching...
Friday, 3 March 2017

Variables 2

07:09
आज Hindi के इस C/C++ programming language tutorial को आगे बढ़ाते हुए हम variables और expressions के बारे में थोडा और जानेंगे. 
चलिए पिछले सारे C/C++ hindi tutorial के महत्वपूर्ण बिन्दुओं को एक बार फिर से दोहराते हुए आगे बढ़ते है !
  1. Compiler - जो C/C++ में लिखे गए program को मशीनी language में परिवर्तित कर देता है. compile करने के लिए हम Linux में gcc filename.c terminal में लिखते है जो उसी फोल्डर मेंa.out नाम से एक binary फाइल बना देता है. अगर a.out पहले से वहां है तो ये उसे बदल (replace) कर देगा! Windows पर भी यही प्रक्रिया है जो कि build एवं run करने पर background में चलती है!
  2. main() function - जहाँ से C का program चलना (execute) होना शुरू होता है. printf() function जो अपने अन्दर लिखे गए expression को बाहर terminal पर print कर देता है. main एवं printf के अन्दर लिखे जाने वाले expressions के बारे में हम आगे विस्तार में अध्ययन करेंगे.
  3. Variable declare करना एवं define करना (example int x =10) - जैसा कि पिछले लेख में हमने देखा किसी भी variable के 3 भाग होते हैं, पहला उसका datatype, जैसे की यहाँ integer. दूसरा उसका नाम जैसे कि x एवं तीसरा उसका मान (value), जो कि उपरोक्त उदहारण में 10 है.

अब अगर हम केवल int x; लिखते है, तो इसका मतलब ये है कि हमने इसे declare तो कर दिया है पर इसे अभी define नहीं किया है अर्थाथ x को अभी तक कोई value नहीं दी है. ध्यान रहे जब तक हम किसी भी variable को value नहीं दे देते हमे उसे उपयोग में नहीं लेना चाहिए क्यूंकि compiler x के लिए memory तो निर्धारित (allocate) कर देगा मगर उस memory में पहले से भी कुछ हो सकता है, जो कि वांछनीय(desirable) नही है. सामान्यतया किसी भी function या program के शुरू में हम variables को declare करते है. इसके बाद इसे उपयोग में लेने से पहले उसे उचित मान देते है. मान देने के लिए = चिन्ह से पहले variable का नाम एवं इसके बाद में उसकी value लिखते है. जब हम किसी variable को कोई मान देते है तो execute होते वक़्त वह value निर्धारित memory में लिख दी जाती है.

computer जैसे सारे उपकरणों में सामान्यतया मेमोरी sequential bytes में विभाजित होती है. जिसे हम address कर सकते है. पहली byte का एड्रेस 0 होता है. दूसरी का 1 .. इसी तरह आगे की सारी memory address की जाती है. 1 byte में 8 bits होते है. जहाँ bits किसी भी value को store करने की सबसे छोटी इकाई है. 1 bit में हम या तो 0 store कर सकते हैं या फिर 1.

C/C++ computer programming language में बहुत सारे datatypes है उनमे से मुख्यतया निम्न उपयोग में आते है,
  1. int - जो कि एक पूर्णांक (integer) मान लेता है. जिनमे हम −2,147,483,648 से 2,147,483,647 (range) तक की कोई भी value store कर सकते है.
  2. float - जो कि एक दशमलव (real number) मान लेता है जैसे कि 1.2, .002 etc.
  3. char - जो कि एक अक्षर(character जैसे a,b ...) को store करता है. Computer हर अक्षर को number की तरह store करता है. जैसे की अगर हम a store करना चाहते हैं तो Computer 97 store करेगा. ASCII table की सहायता से आप यह जान सकते हैं की किस character के लिए Computer कौन सा number store करता है.
  4. इन datatypes के कई महत्वपूर्ण रूपांतरण (variant) भी है, जैसे कि -
  5. double - ये float का variant है जो कि ज्यादा शुद्धता से मान ग्रहण कर सकता है. इसलिए यह float से ज्यादा memory लेता है.
  6. short int - ये int का variant है, इसका परिसर( −32,768 से 32,767 ) है, जोकि int से कम है इसलिए यह int से कम memory लेता है..
  7. long int - ये भी int का ही एक variant है. जो कि 32 bit architecture machine पर 4 byte एवं 64 bit architecture machine पर 8 bytes लेता है. एवं इसी के अनुसार इसका परिसर int से बड़ा ( −9,223,372,036,854,775,808 से +9,223,372,036,854,775,807 ) या बराबर होता है. इसी तरह long double भी है.
  8. unsigned int - ये int का एक ऐसा variant है जो negative value नहीं लेता है. इसी कारन उन्ही 4 bytes में positive परिसर (range) बढ़ कर 0 से +4,294,967,295 हो जाता है. इसी तरह unsigned long int एवं unsigned short int भी है.

हमने पिछले topic(C/C++ hindi tutorial) में एक program लिखा था जो कि दिए गये दर (rate), समय (time) एवं मूल्य (price) के लिए ब्याज (interest) कि गणना करता है. परन्तु हमने उस code में दर, समय एवं मूल्य तीनो int लिए है. क्या ऐसा नहीं हो सकता कि हमे दर दशमलव में दी हो? या फिर समय int ना हो? जरुर हो सकता है! तो हमारे code को उस परिस्थिति में भी काम करवाने के लिए निम्न code से replace कर दें.
#include 

int main() {

float price;
float rate ;
float time;

price = 1000.0 ;
rate = 5.3;
time = 3.5;

float interest;
interest = price*rate*time/100.0;

printf("Price is %f, Rate is %f, time is %f, calculated interest is %f", price, rate, time, interest);

scanf("%s");
return 1;
}
अगर हम ध्यान दे तो ये पायेंगे कि यहाँ printf में हमने %d की जगह %f का उपयोग किया है, %d int को print करने के लिए उपयोग में आता है एवं %f float value को.
Note: अगर आप ऊपर दिए गए C/C++ program को Linux में Run करे तो अंत में यह Segmentation Fault error देगा, जिसे अभी के लिए ignore कर दें उसका कारन और हटाने का तरीका बाद में बताया जायेगा जब हम scanf के बारे में बात करेंगे.

1 comments: