हिंदी माध्यम नोट्स
C++ : CALL BY REFERENCE
what is C++ : CALL BY REFERENCE :- इससे पहले के article मे function type ,function structure और function parameter को discuss किया है इस article मे recursion function को discuss करेगे |
Recursion Function
जब किसी function को खुद को कल करता है तब इस function को recursion function कहते है | एक function मे दुसरे function को call किया जाता है | इस function मे दुसरे function को call करना आसान होता है | लेकिन जब कोई function मे खुद function को call किया जाता है | इस function को recusion function कहते है | किसी recursion function का struture निन्म होता है :-
void recursion_function ()
{
…………..
recursion_function ();
…………..
}
main()
{
…………..
recursion_function ()
…………..
}
इस struture मे recursion_function () एक recursion Fnction है क्योकि recursion_function () की body मे recursion_function () को call किया जाता है | और main() function मे recursion_function () को call किया जाता है |
किसी programming code मे braching करके भी recursion_function () को call किया जाता है | ब्रचिंफ़ infinite recusion को बंद किया जाता है | क्योकि जब तक braching if-else condition true होगी तब तक function को खुद call करेगे |
उदाहरन के लिए
void recursion_function ()
{
…………..
if(condition)
{
recursion_function ();
}
…………..
}
main()
{
…………..
recursion_function ()
…………..
}
इसका उदाहरन होता है :-
इस उदाहरन मे factorial को calculate किया जाता है | इस उदहारण मे resursion function को use किया गया है | इसका source code निन्म होता है |
#include<iostream.h>
#include<conio.h>
#include<math.h>
void fac( int );
void main()
{
int a ;
cout<<“Enter value : “;
cin>>a;
cout<<“Fctorial of”<<a<<“is”<<fac(a);
getch();
}
void fac( int f )
{
if(f>1)
{
return f*fac(f-1);
}
else
{
return 1;
}
}
इस उदाहरन मे सबसे पहले यूजर द्वारा value को input किया जाता है | इस value को variable ‘a’ को assign किया जाता है | suppose यूजर द्वारा input की value 5 है तब
fac() मे ,
सबसे पहले condition check की जाती है | (4>1 ) होगी तब num*fac(num-1)की value को return किया जाता है | अतः यह पर 4*fac(4-1) return होता है |
उसके बाद fac(3) को call किया जाता है इस function मे अगर (3>1 ) होगी तब num*fac(num-1)की value को return किया जाता है | और 4*3*fac(3-1) return होगा |
उसके बाद fac(2)को call किया जाता है इस function मे अगर (2>1) होगी तब num*fac(num-1)की value को return किया जाता है | और 4*3*2*fac(2-1) return होगा |
उसके बाद fac(1) को call किया जाता है इस function मे अगर (1>1 ) होगी तब num*fac(num-1)की value को return किया जाता है | और 4*3*2*1 return होगा |
इसका आउटपुट होगा :
Enter value : 4
Fctorial of 4 is 24
उदाहरन -2
इस उदाहरन मे 10 natural number के sum को calculate किया जाता है | इस उदहारण मे resursion function को use किया गया है | इसका source code निन्म होता है |
#include<iostream.h>
#include<conio.h>
#include<math.h>
int sum ( int );
void main()
{
int a ;
cout<<“Enter value : “;
cin>>a;
cout<<“Sum of”<<a<<“is”<<fac(a);
getch();
}
int sum( int f )
{
if(f>1)
{
return f+sum(f-1);
}
else
{
return 1;
}
}
इस उदाहरन मे सबसे पहले यूजर द्वारा value को input किया जाता है | इस value को variable ‘a’ को assign किया जाता है | suppose यूजर द्वारा input की value 5 है तब
sum() मे ,
सबसे पहले condition check की जाती है | (4>1 ) होगी तब num+sum(num-1)की value को return किया जाता है | अतः यह पर 4+sum(4-1) return होता है |
उसके बाद sum(3) को call किया जाता है इस function मे अगर (3>1 ) होगी तब num+sum(num-1)की value को return किया जाता है | और 4+3+sum(3-1) return होगा |
उसके बाद sum(2)को call किया जाता है इस function मे अगर (2>1) होगी तब num+sum(num-1)की value को return किया जाता है | और 4+3+2+sum(2-1) return होगा |
उसके बाद sum(1) को call किया जाता है इस function मे अगर (1>1 ) होगी तब num+sum(num-1)की value को return किया जाता है | और 4+3+2+1 return होगा |
इसका आउटपुट होगा :
Enter value : 4
Sum of 4 is 10
Call by reference
किसी function मे argument data type से pass किया जाता है इस प्रकार in variable के address से data variable को function मे pass किया जाता है | इसे call by reference कहते है | इस function call statement मे variable के address को pass किया जाता है | और function defition मे प्पोइंटर variable मे function मे pass किये variable address से initial किया गया है | इसका उदाहरन निन्म होता है |
#include<iostream.h>
#include<conio.h>
#include<math.h>
void sub(int* , int* );
void main()
{
static int a,b ;
cout<<“Enter value 1 : “;
cin>>a;
cout<<“Enter value2 : “;
cin>>b;
int output = add(&a,&b);
cout<<” Addition output of a+b :”<<output<<endl;
}
getch();
}
void add(int *e ,int *f )
{
int c= *e + *f ;
return c;
}
इस उदाहरन मे , variable ‘a’ और ‘b’ के address को function calling मे pass किया जाता है | और function definition मे पोइंत्येर variable ‘e’ और ‘f’ मे initial किया जाता है | |
इसके अलावा return statement मे भी variable के address को भी return किया जता है |
इस article मे recursion function और call by reference को discuss किया गया है |
Recent Posts
मालकाना का युद्ध malkhana ka yudh kab hua tha in hindi
malkhana ka yudh kab hua tha in hindi मालकाना का युद्ध ? मालकाना के युद्ध…
कान्हड़देव तथा अलाउद्दीन खिलजी के संबंधों पर प्रकाश डालिए
राणा रतन सिंह चित्तौड़ ( 1302 ई. - 1303 ) राजस्थान के इतिहास में गुहिलवंशी…
हम्मीर देव चौहान का इतिहास क्या है ? hammir dev chauhan history in hindi explained
hammir dev chauhan history in hindi explained हम्मीर देव चौहान का इतिहास क्या है ?…
तराइन का प्रथम युद्ध कब और किसके बीच हुआ द्वितीय युद्ध Tarain battle in hindi first and second
Tarain battle in hindi first and second तराइन का प्रथम युद्ध कब और किसके बीच…
चौहानों की उत्पत्ति कैसे हुई थी ? chahamana dynasty ki utpatti kahan se hui in hindi
chahamana dynasty ki utpatti kahan se hui in hindi चौहानों की उत्पत्ति कैसे हुई थी…
भारत पर पहला तुर्क आक्रमण किसने किया कब हुआ first turk invaders who attacked india in hindi
first turk invaders who attacked india in hindi भारत पर पहला तुर्क आक्रमण किसने किया…