SlideShare a Scribd company logo

RECURSION IN C

V
v_jk

This topics give a detailed explanation on recursive function in C

1 of 35
FUNCTIONS IN C FUNCTIONS IN C FUNCTIONS IN C FUNCTIONS IN C FUNCTIONS IN C
FUNCTIONS ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Library Functions User -defined Functions ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],FUNCTIONS CLASSIFICATION OF FUNCTION
Problems encountered  when User-defined Functions  are not used ? ,[object Object],[object Object],[object Object],[object Object],[object Object]
Advantage of using  user-defined Functions   ,[object Object],[object Object],[object Object],[object Object],[object Object]
[object Object],Advantage of using  user-defined Functions   ,[object Object]
Method of Declaring and Defining a function   Classical Method ANSI (or) Modern Method ,[object Object],[object Object],[object Object],[object Object],Defining Function
FORMAT OF A C FUNCTION Function-name   ( Argument list ) argument declaration; { local variable declaration; executable statement 1; executable statement 2; . . . return  ( expression ); } (Function header ) (Function header ) (Function header ) (Function body )
RULES TO BE FOLLOWED IN NAMING A FUNCTION ,[object Object],[object Object],[object Object]
What is an argument list ? ,[object Object],[object Object],[object Object]
RETURN  STATEMENT A function may or may not send back any value to the calling function. If it sends back any value , it is done through the return statement. The return statement can return only one value to the calling function.   The return statement can take the following form :  Return ;  ( or )  return ( expression )   ;
Return;   This form does not return any value to the calling function. When a return statement is encountered the control is immediately passed back to the calling function. Return ( expression ); This form returns the value of the expression to the calling function. A function may have more than one return statements. This situation arises when the value returned is based on certain conditions.  RETURN STATEMENT
What data type is returned by a function ? ,[object Object],[object Object],[object Object],[object Object]
HANDLING  OF  NON-INTEGER FUNCTIONS In order to enable a calling function to receive a non-integer value from a called function : ,[object Object],Type - specifier   function- name   (  argument list  ) argument declaration  ; { function statements ;  /* body of the function */ }
HANDLING  OF  NON-INTEGER FUNCTIONS 2. The called function must be declared at the start of the body in the calling function, like any other variable. This is to inform the calling function about the type of data that the called function is returning. EXAMPLE
HOW TO CALL A FUNCTION ? A function can be called by simply using the function name in a statement. When the compiler encounters a function call, the control is transferred to the function.  The statements within the body of the function is executed line by line and the value is returned when a return statement is encountered.
A function which returns a value can be used in expression like any other variable. WHERE CAN A FUNCTION CALL APPEAR ? However, a function cannot be used on the left side of an assignment statement.  A function that does not return any value may not be used in expressions, but can be called to perform certain tasks specified in the function.
EXAMPLE OF FUNCTION : ( CLASSIC Method) void main ( ) { int num1, num2 , sum ; sum  =  add  (  num1 , num2 ) ; printf ( “ %d ” , sum ) ; } Function header Body of the function Argument declaration Function call add ( a , b ) int a , b ; { return ( a + b ) ; }
EXAMPLE OF FUNCTION : (  ANSI  Method ) void main ( ) { int num1, num2 , sum ; sum  =  add  (  num1 , num2 )  ; printf ( “ %d ” , sum ) ; } add ( int a , int b ) { return ( a + b ) ; } Function header Body of the function Argument declaration Function call
EXAMPLE OF FUNCTION : (CLASSIC Method) void main ( ) { int num1 ; float num2 , sum ,add(int, float ); sum  =  add  (  num1 , num2 )  ; printf ( “ %f ” , sum ) ; } float add ( a , b ) int a  ; float b ; { return ( a + b ) ; } Function header Body of the function Argument declaration Function call
EXAMPLE OF FUNCTION : ( ANSI Method ) void  main ( ) { int num1 ; float num2 , sum , add ( int , float )  ; sum  =  add  (  num1 , num2 )  ; printf ( “ %f ” , sum ) ; } float add ( int a , float b ) { return ( a + b ) ; } Function header Body of the function Function call
CATEGORY OF FUNCTIONS ,[object Object],[object Object],[object Object]
Function with no argument & no return values void  main ( ) { void printwel( ); printwel ( ) ; } void printwel ( )  { int i ; for ( i = 1; i < = 5 ; i + + ) printf  ( “ n  WELCOME” ) ; } Function header Body of the function Function call Argument declaration
Function with argument & no return values void  main ( ) { int num1, num2  ; void  add  ( int , int )  ; add  (  num1 , num2 )  ; } void  add ( int a , int b ) { int sum ; sum =  a + b  ; printf (“ n SUM OF %d  AND %d IS =  %d”, a, b, sum ); } Function header Body of the function Function call Argument declaration
Function with arguments & return values void  main ( ) { int num1 ; float num2 , sum , add ( ) ; sum  =  add  (  num1 , num2 )  ; printf ( “ %f ” , sum ) ; } float add ( a , b ) int a ; float b ; { return ( a + b ) ; } Function header Body of the function Function call Argument declaration
NESTING OF FUNCTIONS void main ( ) { int m1=10, m2=20, m3=30; int m4=40, m5=50; void sum (int, int, int, int, int ); sum (m1, m2, m3, m4, m5 ); } void sum ( s1, s2, s3, s4, s4) int s1, s2, s3, s4, s5 ; { void avg (float ); float total; total = s1 + s2 + s3 + s4 + s5 ; avg ( total ); } void avg ( tot) float tot; { float average; average = tot / 5 ; printf ( “  The average is %f “, average); }
RECURSION When a called function in turn calls another function a process of chaining occurs. Recursion is a special case of this process, where a function calls itself. Example : void main ( )   { printf ( “  This is an example of recursion”); main ( ) ;  } Recursive function call
factorial (  n  )  int n ; { int fact ; if ( n = = 1 ) return ( 1 ) ; else  fact = n *   factorial ( n - 1 )  ; return ( fact ) ; } void main( ) { int num ; num_fact  = factorial ( num ) ; printf ( “ Factorial is % d”,num); } FACTORIAL OF A GIVEN NUMBER USING RECURSION
void main( ) { int  num  = 5 ; int num_fact  = 0 ;  num_fact   =  factorial ( 5 )  ; printf ( “ Factorial is % d”, num_fact ); } num 5 TO FIND FACTORIAL OF A GIVEN NUMBER  5  num_fact 0 num_fact 1 2 0
factorial ( 5 )  int n ; { int fact ; if ( 5 = = 1 ) return ( 1 ) ; else  fact =  5  *  factorial ( 5 - 1 )   ; return ( fact  )  ; } 120 fact 1 2 0
factorial ( 4 )  int n ; { int fact ; if ( 4 = = 1 ) return ( 1 ) ; else  fact =  4  *     factorial ( 4 - 1 )  ; return ( fact )  ; } 24 fact 2 4
factorial ( 3 )  int n ; { int fact ; if ( 3 = = 1 ) return ( 1 ) ; else  fact = 3 *   factorial ( 3 - 1 )  ; return ( fact ) ; } 6 fact 6
factorial ( 2 )  int n ; { int fact ; if ( 2 = = 1 ) return ( 1 ) ; else  fact = 2  *  factorial ( 2 - 1 )   ; return ( fact )  ; } 2 fact 2
factorial ( 1 )  int n ; { int fact ; if ( 1 = = 1 ) return ( 1 )  ; else  fact = n  *  factorial ( n - 1 )   ; return ( fact ) ; } fact 1
THANK YOU M.O.P. VAISHNAV COLLEGE FOR WOMEN CHENNAI - 34 DATE : 1/10/2001 Presented by A. ANGAYARKANNI Dept. of Computer Science

Recommended

More Related Content

What's hot (20)

Structure in C
Structure in CStructure in C
Structure in C
 
Pointer in c
Pointer in cPointer in c
Pointer in c
 
Pointers in c++
Pointers in c++Pointers in c++
Pointers in c++
 
Control statements in c
Control statements in cControl statements in c
Control statements in c
 
Strings in C
Strings in CStrings in C
Strings in C
 
Arrays
ArraysArrays
Arrays
 
Data types in c++
Data types in c++Data types in c++
Data types in c++
 
Functions in c language
Functions in c language Functions in c language
Functions in c language
 
Programming in c Arrays
Programming in c ArraysProgramming in c Arrays
Programming in c Arrays
 
Array ppt
Array pptArray ppt
Array ppt
 
Dynamic memory allocation in c
Dynamic memory allocation in cDynamic memory allocation in c
Dynamic memory allocation in c
 
Array in c
Array in cArray in c
Array in c
 
Recursion
RecursionRecursion
Recursion
 
Operator Overloading
Operator OverloadingOperator Overloading
Operator Overloading
 
Functions in C
Functions in CFunctions in C
Functions in C
 
Function in c
Function in cFunction in c
Function in c
 
Function in C
Function in CFunction in C
Function in C
 
Recursive Function
Recursive FunctionRecursive Function
Recursive Function
 
Function C programming
Function C programmingFunction C programming
Function C programming
 
Arrays in c
Arrays in cArrays in c
Arrays in c
 

Similar to RECURSION IN C (20)

Dti2143 chapter 5
Dti2143 chapter 5Dti2143 chapter 5
Dti2143 chapter 5
 
function_v1.ppt
function_v1.pptfunction_v1.ppt
function_v1.ppt
 
function_v1.ppt
function_v1.pptfunction_v1.ppt
function_v1.ppt
 
Function in c
Function in cFunction in c
Function in c
 
Function
Function Function
Function
 
C Programming Language Part 7
C Programming Language Part 7C Programming Language Part 7
C Programming Language Part 7
 
UNIT3.pptx
UNIT3.pptxUNIT3.pptx
UNIT3.pptx
 
functionsinc-130108032745-phpapp01.pdf
functionsinc-130108032745-phpapp01.pdffunctionsinc-130108032745-phpapp01.pdf
functionsinc-130108032745-phpapp01.pdf
 
Functions
Functions Functions
Functions
 
C and C++ functions
C and C++ functionsC and C++ functions
C and C++ functions
 
Function
FunctionFunction
Function
 
Functionincprogram
FunctionincprogramFunctionincprogram
Functionincprogram
 
Unit 4 (1)
Unit 4 (1)Unit 4 (1)
Unit 4 (1)
 
Unit_5Functionspptx__2022_12_27_10_47_17 (1).pptx
Unit_5Functionspptx__2022_12_27_10_47_17 (1).pptxUnit_5Functionspptx__2022_12_27_10_47_17 (1).pptx
Unit_5Functionspptx__2022_12_27_10_47_17 (1).pptx
 
functions
functionsfunctions
functions
 
Function
FunctionFunction
Function
 
unit3 part2 pcds function notes.pdf
unit3 part2 pcds function notes.pdfunit3 part2 pcds function notes.pdf
unit3 part2 pcds function notes.pdf
 
Function in c program
Function in c programFunction in c program
Function in c program
 
Functions struct&union
Functions struct&unionFunctions struct&union
Functions struct&union
 
Functions
FunctionsFunctions
Functions
 

Recently uploaded

Unit 5th topic Drugs used in congestive Heart failure and shock.pdf
Unit 5th topic Drugs used in congestive Heart failure and shock.pdfUnit 5th topic Drugs used in congestive Heart failure and shock.pdf
Unit 5th topic Drugs used in congestive Heart failure and shock.pdfSUMIT TIWARI
 
Data Modeling - Enhanced ER diagrams & Mapping.pdf
Data Modeling - Enhanced ER diagrams & Mapping.pdfData Modeling - Enhanced ER diagrams & Mapping.pdf
Data Modeling - Enhanced ER diagrams & Mapping.pdfChristalin Nelson
 
Enhancing MRD Testing in Hematologic Malignancies: When Negativity is a Posit...
Enhancing MRD Testing in Hematologic Malignancies: When Negativity is a Posit...Enhancing MRD Testing in Hematologic Malignancies: When Negativity is a Posit...
Enhancing MRD Testing in Hematologic Malignancies: When Negativity is a Posit...i3 Health
 
Successful projects and failed programmes – the cost of not designing the who...
Successful projects and failed programmes – the cost of not designing the who...Successful projects and failed programmes – the cost of not designing the who...
Successful projects and failed programmes – the cost of not designing the who...Association for Project Management
 
Peninsula Channel Commanders Rules Handbook
Peninsula Channel Commanders Rules HandbookPeninsula Channel Commanders Rules Handbook
Peninsula Channel Commanders Rules Handbookpccwebmasterhmb
 
Dr.M.Florence Dayana-Cloud Computing-Unit - 1.pdf
Dr.M.Florence Dayana-Cloud Computing-Unit - 1.pdfDr.M.Florence Dayana-Cloud Computing-Unit - 1.pdf
Dr.M.Florence Dayana-Cloud Computing-Unit - 1.pdfDr.Florence Dayana
 
Plagiarism, Types & Consequences by Dr. Sarita Anand
Plagiarism, Types & Consequences by Dr. Sarita AnandPlagiarism, Types & Consequences by Dr. Sarita Anand
Plagiarism, Types & Consequences by Dr. Sarita AnandDr. Sarita Anand
 
2.27.24 Malcolm X and the Black Freedom Struggle.pptx
2.27.24 Malcolm X and the Black Freedom Struggle.pptx2.27.24 Malcolm X and the Black Freedom Struggle.pptx
2.27.24 Malcolm X and the Black Freedom Struggle.pptxMaryPotorti1
 
Capitol Doctoral Presentation -Feb 2024.pptx
Capitol Doctoral Presentation -Feb 2024.pptxCapitol Doctoral Presentation -Feb 2024.pptx
Capitol Doctoral Presentation -Feb 2024.pptxCapitolTechU
 
Can Brain Science Actually Help Make Your Training & Teaching "Stick"?
Can Brain Science Actually Help Make Your Training & Teaching "Stick"?Can Brain Science Actually Help Make Your Training & Teaching "Stick"?
Can Brain Science Actually Help Make Your Training & Teaching "Stick"?Aggregage
 
Managing Choice, Coherence and Specialisation in Upper Secondary Education - ...
Managing Choice, Coherence and Specialisation in Upper Secondary Education - ...Managing Choice, Coherence and Specialisation in Upper Secondary Education - ...
Managing Choice, Coherence and Specialisation in Upper Secondary Education - ...EduSkills OECD
 
SSC Hindu Religion and Moral Education MCQ Solutions 2024.pdf
SSC Hindu Religion and Moral Education MCQ Solutions 2024.pdfSSC Hindu Religion and Moral Education MCQ Solutions 2024.pdf
SSC Hindu Religion and Moral Education MCQ Solutions 2024.pdfMohonDas
 
Practical Research 1, Lesson 5: DESIGNING A RESEARCH PROJECT RELATED TO DAILY...
Practical Research 1, Lesson 5: DESIGNING A RESEARCH PROJECT RELATED TO DAILY...Practical Research 1, Lesson 5: DESIGNING A RESEARCH PROJECT RELATED TO DAILY...
Practical Research 1, Lesson 5: DESIGNING A RESEARCH PROJECT RELATED TO DAILY...Katherine Villaluna
 
ICS2208 Lecture 2 Slides Interfaces_.pdf
ICS2208 Lecture 2 Slides Interfaces_.pdfICS2208 Lecture 2 Slides Interfaces_.pdf
ICS2208 Lecture 2 Slides Interfaces_.pdfVanessa Camilleri
 
Mycobacteriology update 2024 Margie Morgan.ppt
Mycobacteriology update 2024 Margie Morgan.pptMycobacteriology update 2024 Margie Morgan.ppt
Mycobacteriology update 2024 Margie Morgan.pptMargie Morgan
 
MEC MAJUBA SADDENED BY THE PASSING AWAY OF THREE TEACHERS FOLLOWING A CAR ACC...
MEC MAJUBA SADDENED BY THE PASSING AWAY OF THREE TEACHERS FOLLOWING A CAR ACC...MEC MAJUBA SADDENED BY THE PASSING AWAY OF THREE TEACHERS FOLLOWING A CAR ACC...
MEC MAJUBA SADDENED BY THE PASSING AWAY OF THREE TEACHERS FOLLOWING A CAR ACC...SABC News
 
Candace-Stone project& portfolio 1 class
Candace-Stone project& portfolio 1 classCandace-Stone project& portfolio 1 class
Candace-Stone project& portfolio 1 classccstone
 
CATCH UP FRIDAY LESSON PLAN GRADE 6.docx
CATCH UP FRIDAY LESSON PLAN GRADE 6.docxCATCH UP FRIDAY LESSON PLAN GRADE 6.docx
CATCH UP FRIDAY LESSON PLAN GRADE 6.docxAizaPolinarCruz
 
Kartik Nair In Media Res Media Component
Kartik Nair In Media Res Media ComponentKartik Nair In Media Res Media Component
Kartik Nair In Media Res Media ComponentInMediaRes1
 

Recently uploaded (20)

Unit 5th topic Drugs used in congestive Heart failure and shock.pdf
Unit 5th topic Drugs used in congestive Heart failure and shock.pdfUnit 5th topic Drugs used in congestive Heart failure and shock.pdf
Unit 5th topic Drugs used in congestive Heart failure and shock.pdf
 
Data Modeling - Enhanced ER diagrams & Mapping.pdf
Data Modeling - Enhanced ER diagrams & Mapping.pdfData Modeling - Enhanced ER diagrams & Mapping.pdf
Data Modeling - Enhanced ER diagrams & Mapping.pdf
 
Advance Mobile Application Development class 04
Advance Mobile Application Development class 04Advance Mobile Application Development class 04
Advance Mobile Application Development class 04
 
Enhancing MRD Testing in Hematologic Malignancies: When Negativity is a Posit...
Enhancing MRD Testing in Hematologic Malignancies: When Negativity is a Posit...Enhancing MRD Testing in Hematologic Malignancies: When Negativity is a Posit...
Enhancing MRD Testing in Hematologic Malignancies: When Negativity is a Posit...
 
Successful projects and failed programmes – the cost of not designing the who...
Successful projects and failed programmes – the cost of not designing the who...Successful projects and failed programmes – the cost of not designing the who...
Successful projects and failed programmes – the cost of not designing the who...
 
Peninsula Channel Commanders Rules Handbook
Peninsula Channel Commanders Rules HandbookPeninsula Channel Commanders Rules Handbook
Peninsula Channel Commanders Rules Handbook
 
Dr.M.Florence Dayana-Cloud Computing-Unit - 1.pdf
Dr.M.Florence Dayana-Cloud Computing-Unit - 1.pdfDr.M.Florence Dayana-Cloud Computing-Unit - 1.pdf
Dr.M.Florence Dayana-Cloud Computing-Unit - 1.pdf
 
Plagiarism, Types & Consequences by Dr. Sarita Anand
Plagiarism, Types & Consequences by Dr. Sarita AnandPlagiarism, Types & Consequences by Dr. Sarita Anand
Plagiarism, Types & Consequences by Dr. Sarita Anand
 
2.27.24 Malcolm X and the Black Freedom Struggle.pptx
2.27.24 Malcolm X and the Black Freedom Struggle.pptx2.27.24 Malcolm X and the Black Freedom Struggle.pptx
2.27.24 Malcolm X and the Black Freedom Struggle.pptx
 
Capitol Doctoral Presentation -Feb 2024.pptx
Capitol Doctoral Presentation -Feb 2024.pptxCapitol Doctoral Presentation -Feb 2024.pptx
Capitol Doctoral Presentation -Feb 2024.pptx
 
Can Brain Science Actually Help Make Your Training & Teaching "Stick"?
Can Brain Science Actually Help Make Your Training & Teaching "Stick"?Can Brain Science Actually Help Make Your Training & Teaching "Stick"?
Can Brain Science Actually Help Make Your Training & Teaching "Stick"?
 
Managing Choice, Coherence and Specialisation in Upper Secondary Education - ...
Managing Choice, Coherence and Specialisation in Upper Secondary Education - ...Managing Choice, Coherence and Specialisation in Upper Secondary Education - ...
Managing Choice, Coherence and Specialisation in Upper Secondary Education - ...
 
SSC Hindu Religion and Moral Education MCQ Solutions 2024.pdf
SSC Hindu Religion and Moral Education MCQ Solutions 2024.pdfSSC Hindu Religion and Moral Education MCQ Solutions 2024.pdf
SSC Hindu Religion and Moral Education MCQ Solutions 2024.pdf
 
Practical Research 1, Lesson 5: DESIGNING A RESEARCH PROJECT RELATED TO DAILY...
Practical Research 1, Lesson 5: DESIGNING A RESEARCH PROJECT RELATED TO DAILY...Practical Research 1, Lesson 5: DESIGNING A RESEARCH PROJECT RELATED TO DAILY...
Practical Research 1, Lesson 5: DESIGNING A RESEARCH PROJECT RELATED TO DAILY...
 
ICS2208 Lecture 2 Slides Interfaces_.pdf
ICS2208 Lecture 2 Slides Interfaces_.pdfICS2208 Lecture 2 Slides Interfaces_.pdf
ICS2208 Lecture 2 Slides Interfaces_.pdf
 
Mycobacteriology update 2024 Margie Morgan.ppt
Mycobacteriology update 2024 Margie Morgan.pptMycobacteriology update 2024 Margie Morgan.ppt
Mycobacteriology update 2024 Margie Morgan.ppt
 
MEC MAJUBA SADDENED BY THE PASSING AWAY OF THREE TEACHERS FOLLOWING A CAR ACC...
MEC MAJUBA SADDENED BY THE PASSING AWAY OF THREE TEACHERS FOLLOWING A CAR ACC...MEC MAJUBA SADDENED BY THE PASSING AWAY OF THREE TEACHERS FOLLOWING A CAR ACC...
MEC MAJUBA SADDENED BY THE PASSING AWAY OF THREE TEACHERS FOLLOWING A CAR ACC...
 
Candace-Stone project& portfolio 1 class
Candace-Stone project& portfolio 1 classCandace-Stone project& portfolio 1 class
Candace-Stone project& portfolio 1 class
 
CATCH UP FRIDAY LESSON PLAN GRADE 6.docx
CATCH UP FRIDAY LESSON PLAN GRADE 6.docxCATCH UP FRIDAY LESSON PLAN GRADE 6.docx
CATCH UP FRIDAY LESSON PLAN GRADE 6.docx
 
Kartik Nair In Media Res Media Component
Kartik Nair In Media Res Media ComponentKartik Nair In Media Res Media Component
Kartik Nair In Media Res Media Component
 

RECURSION IN C

  • 1. FUNCTIONS IN C FUNCTIONS IN C FUNCTIONS IN C FUNCTIONS IN C FUNCTIONS IN C
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8. FORMAT OF A C FUNCTION Function-name ( Argument list ) argument declaration; { local variable declaration; executable statement 1; executable statement 2; . . . return ( expression ); } (Function header ) (Function header ) (Function header ) (Function body )
  • 9.
  • 10.
  • 11. RETURN STATEMENT A function may or may not send back any value to the calling function. If it sends back any value , it is done through the return statement. The return statement can return only one value to the calling function. The return statement can take the following form : Return ; ( or ) return ( expression ) ;
  • 12. Return; This form does not return any value to the calling function. When a return statement is encountered the control is immediately passed back to the calling function. Return ( expression ); This form returns the value of the expression to the calling function. A function may have more than one return statements. This situation arises when the value returned is based on certain conditions. RETURN STATEMENT
  • 13.
  • 14.
  • 15. HANDLING OF NON-INTEGER FUNCTIONS 2. The called function must be declared at the start of the body in the calling function, like any other variable. This is to inform the calling function about the type of data that the called function is returning. EXAMPLE
  • 16. HOW TO CALL A FUNCTION ? A function can be called by simply using the function name in a statement. When the compiler encounters a function call, the control is transferred to the function. The statements within the body of the function is executed line by line and the value is returned when a return statement is encountered.
  • 17. A function which returns a value can be used in expression like any other variable. WHERE CAN A FUNCTION CALL APPEAR ? However, a function cannot be used on the left side of an assignment statement. A function that does not return any value may not be used in expressions, but can be called to perform certain tasks specified in the function.
  • 18. EXAMPLE OF FUNCTION : ( CLASSIC Method) void main ( ) { int num1, num2 , sum ; sum = add ( num1 , num2 ) ; printf ( “ %d ” , sum ) ; } Function header Body of the function Argument declaration Function call add ( a , b ) int a , b ; { return ( a + b ) ; }
  • 19. EXAMPLE OF FUNCTION : ( ANSI Method ) void main ( ) { int num1, num2 , sum ; sum = add ( num1 , num2 ) ; printf ( “ %d ” , sum ) ; } add ( int a , int b ) { return ( a + b ) ; } Function header Body of the function Argument declaration Function call
  • 20. EXAMPLE OF FUNCTION : (CLASSIC Method) void main ( ) { int num1 ; float num2 , sum ,add(int, float ); sum = add ( num1 , num2 ) ; printf ( “ %f ” , sum ) ; } float add ( a , b ) int a ; float b ; { return ( a + b ) ; } Function header Body of the function Argument declaration Function call
  • 21. EXAMPLE OF FUNCTION : ( ANSI Method ) void main ( ) { int num1 ; float num2 , sum , add ( int , float ) ; sum = add ( num1 , num2 ) ; printf ( “ %f ” , sum ) ; } float add ( int a , float b ) { return ( a + b ) ; } Function header Body of the function Function call
  • 22.
  • 23. Function with no argument & no return values void main ( ) { void printwel( ); printwel ( ) ; } void printwel ( ) { int i ; for ( i = 1; i < = 5 ; i + + ) printf ( “ n WELCOME” ) ; } Function header Body of the function Function call Argument declaration
  • 24. Function with argument & no return values void main ( ) { int num1, num2 ; void add ( int , int ) ; add ( num1 , num2 ) ; } void add ( int a , int b ) { int sum ; sum = a + b ; printf (“ n SUM OF %d AND %d IS = %d”, a, b, sum ); } Function header Body of the function Function call Argument declaration
  • 25. Function with arguments & return values void main ( ) { int num1 ; float num2 , sum , add ( ) ; sum = add ( num1 , num2 ) ; printf ( “ %f ” , sum ) ; } float add ( a , b ) int a ; float b ; { return ( a + b ) ; } Function header Body of the function Function call Argument declaration
  • 26. NESTING OF FUNCTIONS void main ( ) { int m1=10, m2=20, m3=30; int m4=40, m5=50; void sum (int, int, int, int, int ); sum (m1, m2, m3, m4, m5 ); } void sum ( s1, s2, s3, s4, s4) int s1, s2, s3, s4, s5 ; { void avg (float ); float total; total = s1 + s2 + s3 + s4 + s5 ; avg ( total ); } void avg ( tot) float tot; { float average; average = tot / 5 ; printf ( “ The average is %f “, average); }
  • 27. RECURSION When a called function in turn calls another function a process of chaining occurs. Recursion is a special case of this process, where a function calls itself. Example : void main ( ) { printf ( “ This is an example of recursion”); main ( ) ; } Recursive function call
  • 28. factorial ( n ) int n ; { int fact ; if ( n = = 1 ) return ( 1 ) ; else fact = n * factorial ( n - 1 ) ; return ( fact ) ; } void main( ) { int num ; num_fact = factorial ( num ) ; printf ( “ Factorial is % d”,num); } FACTORIAL OF A GIVEN NUMBER USING RECURSION
  • 29. void main( ) { int num = 5 ; int num_fact = 0 ; num_fact = factorial ( 5 ) ; printf ( “ Factorial is % d”, num_fact ); } num 5 TO FIND FACTORIAL OF A GIVEN NUMBER 5 num_fact 0 num_fact 1 2 0
  • 30. factorial ( 5 ) int n ; { int fact ; if ( 5 = = 1 ) return ( 1 ) ; else fact = 5 * factorial ( 5 - 1 ) ; return ( fact ) ; } 120 fact 1 2 0
  • 31. factorial ( 4 ) int n ; { int fact ; if ( 4 = = 1 ) return ( 1 ) ; else fact = 4 * factorial ( 4 - 1 ) ; return ( fact ) ; } 24 fact 2 4
  • 32. factorial ( 3 ) int n ; { int fact ; if ( 3 = = 1 ) return ( 1 ) ; else fact = 3 * factorial ( 3 - 1 ) ; return ( fact ) ; } 6 fact 6
  • 33. factorial ( 2 ) int n ; { int fact ; if ( 2 = = 1 ) return ( 1 ) ; else fact = 2 * factorial ( 2 - 1 ) ; return ( fact ) ; } 2 fact 2
  • 34. factorial ( 1 ) int n ; { int fact ; if ( 1 = = 1 ) return ( 1 ) ; else fact = n * factorial ( n - 1 ) ; return ( fact ) ; } fact 1
  • 35. THANK YOU M.O.P. VAISHNAV COLLEGE FOR WOMEN CHENNAI - 34 DATE : 1/10/2001 Presented by A. ANGAYARKANNI Dept. of Computer Science