C++ प्रोग्राम उदाहरणों के साथ फ़ंक्शन
फंक्शन क्या है? C++?
A समारोह in C++ कथनों के एक समूह को संदर्भित करता है जो इनपुट लेता है, उसे संसाधित करता है, और आउटपुट देता है। फ़ंक्शन के पीछे का विचार बार-बार किए जाने वाले सामान्य कार्यों को संयोजित करना है। यदि आपके पास अलग-अलग इनपुट हैं, तो आप फिर से वही कोड नहीं लिखेंगे। आप बस पैरामीटर नामक डेटा के एक अलग सेट के साथ फ़ंक्शन को कॉल करेंगे।
से प्रत्येक C++ प्रोग्राम में कम से कम एक फ़ंक्शन होता है, main() फ़ंक्शन। आप अपने कोड को अलग-अलग फ़ंक्शन में विभाजित कर सकते हैं। यह विभाजन ऐसा होना चाहिए कि प्रत्येक फ़ंक्शन एक विशिष्ट कार्य करे।
इसमें कई अंतर्निहित कार्य हैं C++ मानक लाइब्रेरी। आप अपने प्रोग्राम के भीतर इन फ़ंक्शन को कॉल कर सकते हैं।
फ़ंक्शन का उपयोग क्यों करें?
फ़ंक्शन के उपयोग से कई लाभ जुड़े हैं। इनमें शामिल हैं:
- प्रत्येक फ़ंक्शन संबंधित कोड को एक साथ रखता है। इससे प्रोग्रामर के लिए कोड को समझना आसान हो जाता है।
- फंक्शन्स कोड पुनरावृत्ति को समाप्त करके प्रोग्रामिंग को आसान बनाते हैं।
- फ़ंक्शन कोड के पुनः उपयोग को आसान बनाते हैं। आप प्रोग्राम के विभिन्न अनुभागों या प्रोग्राम के बाहर भी किसी कार्य को करने के लिए एक ही फ़ंक्शन को कॉल कर सकते हैं।
अंतर्निहित कार्य
In C++ लाइब्रेरी फ़ंक्शन अंतर्निहित हैं C++ फ़ंक्शन। इन फ़ंक्शन का उपयोग करने के लिए, आपको बस उन्हें सीधे इनवोक/कॉल करना होगा। आपको फ़ंक्शन खुद लिखने की ज़रूरत नहीं है।
उदाहरण 1:
#include <iostream> #include <cmath> using namespace std; int main() { double num, squareRoot; cout << "Enter number: "; cin >> num; squareRoot = sqrt(num); cout << "The square root of " << num << " is: " << squareRoot; return 0; }
आउटपुट:
कोड का स्क्रीनशॉट यहां दिया गया है:
कोड स्पष्टीकरण:
- इसके कार्यों का उपयोग करने के लिए हमारे प्रोग्राम में iostream हेडर फ़ाइल शामिल करें।
- इसके फ़ंक्शन का उपयोग करने के लिए cmath लाइब्रेरी को शामिल करें। हम इसमें परिभाषित फ़ंक्शन sqrt() का उपयोग करना चाहते हैं।
- अपने कोड में std नामस्थान को शामिल करें ताकि उसे कॉल किए बिना उसकी क्लासों का उपयोग किया जा सके।
- main() फ़ंक्शन को कॉल करें। प्रोग्राम लॉजिक को इस फ़ंक्शन के मुख्य भाग में जोड़ा जाना चाहिए।
- दो डबल चर, num, और squareRoot घोषित करें।
- कंसोल पर कुछ टेक्स्ट प्रिंट करें। टेक्स्ट में उपयोगकर्ता से एक नंबर दर्ज करने के लिए कहा जाता है।
- कीबोर्ड से उपयोगकर्ता इनपुट पढ़ें। इनपुट वेरिएबल num का मान बन जाएगा।
- लाइब्रेरी फ़ंक्शन sqrt() को कॉल करें, जो किसी संख्या का वर्गमूल निकालता है। हमने फ़ंक्शन में पैरामीटर num पास किया है, जिसका अर्थ है कि यह num का वर्गमूल निकालेगा। यह फ़ंक्शन cmath लाइब्रेरी में परिभाषित है।
- उपयोगकर्ता द्वारा दर्ज की गई संख्या, उसका वर्गमूल और कुछ अन्य पाठ कंसोल पर प्रिंट करें।
- प्रोग्राम को सफलतापूर्वक पूरा होने पर मान लौटाना होगा।
- main() फ़ंक्शन के मुख्य भाग का अंत.
उपयोगकर्ता-परिभाषित कार्य
C++ प्रोग्रामर को अपने स्वयं के फ़ंक्शन परिभाषित करने की अनुमति देता है। फ़ंक्शन का उद्देश्य संबंधित कोड को समूहीकृत करना है। फिर कोड को एक अद्वितीय पहचानकर्ता, फ़ंक्शन नाम दिया जाता है।
इस फंक्शन को प्रोग्राम के किसी भी दूसरे भाग से कॉल/इनवोक किया जा सकता है। फिर यह अपने बॉडी में परिभाषित कोड को निष्पादित करेगा।
उदाहरण 2:
#include <iostream> using namespace std; void sayHello() { cout << "Hello!"; } int main() { sayHello(); return 0; }
आउटपुट:
कोड का स्क्रीनशॉट यहां दिया गया है:
कोड स्पष्टीकरण:
- इसके कार्यों का उपयोग करने के लिए हमारे प्रोग्राम में iostream हेडर फ़ाइल शामिल करें।
- अपने कोड में std नामस्थान को शामिल करें ताकि उसे कॉल किए बिना उसकी क्लासों का उपयोग किया जा सके।
- sayHello() नामक एक उपयोगकर्ता-परिभाषित फ़ंक्शन बनाएँ.
- जब sayHello() फ़ंक्शन को कॉल किया जाता है तो कंसोल पर कुछ टेक्स्ट प्रिंट करें।
- sayHello() फ़ंक्शन के मुख्य भाग का अंत.
- main() फ़ंक्शन को कॉल करें। प्रोग्राम लॉजिक को इस फ़ंक्शन के मुख्य भाग में जोड़ा जाना चाहिए।
- sayHello() नामक फ़ंक्शन को कॉल/आह्वान करें।
- प्रोग्राम को सफलतापूर्वक पूरा होने पर मान लौटाना होगा।
- main() फ़ंक्शन के मुख्य भाग का अंत.
फ़ंक्शन घोषणा/प्रोटोटाइप
यदि आप main() फ़ंक्शन के बाद उपयोगकर्ता-परिभाषित फ़ंक्शन परिभाषित करते हैं, तो C++ संकलक एक त्रुटि लौटाएगा। इसका कारण यह है कि कंपाइलर को उपयोगकर्ता-परिभाषित फ़ंक्शन का विवरण नहीं पता है। विवरण में इसका नाम, तर्कों के प्रकार और उनके रिटर्न प्रकार शामिल हैं।
In C++, फ़ंक्शन घोषणा/प्रोटोटाइप बिना बॉडी के फ़ंक्शन घोषित करता है। यह कंपाइलर को उपयोगकर्ता-परिभाषित फ़ंक्शन का विवरण देता है।
घोषणा/प्रोटोटाइप में, हम रिटर्न प्रकार, फ़ंक्शन नाम और तर्क प्रकार शामिल करते हैं। तर्कों के नाम नहीं जोड़े जाते हैं। हालाँकि, तर्क नाम जोड़ने से कोई त्रुटि उत्पन्न नहीं होती है।
फ़ंक्शन परिभाषा
फ़ंक्शन घोषणा का उद्देश्य यह बताना है कि C++ कंपाइलर को फ़ंक्शन नाम, रिटर्न प्रकार और पैरामीटर के बारे में बताता है। फ़ंक्शन परिभाषा कंपाइलर को बताती है C++ फ़ंक्शन बॉडी के बारे में संकलक से बात करें।
वाक्य - विन्यास
return_datatype function_name( parameters) { function body }
ऊपर से, फ़ंक्शन परिभाषा में फ़ंक्शन हेडर और बॉडी होती है। यहाँ पैरामीटर्स की व्याख्या दी गई है:
- return_datatype- कुछ फ़ंक्शन मान लौटाते हैं। यह पैरामीटर रिटर्न वैल्यू के डेटा प्रकार को दर्शाता है। कुछ फ़ंक्शन मान नहीं लौटाते। उस स्थिति में, इस पैरामीटर का मान शून्य हो जाता है।
- फ़ंक्शन_नाम- यह फ़ंक्शन का नाम है। फ़ंक्शन नाम और पैरामीटर फ़ंक्शन हस्ताक्षर बनाते हैं।
- पैरामीटर- यह फ़ंक्शन पैरामीटर का प्रकार, क्रम और संख्या है। कुछ फ़ंक्शन में पैरामीटर नहीं होते हैं।
- फ़ंक्शन बॉडी- ये कथन हैं जो परिभाषित करते हैं कि फ़ंक्शन क्या करेगा।
फंक्शन कॉल
किसी फ़ंक्शन को निर्दिष्ट कार्य करने और आउटपुट लौटाने के लिए, उसे कॉल किया जाना चाहिए। जब आप किसी फ़ंक्शन को कॉल करते हैं, तो वह अपने बॉडी में जोड़े गए कथनों को निष्पादित करता है।
किसी प्रोग्राम को उसके नाम से बुलाया जाता है। अगर फ़ंक्शन पैरामीटर लेता है, तो कॉल के दौरान उनके मान पास किए जाने चाहिए। अगर सेवा कोई पैरामीटर नहीं लेती है, तो कॉल के दौरान कोई मान पास न करें।
तर्क पारित करना
In C++, एक तर्क/पैरामीटर एक फ़ंक्शन को उसके कॉल के दौरान दिया गया डेटा है। मानों को उनके संबंधित चर में आरंभीकृत किया जाना चाहिए।
फ़ंक्शन को कॉल करते समय, तर्कों की संख्या मेल खानी चाहिए। इसका मतलब है कि आपके द्वारा पास किए गए मान पैरामीटर की संख्या के बराबर होने चाहिए। फिर से, मानों को प्रकार के संदर्भ में पैरामीटर से मेल खाना चाहिए। यदि पहला पैरामीटर पूर्णांक है, तो उसे पास किया गया मान पूर्णांक होना चाहिए।
फ़ंक्शन पैरामीटर को डिफ़ॉल्ट मान असाइन किया जा सकता है। यदि आप फ़ंक्शन कॉल के दौरान पैरामीटर के लिए कोई मान पास नहीं करते हैं, तो डिफ़ॉल्ट मान का उपयोग किया जाएगा।
उदाहरण 3: फ़ंक्शन कैसे लिखें और कॉल करें
#include <iostream> using namespace std; int addFunc(int, int); int main() { int x, y, sum; cout << "Enter two numbers: "; cin >> x >> y; sum = addFunc(x, y); cout <<"The sum of "<<x<< " and " <<y<<" is: "<<sum; return 0; } int addFunc(int num1, int num2) { int addFunc; addFunc = num1 + num2; return addFunc; }
आउटपुट:
कोड का स्क्रीनशॉट यहां दिया गया है:
कोड स्पष्टीकरण:
- इसके कार्यों का उपयोग करने के लिए हमारे प्रोग्राम में iostream हेडर फ़ाइल शामिल करें।
- अपने कोड में std नामस्थान को शामिल करें ताकि उसे कॉल किए बिना उसकी क्लासों का उपयोग किया जा सके।
- addFunc() नामक एक फ़ंक्शन घोषित करें जो दो पूर्णांक पैरामीटर लेता है। यह फ़ंक्शन प्रोटोटाइप बनाता है।
- main() फ़ंक्शन को कॉल करें। प्रोग्राम लॉजिक को इस फ़ंक्शन के मुख्य भाग में जोड़ा जाना चाहिए।
- तीन पूर्णांक चर, x, y, और योग घोषित करें।
- कंसोल पर कुछ टेक्स्ट प्रिंट करें। टेक्स्ट में उपयोगकर्ता से दो नंबर दर्ज करने के लिए कहा जाता है।
- कीबोर्ड से उपयोगकर्ता इनपुट पढ़ें। उपयोगकर्ता को चर x और y के लिए दो संख्याएँ दर्ज करनी चाहिए, जिन्हें स्पेस से अलग किया गया हो।
- फ़ंक्शन addFunc() को कॉल करें और इसमें पैरामीटर x और y पास करें। फ़ंक्शन इन पैरामीटर पर काम करेगा और आउटपुट को वेरिएबल sum को असाइन करेगा।
- कंसोल पर अन्य पाठ के साथ चर x, y, और sum के मानों को प्रिंट करें।
- फ़ंक्शन को सफलतापूर्वक पूरा होने पर मान लौटाना होगा.
- main() फ़ंक्शन के मुख्य भाग का अंत.
- फ़ंक्शन परिभाषा। हम addFunc() फ़ंक्शन को परिभाषित कर रहे हैं। हम बताएंगे कि फ़ंक्शन अपने बॉडी, { } के भीतर क्या करेगा।
- addFunc नामक एक पूर्णांक चर घोषित करना.
- पैरामीटर num1 और num2 के मानों को जोड़ना और परिणाम को वेरिएबल addFunc में निर्दिष्ट करना।
- addFunc() फ़ंक्शन को addFunc वेरिएबल का मान लौटाना चाहिए।
- फ़ंक्शन बॉडी का अंत, अर्थात फ़ंक्शन परिभाषा.
सारांश
- एक समारोह में C++ आपको संबंधित कोड को एक में समूहित करने में मदद करता है।
- फंक्शन कोड पुनः उपयोग को सुगम बनाते हैं।
- बार-बार एक जैसा कोड लिखने के बजाय, आप बस इसे एक फ़ंक्शन में समूहित कर सकते हैं। फिर आप कोड के भीतर कहीं से भी फ़ंक्शन को कॉल कर सकते हैं।
- फ़ंक्शन लाइब्रेरी या उपयोगकर्ता-परिभाषित हो सकते हैं।
- लाइब्रेरी फ़ंक्शन विभिन्न में निर्मित फ़ंक्शन हैं C++ कार्यों.
- लाइब्रेरी फ़ंक्शन का उपयोग करने के लिए, आपको बस इसकी परिभाषा की लाइब्रेरी शामिल करनी होगी और फ़ंक्शन को कॉल करना होगा। आप फ़ंक्शन को परिभाषित नहीं करते हैं।
- उपयोगकर्ता-परिभाषित फ़ंक्शन वे फ़ंक्शन हैं जिन्हें आप परिभाषित करते हैं C++ प्रोग्रामर।
- फ़ंक्शन घोषणा, कंपाइलर को फ़ंक्शन नाम, रिटर्न प्रकार और पैरामीटर प्रकार के बारे में बताती है।
- फ़ंक्शन परिभाषा फ़ंक्शन के मुख्य भाग को जोड़ती है।
- यदि कोई फ़ंक्शन पैरामीटर लेता है, तो उनके मान फ़ंक्शन कॉल के दौरान पास किए जाने चाहिए।