User Define Function : Recursion or Multi file Programme in hindi in c language रिकर्शन इन हिंदी

रिकर्शन इन हिंदी User Define Function : Recursion or Multi file Programme in hindi in c language :-

Recursion : जब कोई function किसी दुसरे function को call कर सकता  है |लेकिन जब कोई function खुद को बार बार call करता है tab इस प्रोसेस को recursion कहते है |Recusion प्रोसेस पर ही recusion algorithm बनी है |

इस recusion algorithm से हम कई प्रॉब्लम (Honio Tower , tree traveler ,depth first search in graph ) solve हो सकती है |
Base condition:
किसी recursion function मे base condition वो condition होती है जिसके false होने तक recursion प्रोसेस चलती रहती है |
उदाहरण के लिए:
fact(int n)
{
int fact;
if(n==1)                   // Base condition//
{
return(1);
}
else
{
fact=n*fact(n-1);
return(fact);
}
इस function मे जब तक n की 1 नहीं होती है जब तक fact() की calling होती है |हर बार passing argument n-1 होता है |
Recursion types :
 
Recursion दो प्रकार का होता है |
1.Direct recursion
इसमें function() , direct ही खुद को call करता है |जैसे की factorial function मे|इस उदाहरण मे ,fact() जबतक की value n की value 1 नहीं होती जब तक खुद को fact() को call करता है |
#include <stdio.h>
#include<conio.h>
int fact(int);
void main()
{
number 1() ;
number 2();
getch();
}
number( )
{
int fact;
if(n==1)                   // Base condition//
{
return(1);
}
else
{
fact=n*fact(n-1);
return(fact);
}
 
आउटपुट होगा :
2.Indirect  recursion
इस प्रकार मे जब कोई function ,function 1() पहले कोई दूसरा function function2() को call करता है,function2() फिर function 1()  को call करता है tab इस function को  Indirect  recursion कहते है |इसका उदाहरण है  :-
#include <stdio.h>
#include<conio.h>
void num 1(int);
void num 2(int);
int i;
void main()
{
printf(“Enter data”);
scanf(“%d”,&i);
num 1( );
}
void num 1( )
{
int  n=0;
if(n<=i)
printf(“%d”,n);
n++;
num 2( n );
}
else
{
return ();
}
}
void num 2( int m )
{
if(m<=i)
{
printf(“%d”,m);
m++;
num 1();
}
else
{
Return();
}
}
आउटपुट होगा :
Enter data 10
0 1 2 3 4 5 6 7 8 9 10
 
जब किसी recusion मे function के execution के आधार पर दो भागो मे डिवाइड किया गया है :-

1.Tail Recusion
कोई recursion ,tail recursion होता है जब इसमें recursion statement, function के last मे execute होता है |TAIL recursion ,Non tail recursion से better होती है|इस प्रकार से  complier को प्रोग्रम को समजने मे आसानी होती है क्योकि recursion statement के बाद कोई और statement execute के लिए नहीं होता है |
वतर्मान मे complier tail call elimination  को use करता है recursion प्रोग्राम को पढने के लिए|
उदाहरण के लिए :
#include<conio.h>
#include<stdio.h>
void print( char );
int i=0;
void main()
{
printf(“Enter charcter”);
scanf(“%c”,&c);
print( c );
}
void print( char a)
{
if(i==20)
{
return ();
}
else
{
printf(“%c”,a);
i++;
print(a);
}
}
Non tail Recursion :
जब किसी Recursion मे ,Recursion statement last नहीं होता है तब इसे Non tail Recursion कहते है |
 
Passing a string to function :
string character का समूह होता है| किसी string को function के arguments मे pass करने का syntax array as argument के syntax की तरह होता है |
इसका syntax है :-
function calling मे, केवल string के नाम से call किया  जाता है |
syntax : function name (string _name) ;
function definition मे , string_name से define किया जाता है |
syntax : function type function_name (char string_name[ ]);
Function header का syntax one dimension array की तरह होता है |उदाहरण के लिए :
#include<stdio.h>
#include<conio.h>
void print( char);
void main()
{
char a;
printf(“Enter your charter “);
scanf(“%c”,&a);
print(a);
getch();
}
void print( char b)
{
int i=0;
for(i=0;i<=20;i++)
{
printf(“%c”,b);
}

आउटपुट होगा :
Enter your charter #
####################


Calling Function :
किसी भी function को main() function मे call करने के दो तरीके होते है :-
1.call by value
इस प्रकार मे , arguments मे किसी variable के data value को calling function मे pass किया जाता है |user define function मे variable की value मे हुई changes का effect main() function के actual variable पर नहीं पड़ता है |
2.Call by reference
इसमें actual parameter के address formal parameter मे pass होती है |user define function मे हुई changes  का effect actual parameter मे होता है |