‘C’ प्रोग्रामिंग भाषा शॉर्ट नोटस्‌ मराठीतून !


  • C प्रोग्रामिंग भाषा उजळणी नोटस्‌ व महिती मराठीतून.
  • ALGOL –BCPL या नंतर उदयाला आलेली प्रोग्रामिंग भाषा म्हणजे C.

    वैशिष्ट्ये व महत्त्वाचे मुद्दे :

  • फास्ट, वापरण्यास सोपी, तयार फंक्शन्स व पद्धतशीर प्रोग्रामिंग करण्याची सोय तसेच सर्वच कॉम्प्युटर वर चालणारी भाषा.
  • main फंक्शनने प्रोग्रमची सुरवात, प्रोग्रम मध्ये एकाच main; ते काहीच रीटर्न करणार नसल्यास Void  असे डिक्लेअर केले जाते.
  • printf आणि scanf  ही C प्रोग्राम मध्ये तयार फंक्शन ; ही फंक्शन्स डाटा प्रिंट करण्यासाठी व  कि बोर्ड वरून डाटा घेण्यासाठी वापरतात.
  • व्हेरिएबल प्रिंट करण्यासाठी printf(“ %d “, व्हेरिएबलचे नाव) वापरतात.
  • कॉंस्टंट व्हेल्यू डिफाईन करण्यासाठी  # define वापरतात.जसे # define n=0.
  • काही ठराविक काम करण्यासाठी main प्रोग्रममध्ये आणखी एक उप प्रोग्रम असतो त्यास फंक्शन म्हणतात.
  • c भाषेतील प्रोग्रम हा अनेक फंक्शन्सनी बनलेला असतो.
  • फंक्शन काम झाल्यावर उत्तर परत करतो ते  return() द्वारे करतो.
  • प्रोग्रमला लागणारी काही फंक्शन मिळवण्यासाठी त्यात डॉट एच फाईल इन्क्लुड केली जाते. #include   वापरून  डॉट एच फाईल मधील तयार फंक्शन्स प्रोग्रम मध्ये वापरतायेतात.
  • C मध्ये प्रोग्रम लिहिला असेल तर तो रन करण्यासाठी प्रोग्रम प्रथम कंपाईल करून त्यातील चुका चेक करतात नंतर त्या प्रोग्रम संबधित फाईल लिंक केल्या जातात नंतर त्या रन करण्यास योग्य ऑब्जेक्ट कोड मध्ये रुपांतरीत केल्या जातात.
  • प्रोग्रममध्ये नवीन ओळीत लिहिण्यासाठी \n प्रिंट केले जाते तर थोडी मोकळी जागा सोडण्यासाठी \t प्रिंट केले जाते.
  • char –अक्षरे, float –अपूर्णांक ,int – पूर्ण संख्या हे डाटा टाईप डाटा नुसार वापरले जातात (%c,%f,%d)
  • प्रथम आपला व्हेरिएबल कोणत्या प्रकारात आहे ते घोषित केले जात व त्यास व्हेल्यू ठेवली जाते.
  • scanf फंक्शन वापरताना & हे चिन्ह व व्हेरिएबल चे नाव वापरले जाते.कि बोर्ड वरून व्हेरीअएबलला दिलेली संख्या स्टोअर केली जाते.
  • कमी जागा असणाऱ्या व्हेरिएबल मध्ये मोठा व्हेरिएबल स्टोअर केल्यास तो ओव्हरफ्लो होतो व डाटा वाया जातो.
  • ++ हे व्हेरिएबल च्या आधी लिहिल्यास आधी व्हेल्यू एक ने वाढते व नंतर ती वापरली जाते व हे चिन्ह व्हेरिएबलच्या नंतर वापरल्यास  आधी  व्हेल्यू वापरली जाते व नंतर ती एक ने वाढते.
  • जास्त प्रायोरिटी *,/,% यांना असते तर कमी प्रायोरीटी +,- यांना असते.
  • कि बोर्ड वरून दिलेले एकच अक्षर मिळवण्यासाठी  getchar() फंक्शन वापरतात व एक अक्षर स्क्रीन वर दर्शविण्यास  putchar() वापरतात.
  • % 7.4f  म्हणजे ७ आकडे  व एक पॉइंट साठवले व दर्शविले जातील ; त्यात ४ आकडे पॉइंटच्या पलीकडे असतील (98.7654).
  • if (बरोबर) काम चालू अन्यथा else मधील काम चालू.
  • अनेक पर्याय व त्यानुसार वेगवेगळी कामे असे असल्यास switch वापरतात.यात उत्तर कोणत्या  case  बरोबर जुळते त्या केसचा कोड चालतो अन्यथा default  मध्ये लिहिलेला कोड रन होतो.
  • goto lable  मुळे जेथे लेबल लिहले आते तेथे डायरेक्ट प्रोग्रम कंट्रोल जातो व तिथून परत प्रोग्रम रन होतो.
  • while लूप म्हणजे जो पर्यंत कंडीशन येत नाही तो पर्यंत दिलेले काम करत रहा.
  • do आणि while जोडी मध्ये do आधी डिक्लेअर केला जातो , शेवटी while  व कंडिशन्स दिली जाते.जोपर्यंत कंडीशन पुर्ण होत नाही तोपर्यंत यामधील प्रोग्रम लूपमध्ये  फिरत राहतो.
  • for  लूप मध्ये फॉर(सुरवातीची संख्या , कंडीशन चेक करणे ,काउंट वाढवणे) असे चक्र चालू असते.
  • लूप मधून बाहेर पडण्यासाठी  break; स्टेटमेंट वापरतात.
  • समान डाटा टाईप चा एक संच म्हणजे अँरे होय.
  • अँरे लिहिताना त्याचे नाव ,त्याचा प्रकार व किती काउंट लिहिला जातो.int num [3];.
  • अँरे हा रो व कॉलम यांच्या टेबल रुपात मांडण्यासाठी द्विमितीय रुपात लिहिला जातो जसे  int product [2][5].
  • कँरेक्टरचा अँरे हा अक्षरांचा संच एकत्र ठेवण्यासाठी वापरतात.
  • दोन ओळी जोडण्यासाठी strcat() फंक्शन,दोन ओळी कम्पेअर करण्यासाठी strcmp() फंक्शन वापरतात.
  • एक ओळ दुसऱ्या ओळीमध्ये कॉपी करण्यासाठी strcpy() फंक्शन व ओळीची लांबी मोजण्यासाठी strlen()  हे फंक्शन वापरतात.
  • मोड्ल्युलर प्रोग्रामिंग म्हणजे फंक्शन्सचा वापर करून एक एक मोड्युलच्या तुकड्याने प्रोग्रम लिहिणे.
  • main  मध्ये फंक्शन डिफाईन केले जाते व फंक्शनला काही आर्ग्युमेंट पाठवून ते कॉल केले जाते.
  • फंक्शन आपले काम करते व तयार झालेले आउटपुट रिटर्न करते.रिटर्न केले आउटपुट हे फंक्शनच्या टाईपचे असते.
  • external  म्हणून डिफाईन केलेले व्हेरिएबल हे main च्या बाहेर असून सर्व प्रोग्रम मध्ये वापरले जाऊ शकते.
  • static  व्हेरिएबल हे एका फंक्शन मध्ये एकदाच कॉल होते.
  • register  या व्हेरिएबलचा वापर प्रोसेसरच्या रेजिस्टर मध्ये संख्या ठेवण्यास होते जी संख्या प्रोग्रममध्ये फास्ट मेमरीसाठी वापरली जावू शकते.
  • वेगवेगळ्या डाटा टाईप चा एकत्रित डिफाईन केलेला संच म्हणजे स्ट्रक्चर.
  • अँरेमध्ये एकाच डाटा टाईप असतो तर स्ट्रक्चर मध्ये अनेक डाटा टाईप असतात.
  • स्ट्रक्चर structure लिहिताना त्याचे नाव डिफाईन केले जाते व  त्या स्ट्रक्चरचे व्हेरिएबल सुद्धा तयार केले जातात.
  • स्ट्रक्चर मधील व्हेरिएबल मेंबर हे डॉट चा वापर करून कॉल केले जातात.person1.name.
  • स्ट्रक्चरमध्ये दोन डाटा टाईप जोडताना एक बीट एवढी मोकळी जागा ठेवली जात त्यास slack  बीट असते म्हणतात.
  • दोन स्ट्रक्चर कम्पेअर करता येत नाहीत तर त्या मधील मेंबर कम्पेअर केले जातात व जर ते सारखे असतील तर स्ट्रक्चर सेम आहे असे ठरवले जाते.
  • स्ट्रक्चरमध्ये ही दुसरे स्ट्रक्चर डिफाईन करता येते.त्यातील मेंबर कॉल करताना ते p1.p2.memberअसे दोन डॉट च्या मदतीने केले जाते.
  • स्ट्रक्चरमधील मेंबर स्वतंत्र स्टोअर केले जातात तर union मध्ये सर्व मेंबर्सना  एकाच मेमरी लोकेशन असते.
  • युनियनमधील मेमरी लोकेशन हे त्यातील सर्वात जास्त मेमरी लागणाऱ्या मेंबर इतकी असते व बाकी मेंबर एक एक करून ते लोकेशन वापरतात.
  • एखाद्या स्ट्रक्चरची टोटल साईझ काढून ती पुढे फंक्शनमध्ये वापरण्यासाठी sizeof() फंक्शन वापरतात.
  • पॉइंटर हा त्याच्या व्हेरिएबलचे मेमरी लोकेशन स्टोअर करतो.
  • pointer  हा C  मधील सर्वात उपयुक्त व पॉवरफुल डाटा टाईप आहे.
  • पॉइंटर हा * या चिन्हाचा वापर करून दर्शवितात. *P  म्हणजे पॉइंटर व्हेरिएबल  हा p  हा मेमरी लोकेशनला पॉईंट करतो.
  • p=&quantity;  म्हणजे P हा quantity  व्हेरिएबल जेथे ठेवले आहे त्याच्या मेमरी लोकेशनला पॉईंट करून त्या लोकेशन मध्ये साठवलेली व्हेल्यू बदलू शकतो.
  • पॉइंटरमध्ये संख्या मिळवू किंवा कमी करू शकतो; तसेच दोन पॉइंटर एकमेकांतून वजा करू शकतो पण दोन पोइंटरची बेरीज किंवा गुणाकार होत नाही.
  • आपण अँरेचा किंवा स्ट्रक्चरचा पॉइंटर डिफाईन करून त्यातील संख्या पॉइंटर व्हेरिएबल च्या मदतीने मेमरी लोकेशनला जावून बदलू शकतो.
  • पॉइंटर एक ने वाढवल्यास तो त्याच्या डाटा टाईपच्या साईझ इतका वाढतो.
  • (*p)(x,y) यास फंक्शन पॉइंटर म्हणतात.
  • स्ट्रक्चर मधील मेंबर पॉइंटरचा वापर करून  ptr->name किंवा  (*ptr).name असे आले जातात.
  • फाईल ओपेन करणे या फंक्शन मध्ये फाईल नाव बरोबर ती रीड किंवा राईट मोड मध्ये उघडायची आहे ते ही लिहिले जाते.
  • फाईल बंद करतान फक्त फाईल पॉइंटर लागतो ज्याचा वापर करून त्या पॉइंटर ला जोडलेले मेमरी लोकेशन मोकळे केले जाते.
  • फाईल मधील करेक्टर घेण्यासाठी getc व   साठवण्यासाठी putc फंक्शन वापरले जाते.
  • फाईल ऑपरेशन्स साठी खास fprintf आणिfscanf ही सुधारित फंक्शन्स फाईल मधील डाटा प्रिंट करण्यासाठी किंवा वाचण्यासाठी वापरली जातात.
  •  ferror व feof या फंक्शन चा वापर करून फाईल मध्ये चुका आहेत का ते शोधले जाते.
  • फाईल पोइंटर सुरवातीला नेह्ण्यासाठी rewind फंक्शन वापरतात.फाईल पॉइंटर थोड्या अंतरावर मागे किंवा पुढे करण्यासाठी fseek  फंक्शन वापरतात.
  • append  फंक्शनचा वापर करून आधीच्या फाईल मध्ये बदल न करता आपला नवीन डाटा त्या पुढे जोडला जातो.
  • कमांड लाईन द्वारा पँरामिटर पास करता येवू शकतात त्यासाठी main फंक्शन ला पँरामिटर दिले जावू शकतात.
  • फाईल चा शेवट एन्ड ऑफ फाईल म्हणजे -१ ने करतात.
  • स्ट्रिंग चा शेवट नल म्हणजेच \० ने होतो.
  • प्रोग्रम चालू असताना मेमरी अलोकेट करण्यासाठी malloc  फंक्शन वापरतात यात मेमरी अलोकेशन साईझ दिला जातो.
  • समान साईझ चे मेमरी ब्लॉक अलोकेट करण्यासाठी calloc फंक्शन वापरतात.
  • free  फंक्शन च वापर करून पॉइंटर ची मेमरीतील जागा मोकळी केली जाते.
  • परत मेमरी वाढवण्यासाठी किंवा कमी करण्यासाठी realloc  फंक्शन वापरतात.
  • लिंक लिस्ट मध्ये एक स्ट्रक्चर दुसऱ्या स्ट्रक्चरशी लिंक ने जोडले असते ते मेमरीत सलग असतीलच असे नाही.यात पॉइंटर चा वापर करून लिंक प्रस्थापित केली जाते.*next , node.next.
  • लिन्कड लिस्ट मध्ये हवी तेवढी मेमरी हवी तेंव्हा वापरेली जाते या मुळे मेमरी ची बचत होते.
  • दोन्ही बाजूंनी लिंक्स जोडण्यासाठी डबल लिन्क लिस्ट चा वापर होतो यामुळे पॉइंटर पुढे किंवा मागे करू शकतो यसाठी प्रत्येक नोड ला दोन लिन्क लागतात.
  • तसेच पहिला नोड हा शेवटच्या नोडला जोडून सर्क्युलर लिन्क लिस्ट ही तयार करता येते.

वरील मुद्दे वाचून आपण  सी प्रोग्रामिंग भाषेची रिव्हीजन करू शकता.आपणस ह्या नोट्स कशा वाटल्या हे नक्कीच कळवा.

धन्यवाद !
MJ🙂

One comment

तुमचा अभिप्राय नोंदवा

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / बदल )

Twitter picture

You are commenting using your Twitter account. Log Out / बदल )

Facebook photo

You are commenting using your Facebook account. Log Out / बदल )

Google+ photo

You are commenting using your Google+ account. Log Out / बदल )

Connecting to %s