C ++ में उपयोगकर्ता-परिभाषित फ़ंक्शंस के प्रकार

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

तर्कों की बेहतर समझ और कार्यों में वापसी के लिए, उपयोगकर्ता-परिभाषित कार्यों को निम्नानुसार वर्गीकृत किया जा सकता है:

  • बिना किसी तर्क और कोई वापसी मान के साथ कार्य
  • बिना किसी तर्क के, लेकिन वापसी का मूल्य
  • तर्क के साथ कार्य लेकिन कोई वापसी मूल्य नहीं
  • तर्क और वापसी मूल्य के साथ कार्य

ऐसी स्थिति पर विचार करें जिसमें आपको प्राइम नंबर की जांच करनी है। ऊपर बताए अनुसार 4 अलग-अलग तरीकों से उपयोगकर्ता-परिभाषित फ़ंक्शन करके यह समस्या नीचे हल की गई है।

उदाहरण 1: कोई तर्क पारित नहीं हुआ और कोई वापसी मूल्य नहीं

 # include using namespace std; void prime(); int main() ( // No argument is passed to prime() prime(); return 0; ) // Return type of function is void because value is not returned. void prime() ( int num, i, flag = 0; cout <> num; for(i = 2; i <= num/2; ++i) ( if(num % i == 0) ( flag = 1; break; ) ) if (flag == 1) ( cout << num << " is not a prime number."; ) else ( cout << num << " is a prime number."; ) ) 

उपरोक्त कार्यक्रम में, prime()मुख्य से () बिना किसी तर्क के कहा जाता है।

prime() उपयोगकर्ता से सकारात्मक संख्या लेता है और जांचता है कि संख्या एक प्रमुख संख्या है या नहीं।

चूंकि, वापसी का प्रकार prime()है void, फ़ंक्शन से कोई मान नहीं लौटाया जाता है।

उदाहरण 2: कोई तर्क पारित नहीं हुआ, लेकिन एक वापसी मूल्य

 #include using namespace std; int prime(); int main() ( int num, i, flag = 0; // No argument is passed to prime() num = prime(); for (i = 2; i <= num/2; ++i) ( if (num%i == 0) ( flag = 1; break; ) ) if (flag == 1) ( cout<  n; return n; ) 

उपरोक्त कार्यक्रम में, prime()फ़ंक्शन को main()बिना किसी तर्क के कहा जाता है।

prime()उपयोगकर्ता से एक सकारात्मक पूर्णांक लेता है। चूंकि, फ़ंक्शन का रिटर्न प्रकार एक है int, यह उपयोगकर्ता से इनपुट नंबर को कॉलिंग main()फ़ंक्शन पर वापस लौटाता है ।

फिर, चाहे नंबर प्राइम हो या नहीं, मुख्य () में ही जांचा जाता है और स्क्रीन पर प्रिंट किया जाता है।

उदाहरण 3: तर्क पारित हुए लेकिन कोई वापसी मूल्य नहीं

 #include using namespace std; void prime(int n); int main() ( int num; cout <> num; // Argument num is passed to the function prime() prime(num); return 0; ) // There is no return value to calling function. Hence, return type of function is void. */ void prime(int n) ( int i, flag = 0; for (i = 2; i <= n/2; ++i) ( if (n%i == 0) ( flag = 1; break; ) ) if (flag == 1) ( cout << n << " is not a prime number."; ) else ( cout << n << " is a prime number."; ) )

उपरोक्त कार्यक्रम में, सबसे पहले उपयोगकर्ता से सकारात्मक संख्या पूछी जाती है जो चर संख्या में संग्रहीत होती है।

फिर, num को उस prime()फ़ंक्शन में भेजा जाता है, जहाँ नंबर प्राइम है या नहीं, इसकी जाँच की जाती है और प्रिंट किया जाता है।

चूंकि, वापसी प्रकार prime()एक है void, फ़ंक्शन से कोई मान नहीं लौटाया जाता है।

उदाहरण 4: तर्क पारित और एक वापसी मूल्य।

 #include using namespace std; int prime(int n); int main() ( int num, flag = 0; cout <> num; // Argument num is passed to check() function flag = prime(num); if(flag == 1) cout << num << " is not a prime number."; else cout<< num << " is a prime number."; return 0; ) /* This function returns integer value. */ int prime(int n) ( int i; for(i = 2; i <= n/2; ++i) ( if(n % i == 0) return 1; ) return 0; ) 

उपरोक्त कार्यक्रम में, उपयोगकर्ता से एक सकारात्मक पूर्णांक पूछा जाता है और चर में संग्रहीत किया जाता है num

फिर, numफ़ंक्शन में पास किया जाता है, prime()जहां नंबर प्राइम है या नहीं, इसकी जाँच की जाती है।

चूंकि, रिटर्न प्रकार prime()एक ए int, 1 या 0 main()कॉलिंग फ़ंक्शन पर लौटा है । यदि संख्या एक अभाज्य संख्या है, तो 1 वापस कर दिया जाता है। यदि नहीं, तो 0 लौटा दिया गया है।

main()फ़ंक्शन में वापस , दिए गए 1 या 0 को वेरिएबल फ़्लैग में संग्रहीत किया जाता है, और संबंधित पाठ स्क्रीन पर मुद्रित होता है।

कौन सा तरीका बेहतर है?

उपरोक्त सभी चार प्रोग्राम समान आउटपुट देते हैं और सभी तकनीकी रूप से सही प्रोग्राम हैं।

कोई कठिन और तेज़ नियम नहीं है कि किस पद्धति को चुना जाए।

स्थिति और आप किसी समस्या को कैसे हल करना चाहते हैं, इसके आधार पर विशेष विधि को चुना जाता है।

दिलचस्प लेख...