Saturday, April 11, 2009

सीखिए सी - 11 : आंकड़ों के प्रकार

कंप्यूटर सभी आंकड़ों को शून्य (0) और एक (1) के क्रम में अपनी स्मृति में संचित करता है, पर हम इन 0 और 1 की कड़ियों को विभिन्न रूपों में समझते हैं, जैसे वर्ण के रूप में, अंक के रूप में, चित्र के रूप में आदि। इसलिए किसी प्रोग्राम में किसी राशि का नामकरण करते समय कंप्यूटर को यह बताना जरूरी होता है कि उस नाम से जानी जानेवाली राशि किस प्रकार की है। सी में आंकड़े मुख्यतः निम्नलिखित प्रकार के होते हैं:-


प्रकारसूचक शब्दविस्तारउदाहरण
वर्णchar8 bitsa,b,A,1,&,%,9,>,?
पूर्णांकint16 bits4,9,80,789
दीर्घ पूर्णांकlong32 bits1000000,786589, 870987
दशमलवfloat32 bits8.5,89.098, 12.000000


अतः किसी राशि के पूर्ण नामकरण के लिए उसके प्रकार और उसके नाम, इन दो चीजों की आवश्यकता रहती है।

उदाहरण:

char naam;
int roll_number;
float kul_ank;

यहां naam किसी राशि का नाम है, जिसका प्रकार है char (यानी वर्ण), roll_number पूर्णांक (int) प्रकार की राशि है और kul_ank दशमलव अंक (float) वाली राशि है। char, int और float सूचक शब्दों को देखकर कंप्यूटर समझ जाता है कि इन राशियों के लिए उसे अपनी स्मृति में कितनी जगह आरक्षित करनी है। वह naam के लिए 8 बिट, roll_number के लिए 16 बिट और kul_ank के लिए 32 बिट की स्मृति आरक्षित कर देगा।

इस तरह, किसी राशि को नाम देते समय उसके प्रकार को भी स्पष्ट करना आवश्यक होता है। तभी कंप्यूटर अपनी स्मृति में उस राशि के पूर्ण रूपांकन के लिए आवश्यक स्थान आवंटित कर सकेगा। इसके बाद कंप्यूटर उस स्थान के पते को राशि के नाम के साथ जोड़ देगा। यह हो जाने पर प्रोग्राम का संकलन होते समय जहां-जहां उस राशि का नाम आएगा, वहां उस नाम के साथ जुड़े पते पर कंप्यूटर की स्मृति में जो भी आंकड़े हों वह आ जाएगा।

राशियों के लिए आंकड़ों का प्रकार चुनते समय सही प्रकार चुनने की ओर विशेष ध्यान देना चाहिए। ऐसा आंकड़ा प्रकार चुनना चाहिए जो उस राशि के तहत आनेवाले आंकड़ों के लिए पर्याप्त हो।

उदाहरण के लिए int डेटा प्रकार में 32,000 से अधिक बड़ी संख्याएं नहीं समा सकती हैं। यदि किसी राशि का मान 32,000 से अधिक होने की संभावना हो, उसे int न घोषित करके long घोषित करना चाहिए जिसमें 32,000 से कहीं अधिक बड़ी संख्याएं समा सकती हैं।

इसकी विपरीत स्थिति भी ध्यान देने योग्य है। यदि किसी राशि में 32,000 से कहीं कम वाले मान ही होनेवाले हों, तो इस राशि को long घोषित करने से कोई अतिरिक्त प्रयोजन नहीं सिद्ध होगा। इसके बजाए उसे int ही घोषित करना चाहिए। उदाहरण के लिए roll_number राशि को लें जिसमें आप किसी कक्षा के छात्रों के रोल नंबर को संचित करना चाहते हैं। अब कक्षा में छात्रों की संख्या 40, 50 या अधक से अधिक 100 तक जा सकती है। इसलिए इस राशि के लिए int प्रकार पर्याप्त है। इसे long घोषित करने की कोई आवश्यकता नहीं है। long घोषित करने से भी आपका प्रोग्राम ठीक तरह से चलेगा, लेकिन वह अधिक स्मृति खपाएगा। हमने ऊपर देखा कि int के लिए कंप्यूटर में 16 बिट का स्थान उपयोग किया जाता है, जबकि long के लिए उससे दुगना, यानी 32 बिट। इसलिए यदि आप roll_number को int के बजाए long घोषित करें, तो आपके प्रोग्राम में इस राशि के लिए दुगनी स्मृति की आवश्यकता पड़ेगी। अच्छे प्रोग्राम वे माने जाते हैं जो कम से कम संसाधनों का उपयोग करके, कम से कम समय में चलें और वांछित परिणाम दें।

इसी प्रकार वेतन, औसत अंक, आदि के लिए int या long प्रकार की राशियां ठीक नहीं रहेंगी, क्योंकि ये दशमलव प्रकार की संख्याएं होंगी। इनके लिए float प्रकार की आवश्यकता है। इन्हें int या long प्रकार घोषित करने पर इनका केवल पूर्णांक वाला अंश ही संचित होगा और दशमलव वाला अंश खो जाएगा। इससे आपका प्रोग्राम सही नतीजा नहीं दे पाएगा।

No comments:

Post a Comment