Programming for Problem Solving (PPS)
GTU # 3110003
                                                                           USING
Functions                                                                {C}
                                                                         Programming
  Prof. Nilesh Gambhava
  Computer Engineering Department,
  Darshan Institute of Engineering & Technology, Rajkot
What is Function?
 A function is a group of statements that perform a specific task.
 It divides a large program into smaller parts.
 A function is something like hiring a person to do a specific job for you.
 Every C program can be thought of as a collection of these functions.
 Program execution in C language starts from the main function.
                             Syntax
                           void main()
                           {
                               // body part
                           }
 Why function ?
      Avoids rewriting the same code over and over.
      Using functions it becomes easier to write programs and keep track of what they doing.
   Prof. Nilesh Gambhava                  #3110003 (PPS) – Functions                           2
Types of Function
                                                     Function
                           Library Function                          User Defined Function (UDF)
                Predefined or inbuilt                                      Created by User
                Declarations inside header files                           Programmer need to declare it
                Eg. printf() – stdio.h                                     Eg. findSimpleInterest()
                    pow() – math.h                                             areaOfCircle()
                    strcmp() – string.h
   Prof. Nilesh Gambhava                      #3110003 (PPS) – Functions                                   3
Program Structure for Function
 When we use a user-defined function program structure is divided into three parts.
  Function Structure
  void func1();                                                 Function Prototype
  void main()
  {
    ....
    func1();                                                       Function call
  }
  void func1()
  {
    ....                                                        Function definition
    //function body
    ....
  }
   Prof. Nilesh Gambhava           #3110003 (PPS) – Functions                         4
Function Prototype and Function Definition
                     Syntax                                                 Example
  Declaration
 return-type function-name (arg-1, arg 2, …);                     void addition(int, int);
   Definition
 return-type function-name (arg-1, arg 2, …)                      void addition(int x, int y)
 {                                                                {
        //... Function body                                         printf("Addition is=%d“,(x+y));
 }                                                                }
   Prof. Nilesh Gambhava             #3110003 (PPS) – Functions                                 5
Function Prototype
 A function Prototype also know as function declaration.
 A function declaration tells the compiler about a function name and how to call the
 function.
 It defines the function before it is being used or called.
 A function prototype needs to be written at the beginning of the program.
     Syntax                                                         Example
  return-type function-name (arg-1, arg 2, …);                    void addition(int, int);
   Prof. Nilesh Gambhava             #3110003 (PPS) – Functions                              6
Function Definition
  A function definition defines the functions header and body.
  A function header part should be identical to the function prototype.
       Function return type
       Function name
       List of parameters
  A function body part defines function logic.
       Function statements
     Syntax                                                         Example
 return-type function-name (arg-1, arg 2, …)                      void addition(int x, int y)
 {                                                                {
        //... Function body                                         printf("Addition is=%d“,(x+y));
 }                                                                }
    Prof. Nilesh Gambhava            #3110003 (PPS) – Functions                                 7
WAP to add two number using add(int, int) Function
  Program                                                               Output
   1     #include <stdio.h>                                             Addition is = 11
   2     void add(int, int); // function declaration
   3
   4     void main()
   5     {
   6         int a = 5, b = 6;
   7         add(a, b); // function call
   8     }
   9
  10     void add(int x, int y) // function definition
  11     {
  12        printf("Addition is = %d", x + y);
  13     }
       Prof. Nilesh Gambhava               #3110003 (PPS) – Functions                      8
Actual parameters and Formal parameters
 Values that are passed to the called function from the main function are known
 as Actual parameters.
 The variables declared in the function prototype or definition are known as Formal
 parameters.
 When a method is called, the formal parameter is temporarily "bound" to the actual
 parameter.
  Actual parameters                                    Formal parameters
  void main()                                         void add(int x, int y) // x and y are
  {                                                   formal parameters.
      int a = 5, b = 6;                               {
      add(a, b); // a and b are the                      printf("Addition is = %d", x + y);
      actual parameters in this call.
  }                                                   }
    Prof. Nilesh Gambhava               #3110003 (PPS) – Functions                            9
Return Statement
 If function is returning a value to calling function, it needs to use the keyword return.
 The called function can only return one value per call.
                             Syntax
                           return;
                                       Or
                           return (expression);
   Prof. Nilesh Gambhava              #3110003 (PPS) – Functions                    10
WAP to find maximum number from two number
 Program                                                  Output
  1     #include <stdio.h>                               Max value is : 200
  2     int max(int a, int b);
  3     void main()
  4     {
  5         int a = 100;
  6         int b = 200;
  7         int maxvalue;
  8         maxvalue = max(a, b);
  9         printf("Max value is : %d\n",
 10         maxvalue);
 11     }
 12     int max(int a, int b)
 13     {
 14         if (a > b)
 15             return a; // return a
 16         else
 17             return b; // return b
 18     }
      Prof. Nilesh Gambhava                 #3110003 (PPS) – Functions        11
WAP to calculate the Power of a Number
  Program                                                                 Output
   1     #include <stdio.h>                                               Enter any number : 5
   2     int power(int, int);                                             Enter power of number : 3
   3     void main()                                                      5's power 3 = 125
   4     {
   5         int num, pow, res;
   6         printf("Enter any number : ");
   7         scanf("%d", &num);
   8         printf("Enter power of number : ");
   9         scanf("%d", &pow);
  10         res = power(num, pow);
  11         printf("%d's power %d = %d", num, pow, res);
  12     }
  13     int power(int n, int p)
  14     {   int r = 1;
  15         while (p >= 1)
  16         {
  17             r = r * n;
  18             p--;
  19         }
  20         return r;}
       Prof. Nilesh Gambhava                 #3110003 (PPS) – Functions                               12
WAP to find Factorial of a Number
  Program                                                              Output
   1     #include <stdio.h>                                            Enter the number :
   2     int fact(int);                                                5
   3     int main()                                                    factorial = 120
   4     {
   5         int n, f;
   6         printf("Enter the number :\n");
   7         scanf("%d", &n);
   8         f = fact(n);
   9         printf("factorial = %d", f);
  10     }
  11     int fact(int n)
  12     {
  13         int i, fact = 1;
  14         for (i = 1; i <= n; i++)
  15             fact = fact * i;
  16         return fact;
  17     }
       Prof. Nilesh Gambhava              #3110003 (PPS) – Functions                        13
WAP to check Number is Prime or not
  Program                                                   Program contd.
   1 #include <stdio.h>                                     14 int checkPrime(int    n1)
   2 int checkPrime(int);                                   15 {
   3 void main()                                            16     int i = 2;
   4 {                                                             while (i <= n1    / 2)
                                                            17
   5     int n1, prime;                                            {
   6     printf("Enter the number :");
                                                            18         if (n1 % i    == 0)
   7     scanf("%d", &n1);                                  19              return   0;
   8     prime = checkPrime(n1);                            20         else
   9     if (prime == 1)                                    21              i++;
  10          printf("The number %d is a prime              22     }
              number.\n", n1);                              23     return 1;
  11     else                                               24 }
  12          printf("The number %d is not a
              prime number.\n", n1);
  13 }
  Output
  Enter the number :7
  The number 7 is a prime number.
       Prof. Nilesh Gambhava              #3110003 (PPS) – Functions                         14
Category of Function
(1) Function with no argument and but no return value
                                                         No
                               void main()              Input         void fun1()
                               {                                      {
                                 .....                                  .....
                                                    No return           .....
                                 fun1();
                                                     value              .....
                                 .....
                               }                                      }
(2) Function with no argument and returns value
                                                         No
                               void main()              Input         int fun1(void)
                               {                                      {
                                 .....                                  .....
                                 a = fun1()          Function           .....
                                 .....                result            return b;
                               }                                      }
      Prof. Nilesh Gambhava                       #3110003 (PPS) – Functions           15
Category of Function cont.
(3) Function with argument and but no return value
                                                     Value of
                              void main()            Argument      void fun1(int f)
                              {                                    {
                                .....                                .....
                                fun1(a);         No Return           .....
                                .....              value             .....
                              }                                    }
(4) Function with argument and returns value
                                                     Value of
                              void main()            Argument       int fun1(int f)
                              {                                     {
                                .....                                 .....
                                b = fun1(a);         Function         .....
                                .....                 Result          return e;
                              }                                     }
      Prof. Nilesh Gambhava                     #3110003 (PPS) – Functions            16
Storage Classes
 Storage class decides the scope, lifetime and memory allocation of variable.
 Scope of a variable is the boundary within which a variable can be used.
     Storage                          Initial
                           Storage                        Scope                     Life                  Example
     Specifier                        Value
     Automatic                                                                                             int a;
                            Stack     Garbage          Within block             End of block
      {auto}                                                                                            auto int a;
      Register              CPU       Garbage          Within block             End of block
                                                                                                     register int var;
     {register}            register
      External               Data                        Global
                                       Zero                                  Till end of program      extern int var;
      {extern}             segment                     Multiple file
        Static               Data      Zero            Within block          Till end of program   static extern int var;
       {static}            segment                                                                     static int var;
   Prof. Nilesh Gambhava                        #3110003 (PPS) – Functions                                               17
Static Example
 Program                                                             Output
  1     #include <stdio.h>                                           Counter = 1
  2     int incrementCounter();                                      Counter = 2
  3
  4     void main()
  5     {
  6         printf("Counter = %d \n", incrementCounter());
  7         printf("Counter = %d \n", incrementCounter());
  8     }
  9
 10     int incrementCounter()
 11     {
 12         static int count = 0; // static variable
 13         count++;
 14         return count;
 15     }
      Prof. Nilesh Gambhava             #3110003 (PPS) – Functions                 18
Advantages of Function
 Using function we can avoid rewriting the same logic or code again and again in a
 program.
 We can track or understand large program easily when it is divide into functions.
 It provides reusability.
 It help in testing and debugging because it can be tested for errors individually in the
 easiest way.
 Reduction in size of program due to code of a function can be used again and again,
 by calling it.
   Prof. Nilesh Gambhava             #3110003 (PPS) – Functions                     19
Practice Programs
1)   WAP to count simple interest using function.
2)   WAP that defines a function to add first n numbers.
3)   WAP using global variable, static variable.
4)   WAP that will scan a character string passed as an argument and convert all
     lowercase character into their uppercase equivalents.
5)   Build a function to check number is prime or not. If number is prime then function
     return value 1 otherwise return 0.
6)   Write a program to calculate nCr using user defined function. nCr = n! / (r! * (n-r)!)
7)   Create a function to swap the values of two variables.
8)   Write a function which takes 2 numbers as parameters and returns the gcd of the 2
     numbers. Call the function in main().
     Prof. Nilesh Gambhava             #3110003 (PPS) – Functions                     20
✓
Thank you