सी में बेसिक प्रोग्रामिंग (Basic Programming in C)
꧁ Digital Diary ༒Largest Writing Community༒꧂
अभिव्यक्ति को व्यक्त करने हेतु, संदेश प्रेषित अथवा संवाद स्थापित करने हेतु किसी माध्यम की आवश्यकता होती है। इस प्रकार के किसी माध्यम को हम भाषा कहते हैं। भाषाएँ कई प्रकार की होती हैं तथा यह भौगोलिक परिस्थितियों के अनुरुप बदलती रहती हैं।
कम्प्यूटर के अविष्कार के साथ कम्प्यूटर से सम्बन्ध स्थापित करने हेतु भाषा का अविष्कार किया गया। आवश्यकता के अनुरुप स्नैः-स्नैः भाषा समृद्ध होती गयी तथा मशीन लैंग्वेज से असेम्बली लैंग्वेज होते हुए आज कम्प्युटर के साथ सम्बन्ध स्थापित करने हेतु हम किसी साधारण भाषा से मिलती-जुलती हाई लेवेल लैंग्वेज का उपयोग करते हैं।
वाक्यों को गढ़ने की विधि को हम सिन्टैक्स (Syntax) तथा उनकी अभिव्यक्ति को सिमान्टिक्स (Symantics) कहते हैं। अक्षरों के समूह को शब्द तथा शब्दों के समूह को, जिनका कुछ अर्थ हो, वाक्य कहा जाता है। शब्द दो प्रकार के होते है-सार्थक तथा निरर्थक।
सभी प्रोग्रामिंग भाषाओं को दो वर्गों में विभाजित किया गया है. हाई– लेवल लैंग्वेजेस (High-Level Languages) और लो-लेवल लैंग्वेजेस (Low-Level Languages) |
"बेसिक कम्बाईन्ड प्रोग्रामिंग लैंग्वेज' (बीसीपीएल) ["Basic Combined Programming Language' (BCPL)] कैम्ब्रिज यूनिवार्सिटी में माट्रिन रिचार्डस द्वारा विकसित किया गया था। उसी समय ए टी एण्ड टी के बेल लेब के केन थॉम्पसन द्वारा बी (B) नामक भाषा को विकसित किया जा रहा था। डेन्नीस रिच्ची ने बी और बीसीपीएल की विशेषताओं का उपयोग करते हुए उसमें निज के द्वारा विकसित कोड जोड दिया और सी भाषा का विकास किया। इसलिए सी को बी भाषा का उत्तराधिकारी भी कहा जाता है। युनिक्स ऑपरेटिंग सिस्टम के साथ यह विकसित हुआ। सी एम एस डॉस ऑपरेटिंग सिस्टम पर भी उपलब्ध है।
सी में हाई–लेवल लैंग्वेज की विशेषताओं के साथ-साथ असेम्बली लैंग्वेजेस की क्षमता का भो मिश्रण है। अतः यह दोनों प्रकार के सॉफ्टवेयर यथा सिस्टम सॉफ्टवेयर तथा एप्लीकेशन पैकेजेस को लिखने के लिए उपयुक्त है।
सी में लिखे गये प्रोग्राम अधिक सार्थक तथा तीव्र गति से कियान्वित किये जाने योग्य होते हैं। यह सम्भव हो सका है सी में उपलब्ध डाटा टाइप की समृद्ध ऋखला तथा प्रभावी ऑपरेटरों के कारण यह बेसिक से कई गुना तेज है उदाहरण के लिए. 0 से 15000 तक के वेरियबल्स को सृजित करने हेतु सी में लगभग 1 सेकेन्ड लगता है जबकि बेसिक में 50 सेकेन्डस से अधिक लगता है।
सी अधिक सुवाह्य है। इसका अर्थ यह है कि एक कम्प्यूटर के लिए लिखा गया सी प्रोग्राम को बिना संशोधन अथवा नाममात्र के संशोधनों के पश्चात दूसरे कम्प्यूटर पर चला सकते हैं।
सी की दूसरी मुख्य विशेषता है अपने आप विस्तार करने की क्षमता। सी प्रोग्राम मूल रूप में फंक्शनों का संग्रह है जो सी लायब्रेरी में उपलब्ध होती है। हम अपने फक्शनों को सी लायब्रेरी में जोड़ सकते हैं।
सी प्रोग्रामिंग स्ट्रक्चर (C programming structure)
सी प्रोग्राम में अनिवार्य रूप से निम्नलिखित भाग होते हैं
1. हेडर स्ट्रक्चर (Header structure)
2. फंक्शन Main() [Function Main())
3. प्रोग्राम की शुरूआत (Start of program)
4. वैरियबल डिक्लेरेशन तथा मूल्यों को निर्धारित/आंवटित करना (Variable declaration and assigning values)
5. प्रोग्राम स्टेटमेंट्स अथवा प्रोग्राम बॉडी (Program Statements)
6. प्रोग्राम का अंत (End of program)
सरल सी प्रोग्राम को लिखना (Writing simple C program)
निम्नलिखित उदाहरण सी प्रोग्राम के स्ट्रक्चर को प्रदर्शित करता है।
#include <stdio.h> (1)
#include <conio.h> (2)
/* A sample C program */ (3)
void main() (4)
{ (5)
int a, b, c; (6)
a=2; (7)
b = 3; (8)
c= a*b + (a+b); (9)
printf ("c= %d', c); (10)
getch(); (11)
} (12)
उपरोक्त सरल सी प्रोग्राम स्ट्रक्चर की व्याख्या
लाइन सं० व्याख्या
1,2 हेडर फाइले
3 कमेंट लाईन। 4 मुख्य कंक्शन का नाम तथा उसका प्रकार। फक्शन नाम के साथ छोटे कोष्ठकों का उपयोग किया जाता है। जिसके माध्यम से आरग्यूमेंट्स प्रेषित किया जाता है।
5 खुला कोष्ठक प्रोग्राम के प्रारंभ को सूचित करता है।
6 इटीजर टाईप (प्रकार) के वेरियबल को परिभाषित किया गया है।
7,8,9 वेस्थिबल को निर्धारित किया गया है।
10 printi स्टेटमेंट का उपयोग करके परिकलित मूल्यों को प्रिन्ट किया गया है।
11 एक फंक्शन है।
12 बंद कोष्ठक प्रोग्राम के अंत को सूचित करता है।
शब्दों संख्याओं और अभिव्यक्त्तियों को दर्शाने हेतु उपयोग किये जाने वाले वर्ग, लिपि अधवा प्रतीक (कैरेक्टर) कम्प्यूटर विशेष पर निर्भर करते है फिर भी कुछ करेक्टर ऐसे हैं जो प्राय सभी प्रकार के कम्प्यूटरो, जैसे कि, पर्सनल माईकर, मिनी तथा मेनफेम कम्प्यूटरों में उपयोग किये जा सकते हैं। सी मे कैरेक्टरों को निम्नलिखित वगों में वर्गीकृत किया गया है:
1. वर्ण (ALPHABETS)
2 अंक (DIGITS)
3. विशेष प्रतीक (SPECIAL CHARACTERS)
4. डाईट स्पेसेस (WHITE SPACES)
निम्न कैरेक्टर के सेट को सी में उपयोग किया जाता है।
वर्ण : A to Z, a to z.
अंक : 0 to 9
विशेष प्रतीक
अथवा स्पेशल कैरेक्टर : * + \ " ( = | { # } ~ ; } / % - [ , ? ^ _ ] ' . & blank
हाईट स्पेसेस Blank space, Horizontal Tab, Carriage return, New line, Form feed.
सी में कॉन्स्टेन्ट्स नियत मूल्यों को प्रदर्शित करता है जो प्रोग्राम के निष्पादन पर्यन्त बदलता नहीं है। संख्याओं को न्यूमेरिक कॉन्स्टेन्ट्स कहते है। न्यूमेरिक कॉन्स्टेन्टस के उदाहरण 1,12,24,67-74 है। न्यूमेरिक कॉन्स्टेन्ट्स दो प्रकार के है:
(i) इंटीजर कॉन्स्टेन्ट्स (Integer Constants)
(ii) रिवल कॉन्स्टेन्ट्स (Real Constants)
ये पूर्ण संख्यायें होती है। इंटीजर कान्सटेन्ट्स में आप दशमलव का प्रयोग नहीं कर सकते हैं। ऐसी सख्याएं धनात्मक अथवा ऋणात्मक (Positive or Negative) हो सकती है। 56, 78,-34, 98 तथा 0 कॉन्सटेन्ट्स के उदाहरण है। इंटीजर कॉन्स्टेन्ट्स की रेन्ज (प्रसार) -128 से +127 तक अथवा -256 से +255 अथवा 512 से +511 हो सकती है। निम्नलिखित नियम एक इंटीजर कॉन्स्टेन्टस की रेन्ज दर्शाता है। यदि एक कम्प्यूटर n बिट वर्ड का है तो वैध / स्वीकृत इंटीजर का परिणाम -2n-1 और 2n-1 के मध्य होगा। एक इंटीजर कॉन्स्टेन्ट कम से कम एक अंक का हो सकता है। इसमें दशमलव का उपयोग नहीं होना चाहिए। यह धनात्मक अथवा ऋणात्मक हो सकता है। . यदि किसी चिह्न का उपयोग नहीं किया गया हो तो इंटीजर कॉनटेन्ट घनात्मक होता है। संख्या के अन्तर्गत खाली स्थान या विशेष प्रतीको अथवा चिन्हों कैरेक्टरों को इंटीजर कॉन्स्टेन्ट में अनुमति नहीं है। इटीजर कॉन्सटेन्ट में किती प्रकार के अन्य कैरेक्टर अथवा खाली जगह / रिक्त स्थान (Space) का उपयोग वर्जित है। इंटीजर कॉन्स्टेन्ट्स हेतु स्वीकृत परिणाम -32768 to +32767 है। उदाहरण के लिए 08 अमान्य डेसिमल इंटीजर है। इसे सिफ 8 ही लिखना चाहिए। यदि प्रथम अंक शून्य (0) हो तो. उसे ऑक्टल नंबर के रूप में समझा जाता है। इसी तरह सी भाषा हेक्साडेसिमल संख्याओं को दर्शाता है। हेक्ताडेसिमल संख्या OX या Ox के साथ शुरू होती हैं।
कुछ मान्य और अमान्य इंटीजर कॉन्स्टेन्ट्स को नीचे दर्शाया गया है।
38
0
-127
+789
_________________________________________
कॉन्स्टेन्ट अमान्यता का कारण
_________________________________________
67.99 दशमलव की अनुमति नहीं है।
6,934 कॉमा की अनुमति नहीं है।
45*4 विशेष कैरेक्टरों की अनुमति नहीं है।
432+ संख्या (नंबर) के बाद + चिन्ह का उपयोग
नहीं किया जाना चाहिए।
_________________________________________
सी में चार प्रकार के इंटीजर कॉन्स्टेन्ट्स हैं. वे लॉंग इंटीजर, शॉर्ट इंटीजर, इंटीजर और अनसाईन्ड इंटीजर हैं। ऊपर दिये गये इंटीजर कॉन्स्टेन्ट्स के समस्त नियम अन्य तीनों प्रकारों इंटीजर के लिए भी लागू होता है। शॉर्ट इंटीजर को लॉंग इंटीजर की तरह समझा जाता है।
यदि अधिक परिमाण वाले मूल्यों को प्रदर्शित करना/दर्शाना है. तो लॉंग इंटीजर का उपयोग किया जाता है। यह घनात्मक अथवा ऋणात्मक इंटीजर हो सकता है। यदि कम्प्यूटर का वर्ड लेंथ n है. लॉग इंटीजर के -2n-1 से 2n-1 के मध्य रहेगा। लॉग इंटीजर कॉन्स्टेन्ट्स वर्ण L के साथ समाप्त होता है (अपर केस या लोवर केस)। कुछ मान्य लॉग इंटीजर हैं-5764845L, 879576L और 54835658L.
शार्टइंटीजर छोटे परिमाण वाली संख्याओं को दर्शाने के लिए उपयोग किया जाता है। शार्टइंटीजर को लोंग इंटीजर के रूप में भी परिवर्तित किया जा सकता है। लेकिन शार्टइंटीजर के रूप में घोषणा प्रक्रिया की तेज़ी का सुधार करता है। यदि कम्प्यूटर का वर्ड लेन्थ n है, शॉट इंटीजर की वैल्यू -2n/2-1 से 2n/2-1 -1के मध्य होगा।
इंटीजर मध्यम आकार की संख्याओं को दर्शाता है। यदि कम्प्यूटर का वर्ड लॅन्थ n है. तो इंटीजरों की रेन्ज -2n/2-1से 2n/2-1 -1 होती है।ऋणात्मक संख्याओं को भी दर्शाने के कारण इंटीजर को साईन्ड इंटीजर भी कहा जा सकता है। ऋण चिन्ह (-) की अनुपस्थिति का अर्थ है संख्या धनात्मक इंटीजर है।
_________________________________________
इंटीजर प्रकार (Integer type) दर (Range)
_________________________________________
Short limeger 2n/2-1 to 2n/2-1-1.
Integer 2n-1 to 2n-1-1
Unsigned Integer 0 to 2n-1
Long Interger 2²n-1 to 2-1-1
__________________________________________
इस प्रकार के इंटीजरों को घनात्मक इंटीजरों के लिए उपयोग किया जाता है. यदि कम्प्यूटर की वर्ड लेंन्ध n हो तो, अनसाईन्छ इंटीजर 0 से 2n-1 -1तक के मूल्यों को रख सकता है। अनसाईन्ड इंटीजर कॉन्स्टेन्ट्स को u के साथ उचित स्थिति पर लिखा जाता है (अप्पर केस या लोवर केस)। अनसाईन्ड इंटीजर के उदाहरण 654uऔर 287 U है।
कभी कभी इंटीजर संख्याएँ मात्राओं को प्रस्तुत करने के लिए अपर्याप्त होते हैं क्योंकि दूरी, ऊँचाई, तापमान, मूल्य इत्यादि में है। ऐसी संख्याओं को रियल या फ्लोटिंग पोईन्ट कॉन्स्टेन्ट्स कहा जाता है। 67.34, 4.8923 और 453.0 कुछ रियल कॉन्स्टेन्ट्स के उदाहरण हैं।
निम्नलिखित दो रूपों में से किसी एक में एक रियल कॉन्स्टन्ट को प्रकट किया जा सकता है।
i) फ्राक्शनल फॉर्म (Fractional form)
ii) एक्सपोनेंशियल फॉर्म (Exponential form)
प्राक्शनल फॉर्म में रियल कॉन्स्टन्ट के लिए निम्नलिखित नियम लागू हाता है।
o एक रियल कॉन्स्टन्ट में कम से कम एक डिजिट होना चाहिए।
o एक डेसिमल पाईन्ट अथवा दशमलव होनी चाहिए।
o यह संख्या घनात्मक अथवा ऋणात्मक हो सकती है।
o डिफाल्ट चिन्ह घनात्मक है अथवा कोई भी चिन्ह न हो, तो संख्या को धनात्मक समझना चाहिए।
o खाली स्थान तथा * जैसे विशेष प्रतीकों रियल कॉन्स्टेन्ट में स्दीकाई और मान्य नहीं है।
(i) फ्लोटिंग पॉइन्ट (Floating point)
(ii) डबल (Double
एक जोडे उद्धरण चिन्हों के अंदर संलग्न किसी एक अक्षर को कैरेक्टर कहा जाता है। कम्यूटर में उपयोग किये जाने वाले कैरेक्टर सेंट के आधार पर प्रत्येक कैरेक्टर का एक इंटीजर वैल्यू / मूल्य होता है। साधारणतया ASCII कैरेक्टर सेट का उपयोग होता है। इस कैरेक्टर सेट के अनुसार कुछ कैरेक्टर कॉन्स्टेन्ट्स और उनके इटीजर वैल्यू को नीचे दर्शाया गया है।
____________________________________
कॉन्स्टेन्ट (Constant) मूल्य (Value)
____________________________________
A 65
A 97
Z 90
Z 122
# 35
& 38
_____________________________
_____________________________
कॉन्स्टेन्ट्स अमान्यता का कारण
_____________________________
'A मात्र एक उद्धरण चिन्ह का उपयोग किया गया है। ('A' मान्य है।)
"a' डबल उद्धरण चिन्ह की अनुमति नहीं है।
"INDIA' मात्र एक कैरेक्टर की अनुमति है।
स्ट्रिंग कॉन्स्टेन्ट डबल उद्धरण चिन्ह (" ") से घिरे कैरेक्टरों की पंक्ति ( अनुक्क्रम) है। स्ट्रिंग कॉन्स्टन्ट के कैरेक्टर अक्षर, संख्या, विशेष कैरेक्टर और खाली स्पेस हो सकते हैं।
उदाहरण
"Raju"
"Best of luck"
"3/195, Vijayant Khand"
"C"
वैरियेबल एक प्रतीकात्मक नाम है, एक प्रस्तुतिकरण representation) है। इसके कई रूप अथवा प्रकार हो सकते हैं। जैसा कि इसके अर्थ से ज्ञात होता है. इसकी कोई नियत मूल्य अथवा वैल्यू नहीं होती। इसकी वैल्यू प्रीग्राम के क्रियान्वयन के दौरान बदल सकती है।
प्रायः समस्त भाषाए एक जैसे (सामान्य प्रकार के) वैरियेबल का उपयोग करती हैं। जैसे, इंटीजर, पलोटिंग पॉइन्ट कैरेक्टर तथा स्ट्रिंग। वैरियेबल नामों में मात्र अक्षर, अंक तथा अण्डर स्कोर का उपयोग किया जा सकता है। वैरियेबल नामों की लम्बाई (लेन्थ) ऑपरेटिंग सिस्टम पर आधारित होते हैं। वैरियंबल नामों के सृजन हेतु कुछ नियम बनाये गये हैं. जो नीचे दिये गये हैं।
o वैरियेबल नाम कैरेक्टर डिजिट और अंडरस्कोर(_) का कोई मिश्रण है।
o अंडरस्कोर के अतिरिक्त कौमा खाली स्थान अथवा जगह या विशेष कैरेक्टर को नाम में नहीं जोड़ा जा सकता है।
o वैस्येिबल नाम किसी वर्ण (कैरेक्टर) अथवा (_) से प्रारम्भ हो सकते हैं।
o सी क्रियाएँ, जिनका सी में विशेष अर्थ होता है, वैरियेबल नाम के रूप में उपयोग किया नहीं की जा सकती। अर्थात सी के रिजर्व वर्ड का उपयोग वैरियेबल नाम के रूप में नहीं किया जा सकता।
o एक मान्य वैरियेबल नाम को आईडेन्टिफायर भी कहा जाता है।
उदाहरण
कुछ मान्य वैरियेबल नाम नीचे दिये गये हैं।
P
f_name
average_number
______________________________________
नाम अमान्यता के कारण
______________________________________
7a पहला अक्षर वर्ण नहीं है।
Char सी में कीवर्ड (रिजर्ल्ड वर्ड) है, जिसका विशेष अर्थ है।
1*b*h विशेष कैरेक्टर की अनुमति नहीं है।
first pgm खाली स्थान की अनुमति नहीं है।
________________________________________
वैरियेबल के विभिन्न प्रकार हैं।
1. इंटीजर वैरियेबल्स
i) लॉग इंटीजर
ii) शॉर्ट इंटीजर
iii) अनसाईन्ड इंटीजर
iv) इंटीजर
2. रियल वैरियेबल्स
i) फ्लोटिंग पॉइन्ट
ii) डबल
3. कैरेक्टर वैरियंचल
i) साईन्ड कैरेक्टर
ii)अनसाईन्क कैरेक्टर
4 स्टिंग वैरिग्रेबल
वैरियेबल का नामकरण इस प्रकार किया जाना चाहिए कि अन्य उपयोग कर्ता अथवा प्रोग्रामर भी उसे पढ़कर उसका तात्पर्य समक्ष सके। वैरियेबल्स के नामकरण में छोटे तथा बड़े अक्षर (small and capital letters) का उपयोग किया जा सकता है। परन्तु वे भिन्न होते है। उदाहरण स्वरूप And तथा and दो अलग अलग वैरियेबल माने जायेंगे। किसी वैरियेबल नाम की लम्बाई कुछ भी हो सकती है. परन्तु आपरेटिंग सिस्टम नियमानुसार उसका निर्धारण स्वयं कर लेता है।
वैरियेबल नामों को निर्धारित करने के पश्चात उन्हें परिभाषित (declare) किया जाता हैं। डिक्लरेशन दो कार्य करता है, वे हैं
1. यह प्रोग्रामर को वैरियेबल का नाम दर्शीता है।
2 वैरियेबल रखनेवाले डाटा के प्रकार (Data type) को भी दर्शाता है।
int <list of variables>;
उदाहरण के लिए टोटल, वाल्यूम तथा iइंटीजर वैरियेबल्स के रूप में दर्शाय गये हैं।
int i, total, volume;
इंटीजर वैरियेबल्स को अलग अलग पंक्ति अथवा लाईन में भी दर्शाया जा सकता है।
संख्या के आकार के अनुरूप हम इसे शार्ट अथवा लॉग इंटीजर के रूप में निम्नप्रकार से परिभाषित कर सकते हैं:
उदाहरण
नीचे दिये गये सभी मान्य डिक्लैरेशन है।
short int i, total, volume;
short i, total, volume;
Long int i, total, volume;
long i, total, volume;
unsigned int i, sum, area;
unsigned i, sum, area;
एक रिजर्ल्ड वर्ड फ्लोट को रियल वैरियेबल को परिभाषित करने के लिए उपयोग किया जाता है।
सिन्टैक्स (Syntax)
float list-of-variables;
float side, perimeter;
अधिक यथार्थता अथवा accuracy स्पष्टता के साथ वैरियेबल के वैल्यू को दर्शाने के लिए डबल अथवा फ्लोट अथवा लॉग फ्लोट का उपयोग किया जाता है।
double side, perimeter;
long float side, perimeter;
कैरेक्टर वैरियेबल द्वारा मेमोरी में मात्र 1 बाइट (8 बिट्स) का उपयोग किया जाता है। एक कैरेक्टर की इंटीजर वैल्यू -128 से 127 तक होती है। इन इंटीजर वैल्यू की सहायता से हम ASCII कैरेक्टर के रूप में मैमोरी में स्टोर करते हैं। आपको ज्ञात होगा कि ASCII कैरेक्टर सेट 'a', 'b', '$', '3' इत्यादि से बना है।
सिन्टैक्स (Syntax)
char <list-of-variables>;
char x, y;
char filmi;
अन्य डाटा टाइप की तरह स्ट्रिंग भी सी लैंग्वेज का एक डाटा टाइप है। स्ट्रिंग कान्सटेन्ट्स के बारे में हम पहले जान चुके हैं। अब हम स्ट्रिंग वैरियेबल के बारे में जानेंगे। स्ट्रिंग वैरियेबल को एक कैरेक्टर (array) के रूप में परिभाषित किया जा सकता है।
सिन्टैक्स (Syntax)
char string_name (size);
उपरोक्त उदाहरण में एक स्ट्रिंग वैरियेबल "स्ट्रिंग नेम" को परिभाषित किया गया है। वैरियेबल होने के कारण "स्ट्रिंग नेम" की लम्बाई अनिश्फित है। उक्त "स्ट्रिंग नेम" वैरियेबल की लेन्थ को साइज नाम दिया गया है। साइज लेन्ध के स्ट्रिंग वैरियेबल "स्ट्रिंग नेम" को अरे कहा जाता है।
कोई भी स्टिंग वैल्यू निर्धारित की जा सकती है। नीचे दिये गये उदाहरण में स्ट्रिंग वैरिवल कन्ट्री की वैल्यू "INDIA" निर्धारित की गयी है।
char country ( = "INDIA"
मैमोरी में कन्ट्री नाम के स्ट्रिंग वैरियवल निम्न प्रकार से संग्रहित कर सकते है।
country (0) -.'I'
country [1] = 'N'
country [2] = 'D'
country [3] = 'I'
country [4] = 'A'
We are accepting Guest Posting on our website for all categories.
I want to Hire a Professional..
Sanjeev panday
@DigitalDiaryWefru