Header Ads

ad728
  • New Updates

    Function with Argument But No Return Value


    Function with Argument But No Return Value

    इस प्रकार के User Defined Function में Calling Function से Arguments के रूप में Parameters  Pass होते हैं लेकिन Calling Function को किसी प्रकार का कोई मान Return नहीं होता है | जब main() Function के किसी Variable का मान , किसी User Defined Function द्वारा उपयोग में लाया जाना होता है , तो वह मान User Defined Function को Pass का दिया जाता है |

    जब main() Function के कोई Variables या किसी अन्य Function के कोई Variables के मान किसी User Defined Function के कोष्टक में भेजे जाते हैं , तो इन मानों को Arguments को Comma Separator द्वारा अलग रखा जाता है | जब हम किसी Calling Function के Variables के मान User Defined Function को Pass करते हैं , तो ये Arguments ACTUAL Parameters कहलाते है , क्योंकि Called Function को Calling Function के Variables के वास्तविक मान भेजे जा रहे होते हैं |

    जब किसी Function को Call करते समय उसमें Arguments के रूप में ACTUAL Parameters Pass किये जाते है , तो इस प्रकार से Call किये गए Called Function को Call By Value Function कहा जाता है |

    जब हम किसी User Defined Function को किसी अन्य Function से Argument Pass करते है , तो हमें User Defined Function के कोष्टक में भी Arguments Declare करने पड़ते हैं , ताकि ACTUAL Parameters के रूप में प्राप्त होने वाले मानों को User Defined Function में किन्ही अन्य Variables में Store करके रखा जा सके और उनके साथ आवश्यकतानुसार प्रक्रिया करके वांछित परिणाम प्राप्त किये जा सकें |

    User Defined Function में Declare किये गए ये Arguments FORMAL Arguments कहलाते हैं | Calling Function से प्राप्त ACTUAL Arguments के Variables के मान उसी क्रम में User Defined Function के कोष्टक में Declare किये गए FORMAL Arguments के Variables को प्राप्त हो जाते हैं | इसे हम निम्न प्रोग्राम द्वारा समझाने की कोशिश करते हैं |

    
    
    #include<header file>
    main()
    {
        int x,y; // Variables Declaration
        float z;
        clrscr();
          sum   (  x,  y ,  z)  // Formal Arguments 
        int a, b;  |   |    |   // Arguments Declaration
        getch();   |   |    |
    }             \|/ \|/  \|/
          sum   (  a,  b ,  c)  // Formal Arguments
        int a, b;               //Arguments Declaration
        float c;	
    {
         “   “   “ ;
         “   “   “ ;
    }
    
    
    
    

    इस प्रोग्राम में तीन Variables  x,y,z लिए गए है | x y int प्रकार के हैं , जबकि z Float प्रकार का है | main() से बाहर एक User Defined Function Sum लिखा गया है | इस Function को main() Function में Call किया गया है | main() Function से Parameters के रूप में गए y z को sum के कोष्टक में लिख दिया गया है | इस प्रकार यदि हम मान लें की x=20, b=10 है तो x का मान a को व y का मान b को प्राप्त हो जाएगा | यानी x=a=20 y=b=10 हो जाएगा | इस प्रकार User Defined Function में a का मान 20 b का मान 10 हो जाएगा |

    x, y z का वास्तविक मान ही sum Function को दे दिया गया है , इसलिए ये ACTUAL Parameters हैं और इन Variables की एक Copy a, b c को प्राप्त हो रही है , इसलिए a, b c FORMAL Arguments हैं |

    वास्तव में Sum Function में गए y,z का जो मान क्रम से a,b c को प्राप्त होता है , वह मात्र एक प्रतिलिपि होती है | यदि यहां हम b का मान बदल कर 34 कर दें तो भी ACTUAL Argument में y का मान 10 ही रहेगा |

    यहां ये खास तरह से धयान रखना होता है कि User Defined Function में जितने Arguments Declare होते हैं , उतने ही Arguments वह Calling Function से Accept करता है | यानी हमने User Defined Function में केवल तीन Arguments के लिए Variables Declare किये हैं और Calling Function इस User Defined Function में चार मान Pass करता है तो क्रम से तीन Variables के मान तो User Defined Function में Declare Variables को प्राप्त हो जायेंगे लेकिन चौथा Parameter फ़ालतू ही रहेगा | जैसे

    
    #include<header file>
    main()
    {
        int x,y;   // Variables Declaration
        float z;
        clrscr();
          sum   ( x,  y , z , k);   // Formal Argument
        ………..     |   |   |
        ………..     |   |   |
        getch();  |   |   |
                  |   |   |
    }            \|/ \|/ \|/
          sum   ( a , b,  c )      //Arguments Declaration
        float c;
        {
          “   “   “ ;
          “   “   “ ;
        }
    
    

    इस प्रोग्राम में Sum User Defined Function केवल तीन Argument ही Accept कर सकता है | इसलिए c=a , y=b z=c हो जाएगा | लेकिन चौथा Arguments k का यहां पर कोई उपयोग नहीं है |

    क्योंकि ये Argument User Defined Function में Pass ही नहीं होगा और फ़ालतू में Memory में Space रोकेगा | इसी प्रकार यदि Actual Parameters , Formal Parameters से कम हो , तो User Defined Function में एक Variable खाली रहेगा और उसमें Garbage Value Store रहेगी | जैसे

    
    #include<header file>
    main()
    {
        int x,y;                  // Variables Declaration
        float z;
        clrscr();
            sum  ( x, y, z );     //Actual Arguments
        ………..      |  |  |
        ………..      |  |  |
        getch();   |  |  |
    }             \|/\|/\|/
            sum  ( a, b, c ,d )   // Formal Arguments
       int a, b;                  // Arguments Declaration 
       float c;
      {
           //……..
       }
    
    
    
    

    इस उदाहरण में Formal Parameters , Actual Parameters से अधिक है | इसलिए यहां User Defined Function में Variable d का कोई मतलब नहीं है और ये Garbage Value दिखायेगा हम जिस क्रम में Actual Parameters लिखते हैं , उसी क्रम में वे User Defined Function में Declare किये गए Arguments को प्राप्त होते हैं |

    एक और खास बात यहां ध्यान रखने की होती है , जो कि पहले भी बताया गया है , कि Actual Arguments के रूप में प्राप्त होने वाले Variables का Data Type , Formal Arguments के Declared Data Type के समान होना चाहिए | जैसे निम्न प्रोग्राम से प्रारूप को देखें :

    
    #include<header file>
    main()
    {
      int x, y; float z; clrscr();
         sum ( x , y , z );     //Actual Arguments
      ……..     |   |   |
      ……..     |   |   |
      getch(); |   |   |
    }         \|/ \|/ \|/
         sum ( a,  b , c )       // Formal Arguments
      int a , b;               // Arguments Declaration
      float c;
      {
        “   “   “ ;
        “   “   “ ;
       }                                                                                                                                                                                                                                                                                                                                 
    

    इस प्रोग्राम में x y को int प्रकार का लिया गया है | इसलिए जब इन्हें Argument के रूप में sum Function को भेजा गया तो वे मान क्रमशः a b को प्राप्त हो रहें हैं | इसलिए ये जरुरी है कि a b भी int प्रकार के ही  साथ  z का मान हमें Float में चाहिए , इसलिए z को User Defined Function में Argument के रूप में Pass करने पर z का मान c को प्राप्त होता है , जिससे ये जरुरी हो जाता है , कि c भी float प्रकार का हो |

    इसीलिए Formal Argument के Declaration के बाद a b का int c को float प्रकार का Declare किया गया है | यहां Call किये जा रहे Function को main() Function द्वारा Actual Arguments Pass किये जा रहें हैं |

    जब किसी Called Function में Actual Value Pass किया जाता है , तो इस प्रकार के Function को Call by Value Function कहा जाता है | हम इस प्रकार के Argument Without Return Value Function को अच्छी तरह से समझने के लिए एक प्रोग्राम बनाते हैं | इस प्रोग्राम में दो संख्याओं के जोड़ व गुणा करने के लिए दो Function Use किये गए हैं |

    
    
    #include<stdio.h>
    main()
    {
    	int j,k;
    	
    	printf("\n Enter first and Second Value:");
    	scanf("%d %d",&j,&k);
    	sum(j,k);
    	mul(j,k);
    	getch();
    }
    
    //function
     
    sum(int x , int y )
    {
    	int z;
    	z= x+y;
    	printf("\n Sum of %d and %d is %d",x,y,z);
    }
    
    //function
    
    mul(int l , int m)
    {
    	int n;
    	n= l*m;
    	printf("\n Multiplication of %d and %d is %d ",l,m,n);
    }
    
    

    जब ये Program Execute होता है तो program Control दो int प्रकार के Variable Declare करता है | फिर printf() Function से एक Message print करके Input लिया जाता है | ये मान क्रमशः j k को प्राप्त होते हैं |

    अब Program Control को एक User Defined Function Sum प्राप्त होता है | यहां Actual Argument के रूप में j k को Called Function Sum को Pass किया जाता है | sum में ये मान Formal Arguments के रूप में x y को प्राप्त होते हैं | यहां Block में एक अन्य Variable z Declare किया है | x y का योग करके प्राप्त मान को z में Store किया जाता है , और z का मान print करवा दिया जाता है |

    Program Control ये मान print करके पुनः main() Function में जाता है | यहां उसे एक और Function mul प्राप्त होता है और इसमें भी Actual Argument के तौर पर j k का मान क्रमशः l m को प्राप्त हो जाता है | Function Block में एक Local Variable n Declare किया गया है l m के गुणनफल का मान इस n नाम के int प्रकार के Variable में Store कर दिया जाता है , जो कि केवल User Defined Function के लिए ही Use हो सकता है | यहां Output में n को Print कर दिया जाता है , जो कि j k के मान का गुणनफल print करता है |

    Program Control वापस main() में जाता है | इस प्रकार इस प्रोग्राम में दो User Defined Function प्रयोग किये  गए हैं , जिन्हें किसी भी अन्य Function या main() Function में प्रोग्राम करके किन्हीं भी दो संख्याओं का योग या गुणनफल प्राप्त किया जा सकता है | इस प्रकार यहां दोनों ही Function , main() Function से Argument ले रहें हैं , लेकिन किसी भी प्रकार का कोई भी मान Return नहीं कर रहें हैं |

    
    #include<stdio.h>
    main()
    {
    int a, b;
    
    printf("Enter the two integer value:");
    scanf("%d %d", &a, &b);
    sum();
    getch();
    }
    sum(int x, int y)
    {
    	int z;
        z=x/y;
     printf("z=%d", z);
    }
    
    

    No comments

    Post Top Ad

    ad728

    Post Bottom Ad

    ad728