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 किया गया है |
हिंदी माध्यम नोट्स
Class 6
Hindi social science science maths English
Class 7
Hindi social science science maths English
Class 8
Hindi social science science maths English
Class 9
Hindi social science science Maths English
Class 10
Hindi Social science science Maths English
Class 11
Hindi sociology physics physical education maths english economics geography History
chemistry business studies biology accountancy political science
Class 12
Hindi physics physical education maths english economics
chemistry business studies biology accountancy Political science History sociology
English medium Notes
Class 6
Hindi social science science maths English
Class 7
Hindi social science science maths English
Class 8
Hindi social science science maths English
Class 9
Hindi social science science Maths English
Class 10
Hindi Social science science Maths English
Class 11
Hindi physics physical education maths entrepreneurship english economics
chemistry business studies biology accountancy
Class 12
Hindi physics physical education maths entrepreneurship english economics