इस ट्यूटोरियल में, आप विभिन्न दृष्टिकोणों के बारे में जानेंगे जिन्हें आप फ़ंक्शंस का उपयोग करके उसी समस्या को हल करने के लिए कर सकते हैं।
नीचे दिए गए ये 4 प्रोग्राम यह जांचते हैं कि उपयोगकर्ता द्वारा दर्ज किया गया पूर्णांक एक प्रमुख संख्या है या नहीं।
नीचे इन सभी कार्यक्रमों का आउटपुट समान है, और हमने प्रत्येक उदाहरण में एक उपयोगकर्ता-परिभाषित फ़ंक्शन बनाया है। हालाँकि, प्रत्येक उदाहरण में हमने जो दृष्टिकोण लिया है वह अलग है।
उदाहरण 1: कोई तर्क पारित नहीं हुआ और कोई वापसी मूल्य नहीं
#include void checkPrimeNumber(); int main() ( checkPrimeNumber(); // argument is not passed return 0; ) // return type is void meaning doesn't return any value void checkPrimeNumber() ( int n, i, flag = 0; printf("Enter a positive integer: "); scanf("%d",&n); for(i=2; i <= n/2; ++i) ( if(n%i == 0) ( flag = 1; ) ) if (flag == 1) printf("%d is not a prime number.", n); else printf("%d is a prime number.", n); )
checkPrimeNumber()
समारोह उपयोगकर्ता से इनपुट लेता है, जाँच करता है कि यह एक प्रमुख संख्या है या नहीं और स्क्रीन पर प्रदर्शित करता है।
फ़ंक्शन के checkPrimeNumber();
अंदर बयान में खाली कोष्ठक main()
इंगित करता है कि फ़ंक्शन के लिए कोई तर्क पारित नहीं किया गया है।
फ़ंक्शन का वापसी प्रकार है void
। इसलिए, फ़ंक्शन से कोई मान नहीं दिया जाता है।
उदाहरण 2: कोई तर्क पारित नहीं हुआ, लेकिन एक वापसी मूल्य
#include int getInteger(); int main() ( int n, i, flag = 0; // no argument is passed n = getInteger(); for(i=2; i<=n/2; ++i) ( if(n%i==0)( flag = 1; break; ) ) if (flag == 1) printf("%d is not a prime number.", n); else printf("%d is a prime number.", n); return 0; ) // returns integer entered by the user int getInteger() ( int n; printf("Enter a positive integer: "); scanf("%d",&n); return n; )
n = getInteger();
स्टेटमेंट में खाली कोष्ठक इंगित करता है कि फ़ंक्शन के लिए कोई तर्क पारित नहीं किया गया है। और, फ़ंक्शन से लौटाया गया मान n को असाइन किया गया है।
यहां, getInteger()
फ़ंक्शन उपयोगकर्ता से इनपुट लेता है और इसे वापस करता है। यह जांचने के लिए कोड है कि कोई नंबर प्राइम है या नहीं main()
।
उदाहरण 3: तर्क पारित हुआ, लेकिन कोई वापसी मूल्य नहीं
#include void checkPrimeAndDisplay(int n); int main() ( int n; printf("Enter a positive integer: "); scanf("%d",&n); // n is passed to the function checkPrimeAndDisplay(n); return 0; ) // return type is void meaning doesn't return any value void checkPrimeAndDisplay(int n) ( int i, flag = 0; for(i=2; i <= n/2; ++i) ( if(n%i == 0)( flag = 1; break; ) ) if(flag == 1) printf("%d is not a prime number.",n); else printf("%d is a prime number.", n); )
उपयोगकर्ता द्वारा दर्ज किया गया पूर्णांक मान checkPrimeAndDisplay()
फ़ंक्शन में पास किया जाता है।
यहां, checkPrimeAndDisplay()
फ़ंक्शन यह जांचता है कि पारित किया गया तर्क एक प्रमुख संख्या है या नहीं और उचित संदेश प्रदर्शित करता है।
उदाहरण 4: तर्क पारित हुआ और एक वापसी मूल्य
#include int checkPrimeNumber(int n); int main() ( int n, flag; printf("Enter a positive integer: "); scanf("%d",&n); // n is passed to the checkPrimeNumber() function // the returned value is assigned to the flag variable flag = checkPrimeNumber(n); if(flag == 1) printf("%d is not a prime number",n); else printf("%d is a prime number",n); return 0; ) // int is returned from the function int checkPrimeNumber(int n) ( int i; for(i=2; i <= n/2; ++i) ( if(n%i == 0) return 1; ) return 0; )
उपयोगकर्ता से इनपुट को checkPrimeNumber()
फ़ंक्शन में पास किया जाता है।
checkPrimeNumber()
समारोह जाँच करता है कि पारित कर दिया तर्क प्रधानमंत्री या नहीं है।
यदि उत्तीर्ण तर्क एक अभाज्य संख्या है, तो फ़ंक्शन 0. लौटाता है। यदि उत्तीर्ण तर्क एक गैर-अभाज्य संख्या है, तो फ़ंक्शन वापस आता है। वापसी मान ध्वज चर को दिया जाता है।
यह निर्भर करता है कि झंडा 0 या 1 है, main()
फ़ंक्शन से एक उपयुक्त संदेश मुद्रित किया जाता है।
कौन सा दृष्टिकोण बेहतर है?
खैर, यह उस समस्या पर निर्भर करता है जिसे आप हल करने की कोशिश कर रहे हैं। इस मामले में, तर्क पास करना और फ़ंक्शन से मान वापस करना (उदाहरण 4) बेहतर है।
एक फ़ंक्शन को एक विशिष्ट कार्य करना चाहिए। checkPrimeNumber()
समारोह उपयोगकर्ता से इनपुट नहीं ले करता है और न ही यह उचित संदेश प्रदर्शित करता है। यह केवल यह जांचता है कि कोई नंबर प्राइम है या नहीं।