इस शुरुआत परियोजना के साथ सी प्रोग्रामिंग कैसे सीखें
विज्ञापन
कार्यक्रम के लिए सीखना एक संचयी अनुभव है। अपनी चुनी हुई भाषा के वाक्य-विन्यास को सीखने के साथ-साथ, आपको उन सामान्य सिद्धांतों को भी सीखना चाहिए जो सभी प्रोग्रामिंग भाषाओं का उपयोग करते हैं।
C प्रोग्रामिंग को समझना और सीखना चुनौतीपूर्ण हो सकता है, लेकिन शुरू होने पर खुद को परिचित करने के लायक कुछ बुनियादी विचार हैं। एक सरल परियोजना सी के मूल सिद्धांतों को सीखने का एक शानदार तरीका है।
तो आपको कहां से शुरू करना चाहिए? नमस्ते कहकर!
1. नमस्कार, विश्व!
लगभग हर कोडिंग कोर्स का पहला भाग हैलो वर्ल्ड प्रोग्राम है। इस पर विस्तार से जाने के कुछ तरीके सी को अन्य भाषाओं से अलग करते हैं। शुरू करने के लिए, एक टेक्स्ट एडिटर या आईडीई टेक्स्ट एडिटर बनाम आईडीई खोलें: प्रोग्रामर्स के लिए कौन सा बेहतर है? टेक्स्ट एडिटर बनाम आईडीई: प्रोग्रामर के लिए कौन सा बेहतर है? उन्नत IDE और सरल पाठ संपादक के बीच चयन करना कठिन हो सकता है। हम आपको कुछ निर्णय लेने में मदद करने के लिए कुछ अंतर्दृष्टि प्रदान करते हैं। अपनी पसंद के और अधिक पढ़ें, और इस कोड को दर्ज करें:
#include /* this is a Hello World script in C */ int main(void) { printf("Hello, World! \n"); return 0; }
कोड का यह छोटा टुकड़ा प्रोग्राम को समाप्त करने से पहले कंसोल पर प्रिंट करता है। हेल्लो . c के रूप में याद रखने के लिए इसे कहीं आसान से सहेजें। अब आपको अपनी फ़ाइल को संकलित करने और बनाने की आवश्यकता है।
इसे बनाना
आमतौर पर, आपको C स्क्रिप्ट चलाने के लिए अपने कंप्यूटर पर कोई अतिरिक्त सॉफ़्टवेयर स्थापित करने की आवश्यकता नहीं होगी। एक टर्मिनल विंडो खोलें (या यदि आप विंडोज चला रहे हैं, तो कमांड प्रॉम्प्ट करें) और उस डायरेक्टरी पर जाएं, जिसमें आपने अपनी स्क्रिप्ट को सहेजा है।
आपकी फ़ाइल को संकलित करने और चलाने का तरीका सिस्टम से सिस्टम में भिन्न होता है:
- Windows उपयोगकर्ता: अपनी फाइल को निष्पादन योग्य बनाकर cl hello.c टाइप करके और एंटर दबाकर करें। यह उसी फ़ोल्डर में hello.exe बनाएगा, जिसे आप हैलो टाइप करके चला सकते हैं।
- Linux और macOS उपयोगकर्ता: gcc -o hello hello.c टाइप करें और इसे निष्पादन योग्य बनाने के लिए एंटर दबाएं, और इसे टाइप करके चलाएँ ।/hello ।
जो भी विधि आप उपयोग करते हैं, आपकी स्क्रिप्ट को चलाना आपको यह दिखाना चाहिए:
यदि यह विंडोज पर काम नहीं करता है, तो सुनिश्चित करें कि आप व्यवस्थापक मोड में कमांड प्रॉम्प्ट चलाते हैं। MacOS के लिए, आपको ऐप स्टोर से Xcode इंस्टॉल करने और StackOverflow से इन चरणों का पालन करने की आवश्यकता हो सकती है।
अब, प्रोग्राम लाइन को लाइन से देखते हैं कि यह कैसे काम करता है, और इसे सुधारें!
अंडर द हुड: अंडरस्टैंडिंग द सी लैंग्वेज
preprocessors
आपके द्वारा अभी बनाई गई स्क्रिप्ट किसी लाइब्रेरी के समावेश से शुरू होती है।
#include
स्क्रिप्ट में पहली पंक्ति को प्रीप्रोसेसर कहा जाता है। यह बाकी स्क्रिप्ट संकलित करने से पहले किया जाता है। इस स्थिति में, यह stdio.h लाइब्रेरी का उपयोग करने के लिए स्क्रिप्ट बताता है। विभिन्न कार्यों के लिए बड़ी संख्या में प्रीप्रोसेसर उपलब्ध हैं।
Stdio.h प्रोग्राम के उपयोगकर्ता से इनपुट प्राप्त करने और जानकारी को वापस लाने का ध्यान रखता है।
/* this is a Hello World script in C */
यह अगली पंक्ति एक टिप्पणी है। स्लैश और स्टार कंपाइलर को इसके और समापन स्टार और स्लेश के बीच की सभी चीजों को अनदेखा करने के लिए कहते हैं। हालांकि यह व्यर्थ लग सकता है, अपने आप को और दूसरों को यह स्पष्ट करने में सक्षम होने के बारे में कि आपका कोड क्या करता है एक आवश्यक आदत है।
मुख्य समारोह
int main(void)
प्रत्येक C प्रोग्राम में एक मुख्य कार्य होना चाहिए। मुख्य एक फ़ंक्शन है जो इंटिज द्वारा निरूपित एक पूर्णांक देता है। मुख्य के बाद कोष्ठक इसके तर्कों के लिए हैं, हालांकि इस मामले में, यह कोई नहीं लेता है, यही कारण है कि आप शून्य कीवर्ड का उपयोग करते हैं।
आप दो घुंघराले ब्रेसिज़ के बीच किए जाने वाले कोड को लिखते हैं।
{ printf("Hello, World! \n"); return 0; }
फ़ंक्शन के अंदर, आप प्रिंटफ़ () फ़ंक्शन को कॉल करते हैं। मुख्य () की तरह, printf एक फ़ंक्शन है। अंतर यह है कि, प्रिंटफ स्टैडियो लाइब्रेरी में एक फ़ंक्शन है जिसे आपने शुरू में शामिल किया था।
Printf कोष्ठक में, उद्धरण चिह्नों के बीच, कंसोल में कुछ भी प्रिंट करता है। जारी रखने से पहले कंसोल में अगली लाइन पर जाने के लिए कंपाइलर को बताकर \ n एक एस्केप सीक्वेंस न्यूलाइन है।
ध्यान दें कि ये लाइनें अर्धविराम में समाप्त होती हैं, जो कंपाइलर एक कार्य को अगले से विभाजित करने के लिए उपयोग करता है। इन अर्धविरामों पर पूरा ध्यान दें-उन्हें याद न करना चीजों के सही न होने का एक कारण है!
अंत में, फ़ंक्शन 0 नंबर के साथ वापस आता है, प्रोग्राम को समाप्त करता है। मुख्य () फ़ंक्शन को हमेशा पूर्णांक लौटना चाहिए, और वापस = 0; कंप्यूटर को संकेत कि प्रक्रिया सफल थी।
इस स्क्रिप्ट के प्रत्येक चरण को समझना C वाक्यविन्यास, और भाषा कैसे काम करती है, यह सीखने में एक शानदार शुरुआत है।
2. अपनी खुद की सी कार्य बनाना
आप सी में अपने स्वयं के कस्टम फ़ंक्शन बना सकते हैं। मुख्य समारोह में हैलो वर्ल्ड को प्रिंट करने के बजाय, यह आपके लिए करने के लिए एक नया फ़ंक्शन बनाएं।
void print_for_me() { printf("Hello, World! \n"); }
चलो इसे तोड़ो।
शून्य एक कीवर्ड है जिसका अर्थ है कि निम्न फ़ंक्शन कुछ भी वापस नहीं करेगा।
Print_for_me () फ़ंक्शन का नाम है, और खाली कोष्ठक बताते हैं कि इसे कार्य करने के लिए तर्क की आवश्यकता नहीं है। एक तर्क यह काम करने के लिए एक समारोह में पारित करने के लिए जानकारी का कोई टुकड़ा है - बाद में आप आउटपुट को बदलने के लिए अपने स्वयं के एक तर्क को जोड़ देंगे! नोट: यह मुख्य () फ़ंक्शन के समान नहीं है जिसके ऊपर शून्य का उपयोग किया गया है। यह फ़ंक्शन तर्कों को नहीं ले सकता है, जबकि यह (लेकिन इस मामले में, नहीं करना चाहिए)।
कोड ब्लॉक आपको परिचित होना चाहिए - यह मूल मुख्य फ़ंक्शन से सिर्फ प्रिंट स्टेटमेंट है।
अब, आप इस फ़ंक्शन को अपने मुख्य फ़ंक्शन से कॉल कर सकते हैं।
int main(void) { print_for_me(); print_for_me(); return 0; }
आप अपने स्वयं के फ़ंक्शन का उपयोग करने का लाभ यहां देख सकते हैं। हर बार प्रिंटफ़ ("हैलो, वर्ल्ड! \ N") टाइप करने के बजाय, आप फ़ंक्शन को दो बार कॉल कर सकते हैं।
अभी यह इतना महत्वपूर्ण नहीं लग सकता है, लेकिन अगर आपके प्रिंट_फ्रेम_ फ़ंक्शन में कोड की बहुत सारी लाइनें हैं, तो इसे आसानी से कॉल करने में सक्षम होना एक महान समय बचाने वाला है!
यह प्रोग्रामिंग का एक मौलिक विचार है जो आप अपनी शिक्षा के दौरान करेंगे। बार-बार कोड का एक ही बड़ा हिस्सा लिखने के बजाए, अपना स्वयं का फ़ंक्शन लिखें।
3. C में फ़ंक्शन प्रोटोटाइप का उपयोग करना
प्रोटोटाइप उन प्रमुख तरीकों में से एक है जिनकी शुरुआत सी अन्य भाषाओं से भिन्न होती है। संक्षेप में, एक प्रोटोटाइप एक फ़ंक्शन के पूर्वावलोकन की तरह है जिसे बाद में परिभाषित किया गया है। यदि आप मुख्य कार्य के बाद print_for_me () फ़ंक्शन लिखते हैं, तो आपको संकलन करते समय चेतावनी मिल सकती है:
चेतावनी संदेश आपको बता रहा है कि संकलक प्रिंट_फॉर_मे फ़ंक्शन में घोषित होने से पहले भाग गया था, इसलिए यह सुनिश्चित नहीं किया जा सकता था कि प्रोग्राम चलने पर यह सही ढंग से काम करेगा।
कोड अभी भी काम करेगा, लेकिन एक प्रोटोटाइप का उपयोग करके चेतावनी को पूरी तरह से टाला जा सकता है।
#include void print_for_me(); int main(void) { print_for_me(); print_for_me(); return 0; } void print_for_me() { printf("Hello, World! \n"); }
पूर्ण कार्यक्रम को देखकर आप प्रिंट_फोर्मे () के लिए प्रोटोटाइप देख सकते हैं, कार्यक्रम की शुरुआत में मौजूद है, लेकिन इसमें कुछ भी नहीं है। प्रोटोटाइप फ़ंक्शन कंपाइलर को दिखाता है कि फ़ंक्शन को कैसे देखना चाहिए, और इसके लिए तर्क की आवश्यकता है या नहीं।
इसका मतलब यह है कि जब आप इसे मुख्य फ़ंक्शन में कॉल करते हैं, तो कंपाइलर जानता है कि क्या इसे सही ढंग से बुलाया जा रहा है और ज़रूरत पड़ने पर चेतावनी या त्रुटि फेंक सकता है। यह कुछ ऐसा हो सकता है जो अब अजीब लगता है, लेकिन अब उनके बारे में जानने से भविष्य में मदद मिलेगी।
यह कार्यक्रम अभी भी एक प्रोटोटाइप के बिना काम करता है, लेकिन वे उपयोग करने के लिए अच्छे अभ्यास हैं। आउटपुट अभी भी उसी के लिए दिखता है, इसे बदलने के लिए इसे और अधिक व्यक्तिगत बनाने देता है!
4. सी कार्य करने के लिए तर्क पारित करना
स्क्रिप्ट बदलना
इस अंतिम चरण के लिए, आप उपयोगकर्ता का नाम पूछेंगे, और उनके इनपुट को रिकॉर्ड करेंगे। फिर आप इसे पहले बनाए गए फ़ंक्शन में उपयोग करेंगे। सी में, शब्दों को अन्य प्रोग्रामिंग भाषाओं की तरह तार के रूप में नहीं जाना जाता है।
इसके बजाय, वे एकल वर्णों की एक सरणी हैं। एक सरणी के लिए प्रतीक [] है और कीवर्ड चार है । अपनी स्क्रिप्ट की शुरुआत में अपने प्रोटोटाइप फ़ंक्शन को अपडेट करके शुरू करें:
#include void print_for_me(char name[]);
अब, संकलक को पता चल जाएगा कि स्क्रिप्ट में बाद में फ़ंक्शन नाम से वर्णों की एक सरणी लेता है। अब तक, यह चरित्र मौजूद नहीं है। इसे बनाने के लिए अपने मुख्य फ़ंक्शन को अपडेट करें और उपयोगकर्ता इनपुट को संग्रहीत करने के लिए इसका उपयोग करें:
int main(void) { char name[20]; printf("Enter name: "); scanf("%s", name); print_for_me(name); print_for_me("Everyone!"); return 0; }
मुख्य में पहली पंक्ति 20 संभावित स्थानों के साथ एक चरित्र सरणी बनाती है जिसे नाम कहा जाता है। इसके बाद, उपयोगकर्ता को प्रिंटफ का उपयोग करके अपना नाम दर्ज करने के लिए कहा जाता है। अगली पंक्ति स्कैनफ नामक एक नए फ़ंक्शन का उपयोग करती है जो उपयोगकर्ता के प्रकारों के अगले शब्द को लेती है।
"% S" फ़ंक्शन को बताता है कि उसे डेटा को एक स्ट्रिंग के रूप में संग्रहीत करना चाहिए, और इसे नाम देना चाहिए ।
फ़ंक्शन को संशोधित करना
अब जब आप print_for_me पर कॉल करते हैं, तो आप कोष्ठक में नाम शामिल कर सकते हैं। अगली पंक्ति में, आप देखेंगे कि आप अन्य वर्ण भी पास कर सकते हैं जब तक वे उद्धरण चिह्नों के बीच हैं। दोनों बार, ब्रैकेट में जो है, वह print_for_me फ़ंक्शन में पास हो जाता है।
संशोधित करें कि अब आप जो नई जानकारी दे रहे हैं उसका उपयोग करें:
void print_for_me(char name[]) { printf("Hello, "); puts(name); }
यहां आप देख सकते हैं कि स्क्रिप्ट की शुरुआत में ब्रैकेट को प्रोटोटाइप की तरह ही अपडेट किया गया है। अंदर, आप अभी भी प्रिंटो का उपयोग करके हैलो प्रिंट करते हैं। यहां एक नया समारोह रखा गया है। यह प्रिंटफ का अधिक उन्नत संस्करण है।
ब्रैकेट में रखी गई कोई भी चीज़ कंसोल में प्रिंट हो जाएगी, और एक नई लाइन (आपके द्वारा पहले उपयोग किया गया \ n ) अपने आप जुड़ जाती है।
अपने कोड को उसी तरह से सहेजें और संकलित करें जैसा आपने पहले किया था - ध्यान दें कि यदि आप अपने पहले के प्रोग्राम को ओवरराइट नहीं करना चाहते हैं तो आप प्रोग्राम को कुछ अलग नाम दे सकते हैं। मैंने अपना नाम hello2 रखा:
जैसा कि आपको देखना चाहिए, कार्यक्रम इनपुट लेता है और फ़ंक्शन में इसका उपयोग करता है, "सभी!" के पूर्व निर्धारित अभिवादन को भेजने से पहले एक ही फ़ंक्शन में दो अलग-अलग आउटपुट देता है।
सी प्रोग्रामिंग के एबीसी
यह कार्यक्रम सरल है, लेकिन इसमें कुछ अवधारणाएं नहीं हैं। दुर्घटनाओं को रोकने के लिए अधिक उन्नत सी कोड को बहुत अच्छी तरह से लिखा जाना चाहिए। यही कारण है कि कई लोगों को लगता है कि यह सीखने के लिए एक उत्कृष्ट भाषा है क्योंकि यह नए प्रोग्रामर में अच्छी आदतें पैदा करता है।
दूसरों को लगता है कि C ++ सीखना एक बेहतर विचार है, क्योंकि यह अपने निचले सिस्टम नियंत्रण को बनाए रखते हुए C पर बनाता है। (इस पर विचार करने के लिए जंग भी है - यह एक रोमांचक प्रोग्रामिंग भाषा है जो सी ++ के समान ही है।)
एक बात निश्चित है: पायथन जैसी भाषाएं बहुत अधिक शुरुआती हैं। एक पुरानी भाषा के लिए, C को अभी भी हर जगह उपयोग किया जाता है, लेकिन पायथन भविष्य की भाषा हो सकती है 6 कारण क्यों पायथन भविष्य की प्रोग्रामिंग भाषा है 6 कारण क्यों पायथन भविष्य की प्रोग्रामिंग भाषा सीखना चाहते हैं या उनके प्रोग्रामिंग कौशल का विस्तार या विस्तार करना चाहते हैं। ? यहाँ क्यों पायथन इस साल सीखने के लिए सबसे अच्छी प्रोग्रामिंग भाषा है। अधिक पढ़ें !
सी, कोडिंग ट्यूटोरियल्स, प्रोग्रामिंग के बारे में अधिक जानें।