SlideShare ist ein Scribd-Unternehmen logo
1 von 8
Modularizing and Reusing of code through Functions

Calculation of area of Circle is separated into a separate module from Calculation of area of
Ring and the same module can be reused for multiple times.


 /* program to find area of a ring                   /* program to find area of a ring */
 */                                                  #include<stdio.h>
 #include<stdio.h>                                   float area();         Function Declaration
 int main()              Repeated & Reusable         int main()
 {                           blocks of code          {
    float a1,a2,a,r1,r2;                                float a1,a2,a;
                                                        a1 = area();        Function Calls
    printf("Enter the radius : ");
                                                        a2 = area();
    scanf("%f",&r1);                                    a = a1- a2;
    a1 = 3.14*r1*r1;                                    printf("Area of Ring : %.3fn", a);
    printf("Enter the radius : ");                   }
    scanf("%f",&r2);                                 float area()         Function Definition
    a2 = 3.14*r2*r2;                                 {
    a = a1- a2;                                         float r;
    printf("Area of Ring : %.3fn",                     printf("Enter the radius : ");
                                                        scanf("%f", &r);
 a);
                                                        return (3.14*r*r);
 }                                                   }
A Function is an independent, reusable module of statements, that specified by a name.
 This module (sub program) can be called by it’s name to do a specific task. We can call the
 function, for any number of times and from anywhere in the program. The purpose of a function
 is to receive zero or more pieces of data, operate on them, and return at most one piece of
 data.
        A Called Function receives control from a Calling Function. When the called function
 completes its task, it returns control to the calling function. It may or may not return a value to
 the caller. The function main() is called by the operating system; main() calls other functions.
 When main() is complete, control returns to the operating system.

                                         value of ‘p’ is copied to loan’
                                                value of ‘n’ is copied to terms’
int main() {
                                                                      value of ‘r’ is copied to ‘iRate’
  int n;
  float p, r, si;
  printf(“Enter Details of Loan1:“);      float calcInterest(float loan , int terms , float iRate )
                                          {
  scanf( “%f %d %f”, &p, &n, &r);
                                              float interest;                            The block is
  si =calcInterest( p, n , r );               interest = ( loan * terms * iRate )/100;   executed
  printf(“Interest : Rs. %f”, si);            return ( interest );
  printf(“Enter Details of Loan2:“);      }
}
                                                                            Called Function
                    value of ‘interest’ is assigned to ‘si ’

              Calling Function                    Process of Execution for a Function Call
int main()
            {
                int n1, n2;
                printf("Enter a number : ");
                scanf("%d",&n1);
                printOctal(n1);
                readPrintHexa();
                printf("Enter a number : ");
                scanf("%d",&n2);                1
        2       printOctal(n2);
                printf(“n”);
            }                                             3   7
                                                                       Flow of
    8       void printOctal(int n)
            {
                                                                       Control
                 printf("Number in octal form : %o n", n);                in
            }
                                                                    Multi-Function
6           void readPrintHexa()                                      Program
            {
                int num;
                printf("Enter a number : ");
                scanf("%d",&num);
                printHexa(num);
                printf(“n”);
            }                      4
            void printHexa(int n)
        5   {
                 printf("Number in Hexa-Decimal form : %x n",n);
            }
/* Program demonstrates function calls */    Function-It’s Terminology
#include<stdio.h>
int add ( int n1, int n2 ) ;                         Function Name
int main(void)
{                                             Declaration (proto type) of Function
    int a, b, sum;
    printf(“Enter two integers : ”);               Formal Parameters
    scanf(“%d %d”, &a, &b);
                                                      Function Call
      sum = add ( a , b ) ;
      printf(“%d + %d = %dn”, a, b, sum);
      return 0;                                     Actual Arguments
}
                                                       Return Type
/* adds two numbers and return the sum */
                                                  Definition of Function
int    add ( int x , int y   )
{                                             Parameter List used in the Function
      int s;
      s = x + y;                             Return statement of the Function
      return ( s );
}                                                       Return Value
Categories of Functions
/* using different functions */            void printMyLine()      Function with No parameters
int main()                                 {                             and No return value
                                              int i;
{
                                              for(i=1; i<=35;i++) printf(“%c”, ‘-’);
   float radius, area;                        printf(“n”);
   printMyLine();                          }
   printf(“ntUsage of functionsn”);
   printYourLine(‘-’,35);                  void printYourLine(char ch, int n)
   radius = readRadius();                  {
                                                                   Function with parameters
   area = calcArea ( radius );                                         and No return value
   printf(“Area of Circle = %f”,               int i;
                                              for(i=1; i<=n ;i++) printf(“%c”, ch);
area);
                                              printf(“n”);
}                                          }

                                                  float calcArea(float r)
 float readRadius()       Function with return    {                       Function with return
 {                       value & No parameters
     float r;                                         float a;           value and parameters
     printf(“Enter the radius : “);                   a = 3.14 * r * r ;
     scanf(“%f”, &r);                                 return ( a ) ;
     return ( r );                                }
 }
                                                 Note: ‘void’ means “Containing nothing”
Static Local Variables
 #include<stdio.h>                           void area()
                                                                      Visible with in the function,
 float length, breadth;                      {                        created only once when
 int main()                                    static int num = 0;    function is called at first
 {                                                                    time and exists between
    printf("Enter length, breadth : ");          float a;             function calls.
    scanf("%f %f",&length,&breadth);             num++;
    area();                                      a = (length * breadth);
    perimeter();                                 printf(“nArea of Rectangle %d : %.2f", num, a);
    printf(“nEnter length, breadth: ");     }
    scanf("%f %f",&length,&breadth);
    area();                                  void perimeter()
    perimeter();                             {
 }                                             int no = 0;
                                               float p;
                                               no++;
       External Global Variables
                                               p = 2 *(length + breadth);
Scope:     Visible   across     multiple
                                               printf(“Perimeter of Rectangle %d: %.2f",no,p);
functions Lifetime: exists till the end
                                             }
of the program.

                                                       Automatic Local Variables
Enter length, breadth : 6 4
                                           Scope : visible with in the function.
Area of Rectangle 1 : 24.00
                                           Lifetime: re-created for every function call and
Perimeter of Rectangle 1 : 20.00
                                           destroyed automatically when function is exited.
Enter length, breadth : 8 5
Area of Rectangle 2 : 40.00
Perimeter of Rectangle 1 : 26.00                 Storage Classes – Scope & Lifetime
File1.c                                             File2.c
#include<stdio.h>
                                                    extern float length, breadth ;
float length, breadth;
                                                    /* extern base , height ; --- error */
                                                    float rectanglePerimeter()
static float base, height;
                                                    {
int main()
                                                       float p;
{
                                                       p = 2 *(length + breadth);
   float peri;
                                                       return ( p );
   printf("Enter length, breadth : ");
                                                    }
   scanf("%f %f",&length,&breadth);
   rectangleArea();
   peri = rectanglePerimeter();
                                                             External Global Variables
   printf(“Perimeter of Rectangle : %f“, peri);
                                                    Scope: Visible to all functions across all
   printf(“nEnter base , height: ");
                                                    files in the project.
   scanf("%f %f",&base,&height);
                                                    Lifetime: exists      till the end of the
   triangleArea();
                                                    program.
}
void rectangleArea() {
  float a;
                                                              Static Global Variables
  a = length * breadth;
                                                    Scope: Visible to all functions with in
  printf(“nArea of Rectangle : %.2f", a);
                                                    the file only.
}
                                                    Lifetime: exists     till the end of the
void triangleArea() {
                                                    program.
  float a;
  a = 0.5 * base * height ;
  printf(“nArea of Triangle : %.2f", a);         Storage Classes – Scope & Lifetime
}
#include<stdio.h>                                       Preprocessor Directives
void showSquares(int n)      A function
{                            calling itself   #define  - Define a macro substitution
    if(n == 0)                                #undef   - Undefines a macro
                                   is         #ifdef   - Test for a macro definition
       return;                Recursion       #ifndef  - Tests whether a macro is not
    else
                                                         defined
       showSquares(n-1);                      #include - Specifies the files to be included
    printf(“%d “, (n*n));                     #if      - Test a compile-time condition
}                                             #else    - Specifies alternatives when #if
int main()                                               test fails
{                                             #elif    - Provides alternative test facility
   showSquares(5);                            #endif   - Specifies the end of #if
}                                             #pragma - Specifies certain instructions
                                              #error   - Stops compilation when an error
                                                         occurs
Output : 1 4 9 16 25
                                              #        - Stringizing operator
addition    showSquares(1)       execution    ##       - Token-pasting operator
  of        showSquares(2)           of
function                          function
  calls     showSquares(3)          calls          Preprocessor is a program that
   to       showSquares(4)           in          processes the source code before it
  call-                           reverse           passes through the compiler.
 stack      showSquares(5)
                main()         call-stack

Weitere ähnliche Inhalte

Was ist angesagt?

Functions and pointers_unit_4
Functions and pointers_unit_4Functions and pointers_unit_4
Functions and pointers_unit_4MKalpanaDevi
 
Simple c program
Simple c programSimple c program
Simple c programRavi Singh
 
Control Statements, Array, Pointer, Structures
Control Statements, Array, Pointer, StructuresControl Statements, Array, Pointer, Structures
Control Statements, Array, Pointer, Structuresindra Kishor
 
C programming Workshop
C programming WorkshopC programming Workshop
C programming Workshopneosphere
 
C programming function
C  programming functionC  programming function
C programming functionargusacademy
 
Mesics lecture 5 input – output in ‘c’
Mesics lecture 5   input – output in ‘c’Mesics lecture 5   input – output in ‘c’
Mesics lecture 5 input – output in ‘c’eShikshak
 
Dti2143 chapter 5
Dti2143 chapter 5Dti2143 chapter 5
Dti2143 chapter 5alish sha
 
Concepts of C [Module 2]
Concepts of C [Module 2]Concepts of C [Module 2]
Concepts of C [Module 2]Abhishek Sinha
 
Programming For Problem Solving Lecture Notes
Programming For Problem Solving Lecture NotesProgramming For Problem Solving Lecture Notes
Programming For Problem Solving Lecture NotesSreedhar Chowdam
 
C Programming Storage classes, Recursion
C Programming Storage classes, RecursionC Programming Storage classes, Recursion
C Programming Storage classes, RecursionSreedhar Chowdam
 

Was ist angesagt? (19)

Functions and pointers_unit_4
Functions and pointers_unit_4Functions and pointers_unit_4
Functions and pointers_unit_4
 
Simple c program
Simple c programSimple c program
Simple c program
 
Unit2 C
Unit2 CUnit2 C
Unit2 C
 
Control Statements, Array, Pointer, Structures
Control Statements, Array, Pointer, StructuresControl Statements, Array, Pointer, Structures
Control Statements, Array, Pointer, Structures
 
Functions
FunctionsFunctions
Functions
 
C programming Workshop
C programming WorkshopC programming Workshop
C programming Workshop
 
Function in c
Function in cFunction in c
Function in c
 
lets play with "c"..!!! :):)
lets play with "c"..!!! :):)lets play with "c"..!!! :):)
lets play with "c"..!!! :):)
 
C programming function
C  programming functionC  programming function
C programming function
 
Mesics lecture 5 input – output in ‘c’
Mesics lecture 5   input – output in ‘c’Mesics lecture 5   input – output in ‘c’
Mesics lecture 5 input – output in ‘c’
 
Dti2143 chapter 5
Dti2143 chapter 5Dti2143 chapter 5
Dti2143 chapter 5
 
Input And Output
 Input And Output Input And Output
Input And Output
 
What is c
What is cWhat is c
What is c
 
C lab-programs
C lab-programsC lab-programs
C lab-programs
 
7 functions
7  functions7  functions
7 functions
 
Concepts of C [Module 2]
Concepts of C [Module 2]Concepts of C [Module 2]
Concepts of C [Module 2]
 
Programming For Problem Solving Lecture Notes
Programming For Problem Solving Lecture NotesProgramming For Problem Solving Lecture Notes
Programming For Problem Solving Lecture Notes
 
Function in c
Function in cFunction in c
Function in c
 
C Programming Storage classes, Recursion
C Programming Storage classes, RecursionC Programming Storage classes, Recursion
C Programming Storage classes, Recursion
 

Ähnlich wie C-Language Unit-2

C Programming Language Part 7
C Programming Language Part 7C Programming Language Part 7
C Programming Language Part 7Rumman Ansari
 
Function in c program
Function in c programFunction in c program
Function in c programumesh patil
 
L25-L26-Parameter passing techniques.pptx
L25-L26-Parameter passing techniques.pptxL25-L26-Parameter passing techniques.pptx
L25-L26-Parameter passing techniques.pptxhappycocoman
 
โปรแกรมย่อยและฟังชั่นมาตรฐาน ม.6 1
โปรแกรมย่อยและฟังชั่นมาตรฐาน ม.6 1โปรแกรมย่อยและฟังชั่นมาตรฐาน ม.6 1
โปรแกรมย่อยและฟังชั่นมาตรฐาน ม.6 1Little Tukta Lita
 
function in in thi pdf you will learn what is fu...
function in  in thi pdf you will learn   what                           is fu...function in  in thi pdf you will learn   what                           is fu...
function in in thi pdf you will learn what is fu...kushwahashivam413
 
C- Programming Assignment 4 solution
C- Programming Assignment 4 solutionC- Programming Assignment 4 solution
C- Programming Assignment 4 solutionAnimesh Chaturvedi
 
An imperative study of c
An imperative study of cAn imperative study of c
An imperative study of cTushar B Kute
 

Ähnlich wie C-Language Unit-2 (20)

Unit2 C
Unit2 C Unit2 C
Unit2 C
 
Function in C program
Function in C programFunction in C program
Function in C program
 
C Programming Language Part 7
C Programming Language Part 7C Programming Language Part 7
C Programming Language Part 7
 
Unit 4 (1)
Unit 4 (1)Unit 4 (1)
Unit 4 (1)
 
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
 
Array Cont
Array ContArray Cont
Array Cont
 
Functions
FunctionsFunctions
Functions
 
L25-L26-Parameter passing techniques.pptx
L25-L26-Parameter passing techniques.pptxL25-L26-Parameter passing techniques.pptx
L25-L26-Parameter passing techniques.pptx
 
function_v1.ppt
function_v1.pptfunction_v1.ppt
function_v1.ppt
 
function_v1.ppt
function_v1.pptfunction_v1.ppt
function_v1.ppt
 
โปรแกรมย่อยและฟังชั่นมาตรฐาน ม.6 1
โปรแกรมย่อยและฟังชั่นมาตรฐาน ม.6 1โปรแกรมย่อยและฟังชั่นมาตรฐาน ม.6 1
โปรแกรมย่อยและฟังชั่นมาตรฐาน ม.6 1
 
Functions in C
Functions in CFunctions in C
Functions in C
 
Function in c
Function in cFunction in c
Function in c
 
CHAPTER 6
CHAPTER 6CHAPTER 6
CHAPTER 6
 
Fucntions & Pointers in C
Fucntions & Pointers in CFucntions & Pointers in C
Fucntions & Pointers in C
 
function in in thi pdf you will learn what is fu...
function in  in thi pdf you will learn   what                           is fu...function in  in thi pdf you will learn   what                           is fu...
function in in thi pdf you will learn what is fu...
 
C- Programming Assignment 4 solution
C- Programming Assignment 4 solutionC- Programming Assignment 4 solution
C- Programming Assignment 4 solution
 
An imperative study of c
An imperative study of cAn imperative study of c
An imperative study of c
 
C programs
C programsC programs
C programs
 

Mehr von kasaragadda srinivasrao (7)

C Language Unit-8
C Language Unit-8C Language Unit-8
C Language Unit-8
 
C Language Unit-7
C Language Unit-7C Language Unit-7
C Language Unit-7
 
C Language Unit-6
C Language Unit-6C Language Unit-6
C Language Unit-6
 
C Language Unit-5
C Language Unit-5C Language Unit-5
C Language Unit-5
 
C Language Unit-4
C Language Unit-4C Language Unit-4
C Language Unit-4
 
C Language Unit-3
C Language Unit-3C Language Unit-3
C Language Unit-3
 
Coupon tango site demo
Coupon tango site demoCoupon tango site demo
Coupon tango site demo
 

Kürzlich hochgeladen

URLs and Routing in the Odoo 17 Website App
URLs and Routing in the Odoo 17 Website AppURLs and Routing in the Odoo 17 Website App
URLs and Routing in the Odoo 17 Website AppCeline George
 
Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...
Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...
Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...Krashi Coaching
 
Call Girls in Dwarka Mor Delhi Contact Us 9654467111
Call Girls in Dwarka Mor Delhi Contact Us 9654467111Call Girls in Dwarka Mor Delhi Contact Us 9654467111
Call Girls in Dwarka Mor Delhi Contact Us 9654467111Sapana Sha
 
“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...
“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...
“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...Marc Dusseiller Dusjagr
 
CARE OF CHILD IN INCUBATOR..........pptx
CARE OF CHILD IN INCUBATOR..........pptxCARE OF CHILD IN INCUBATOR..........pptx
CARE OF CHILD IN INCUBATOR..........pptxGaneshChakor2
 
Industrial Policy - 1948, 1956, 1973, 1977, 1980, 1991
Industrial Policy - 1948, 1956, 1973, 1977, 1980, 1991Industrial Policy - 1948, 1956, 1973, 1977, 1980, 1991
Industrial Policy - 1948, 1956, 1973, 1977, 1980, 1991RKavithamani
 
Privatization and Disinvestment - Meaning, Objectives, Advantages and Disadva...
Privatization and Disinvestment - Meaning, Objectives, Advantages and Disadva...Privatization and Disinvestment - Meaning, Objectives, Advantages and Disadva...
Privatization and Disinvestment - Meaning, Objectives, Advantages and Disadva...RKavithamani
 
Arihant handbook biology for class 11 .pdf
Arihant handbook biology for class 11 .pdfArihant handbook biology for class 11 .pdf
Arihant handbook biology for class 11 .pdfchloefrazer622
 
Student login on Anyboli platform.helpin
Student login on Anyboli platform.helpinStudent login on Anyboli platform.helpin
Student login on Anyboli platform.helpinRaunakKeshri1
 
Contemporary philippine arts from the regions_PPT_Module_12 [Autosaved] (1).pptx
Contemporary philippine arts from the regions_PPT_Module_12 [Autosaved] (1).pptxContemporary philippine arts from the regions_PPT_Module_12 [Autosaved] (1).pptx
Contemporary philippine arts from the regions_PPT_Module_12 [Autosaved] (1).pptxRoyAbrique
 
Organic Name Reactions for the students and aspirants of Chemistry12th.pptx
Organic Name Reactions  for the students and aspirants of Chemistry12th.pptxOrganic Name Reactions  for the students and aspirants of Chemistry12th.pptx
Organic Name Reactions for the students and aspirants of Chemistry12th.pptxVS Mahajan Coaching Centre
 
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...EduSkills OECD
 
Introduction to AI in Higher Education_draft.pptx
Introduction to AI in Higher Education_draft.pptxIntroduction to AI in Higher Education_draft.pptx
Introduction to AI in Higher Education_draft.pptxpboyjonauth
 
How to Make a Pirate ship Primary Education.pptx
How to Make a Pirate ship Primary Education.pptxHow to Make a Pirate ship Primary Education.pptx
How to Make a Pirate ship Primary Education.pptxmanuelaromero2013
 
Beyond the EU: DORA and NIS 2 Directive's Global Impact
Beyond the EU: DORA and NIS 2 Directive's Global ImpactBeyond the EU: DORA and NIS 2 Directive's Global Impact
Beyond the EU: DORA and NIS 2 Directive's Global ImpactPECB
 

Kürzlich hochgeladen (20)

URLs and Routing in the Odoo 17 Website App
URLs and Routing in the Odoo 17 Website AppURLs and Routing in the Odoo 17 Website App
URLs and Routing in the Odoo 17 Website App
 
Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...
Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...
Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...
 
Código Creativo y Arte de Software | Unidad 1
Código Creativo y Arte de Software | Unidad 1Código Creativo y Arte de Software | Unidad 1
Código Creativo y Arte de Software | Unidad 1
 
Staff of Color (SOC) Retention Efforts DDSD
Staff of Color (SOC) Retention Efforts DDSDStaff of Color (SOC) Retention Efforts DDSD
Staff of Color (SOC) Retention Efforts DDSD
 
TataKelola dan KamSiber Kecerdasan Buatan v022.pdf
TataKelola dan KamSiber Kecerdasan Buatan v022.pdfTataKelola dan KamSiber Kecerdasan Buatan v022.pdf
TataKelola dan KamSiber Kecerdasan Buatan v022.pdf
 
Call Girls in Dwarka Mor Delhi Contact Us 9654467111
Call Girls in Dwarka Mor Delhi Contact Us 9654467111Call Girls in Dwarka Mor Delhi Contact Us 9654467111
Call Girls in Dwarka Mor Delhi Contact Us 9654467111
 
“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...
“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...
“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...
 
CARE OF CHILD IN INCUBATOR..........pptx
CARE OF CHILD IN INCUBATOR..........pptxCARE OF CHILD IN INCUBATOR..........pptx
CARE OF CHILD IN INCUBATOR..........pptx
 
Industrial Policy - 1948, 1956, 1973, 1977, 1980, 1991
Industrial Policy - 1948, 1956, 1973, 1977, 1980, 1991Industrial Policy - 1948, 1956, 1973, 1977, 1980, 1991
Industrial Policy - 1948, 1956, 1973, 1977, 1980, 1991
 
Privatization and Disinvestment - Meaning, Objectives, Advantages and Disadva...
Privatization and Disinvestment - Meaning, Objectives, Advantages and Disadva...Privatization and Disinvestment - Meaning, Objectives, Advantages and Disadva...
Privatization and Disinvestment - Meaning, Objectives, Advantages and Disadva...
 
Mattingly "AI & Prompt Design: Structured Data, Assistants, & RAG"
Mattingly "AI & Prompt Design: Structured Data, Assistants, & RAG"Mattingly "AI & Prompt Design: Structured Data, Assistants, & RAG"
Mattingly "AI & Prompt Design: Structured Data, Assistants, & RAG"
 
Arihant handbook biology for class 11 .pdf
Arihant handbook biology for class 11 .pdfArihant handbook biology for class 11 .pdf
Arihant handbook biology for class 11 .pdf
 
Student login on Anyboli platform.helpin
Student login on Anyboli platform.helpinStudent login on Anyboli platform.helpin
Student login on Anyboli platform.helpin
 
Contemporary philippine arts from the regions_PPT_Module_12 [Autosaved] (1).pptx
Contemporary philippine arts from the regions_PPT_Module_12 [Autosaved] (1).pptxContemporary philippine arts from the regions_PPT_Module_12 [Autosaved] (1).pptx
Contemporary philippine arts from the regions_PPT_Module_12 [Autosaved] (1).pptx
 
Organic Name Reactions for the students and aspirants of Chemistry12th.pptx
Organic Name Reactions  for the students and aspirants of Chemistry12th.pptxOrganic Name Reactions  for the students and aspirants of Chemistry12th.pptx
Organic Name Reactions for the students and aspirants of Chemistry12th.pptx
 
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
 
Mattingly "AI & Prompt Design: The Basics of Prompt Design"
Mattingly "AI & Prompt Design: The Basics of Prompt Design"Mattingly "AI & Prompt Design: The Basics of Prompt Design"
Mattingly "AI & Prompt Design: The Basics of Prompt Design"
 
Introduction to AI in Higher Education_draft.pptx
Introduction to AI in Higher Education_draft.pptxIntroduction to AI in Higher Education_draft.pptx
Introduction to AI in Higher Education_draft.pptx
 
How to Make a Pirate ship Primary Education.pptx
How to Make a Pirate ship Primary Education.pptxHow to Make a Pirate ship Primary Education.pptx
How to Make a Pirate ship Primary Education.pptx
 
Beyond the EU: DORA and NIS 2 Directive's Global Impact
Beyond the EU: DORA and NIS 2 Directive's Global ImpactBeyond the EU: DORA and NIS 2 Directive's Global Impact
Beyond the EU: DORA and NIS 2 Directive's Global Impact
 

C-Language Unit-2

  • 1. Modularizing and Reusing of code through Functions Calculation of area of Circle is separated into a separate module from Calculation of area of Ring and the same module can be reused for multiple times. /* program to find area of a ring /* program to find area of a ring */ */ #include<stdio.h> #include<stdio.h> float area(); Function Declaration int main() Repeated & Reusable int main() { blocks of code { float a1,a2,a,r1,r2; float a1,a2,a; a1 = area(); Function Calls printf("Enter the radius : "); a2 = area(); scanf("%f",&r1); a = a1- a2; a1 = 3.14*r1*r1; printf("Area of Ring : %.3fn", a); printf("Enter the radius : "); } scanf("%f",&r2); float area() Function Definition a2 = 3.14*r2*r2; { a = a1- a2; float r; printf("Area of Ring : %.3fn", printf("Enter the radius : "); scanf("%f", &r); a); return (3.14*r*r); } }
  • 2. A Function is an independent, reusable module of statements, that specified by a name. This module (sub program) can be called by it’s name to do a specific task. We can call the function, for any number of times and from anywhere in the program. The purpose of a function is to receive zero or more pieces of data, operate on them, and return at most one piece of data. A Called Function receives control from a Calling Function. When the called function completes its task, it returns control to the calling function. It may or may not return a value to the caller. The function main() is called by the operating system; main() calls other functions. When main() is complete, control returns to the operating system. value of ‘p’ is copied to loan’ value of ‘n’ is copied to terms’ int main() { value of ‘r’ is copied to ‘iRate’ int n; float p, r, si; printf(“Enter Details of Loan1:“); float calcInterest(float loan , int terms , float iRate ) { scanf( “%f %d %f”, &p, &n, &r); float interest; The block is si =calcInterest( p, n , r ); interest = ( loan * terms * iRate )/100; executed printf(“Interest : Rs. %f”, si); return ( interest ); printf(“Enter Details of Loan2:“); } } Called Function value of ‘interest’ is assigned to ‘si ’ Calling Function Process of Execution for a Function Call
  • 3. int main() { int n1, n2; printf("Enter a number : "); scanf("%d",&n1); printOctal(n1); readPrintHexa(); printf("Enter a number : "); scanf("%d",&n2); 1 2 printOctal(n2); printf(“n”); } 3 7 Flow of 8 void printOctal(int n) { Control printf("Number in octal form : %o n", n); in } Multi-Function 6 void readPrintHexa() Program { int num; printf("Enter a number : "); scanf("%d",&num); printHexa(num); printf(“n”); } 4 void printHexa(int n) 5 { printf("Number in Hexa-Decimal form : %x n",n); }
  • 4. /* Program demonstrates function calls */ Function-It’s Terminology #include<stdio.h> int add ( int n1, int n2 ) ; Function Name int main(void) { Declaration (proto type) of Function int a, b, sum; printf(“Enter two integers : ”); Formal Parameters scanf(“%d %d”, &a, &b); Function Call sum = add ( a , b ) ; printf(“%d + %d = %dn”, a, b, sum); return 0; Actual Arguments } Return Type /* adds two numbers and return the sum */ Definition of Function int add ( int x , int y ) { Parameter List used in the Function int s; s = x + y; Return statement of the Function return ( s ); } Return Value
  • 5. Categories of Functions /* using different functions */ void printMyLine() Function with No parameters int main() { and No return value int i; { for(i=1; i<=35;i++) printf(“%c”, ‘-’); float radius, area; printf(“n”); printMyLine(); } printf(“ntUsage of functionsn”); printYourLine(‘-’,35); void printYourLine(char ch, int n) radius = readRadius(); { Function with parameters area = calcArea ( radius ); and No return value printf(“Area of Circle = %f”, int i; for(i=1; i<=n ;i++) printf(“%c”, ch); area); printf(“n”); } } float calcArea(float r) float readRadius() Function with return { Function with return { value & No parameters float r; float a; value and parameters printf(“Enter the radius : “); a = 3.14 * r * r ; scanf(“%f”, &r); return ( a ) ; return ( r ); } } Note: ‘void’ means “Containing nothing”
  • 6. Static Local Variables #include<stdio.h> void area() Visible with in the function, float length, breadth; { created only once when int main() static int num = 0; function is called at first { time and exists between printf("Enter length, breadth : "); float a; function calls. scanf("%f %f",&length,&breadth); num++; area(); a = (length * breadth); perimeter(); printf(“nArea of Rectangle %d : %.2f", num, a); printf(“nEnter length, breadth: "); } scanf("%f %f",&length,&breadth); area(); void perimeter() perimeter(); { } int no = 0; float p; no++; External Global Variables p = 2 *(length + breadth); Scope: Visible across multiple printf(“Perimeter of Rectangle %d: %.2f",no,p); functions Lifetime: exists till the end } of the program. Automatic Local Variables Enter length, breadth : 6 4 Scope : visible with in the function. Area of Rectangle 1 : 24.00 Lifetime: re-created for every function call and Perimeter of Rectangle 1 : 20.00 destroyed automatically when function is exited. Enter length, breadth : 8 5 Area of Rectangle 2 : 40.00 Perimeter of Rectangle 1 : 26.00 Storage Classes – Scope & Lifetime
  • 7. File1.c File2.c #include<stdio.h> extern float length, breadth ; float length, breadth; /* extern base , height ; --- error */ float rectanglePerimeter() static float base, height; { int main() float p; { p = 2 *(length + breadth); float peri; return ( p ); printf("Enter length, breadth : "); } scanf("%f %f",&length,&breadth); rectangleArea(); peri = rectanglePerimeter(); External Global Variables printf(“Perimeter of Rectangle : %f“, peri); Scope: Visible to all functions across all printf(“nEnter base , height: "); files in the project. scanf("%f %f",&base,&height); Lifetime: exists till the end of the triangleArea(); program. } void rectangleArea() { float a; Static Global Variables a = length * breadth; Scope: Visible to all functions with in printf(“nArea of Rectangle : %.2f", a); the file only. } Lifetime: exists till the end of the void triangleArea() { program. float a; a = 0.5 * base * height ; printf(“nArea of Triangle : %.2f", a); Storage Classes – Scope & Lifetime }
  • 8. #include<stdio.h> Preprocessor Directives void showSquares(int n) A function { calling itself #define - Define a macro substitution if(n == 0) #undef - Undefines a macro is #ifdef - Test for a macro definition return; Recursion #ifndef - Tests whether a macro is not else defined showSquares(n-1); #include - Specifies the files to be included printf(“%d “, (n*n)); #if - Test a compile-time condition } #else - Specifies alternatives when #if int main() test fails { #elif - Provides alternative test facility showSquares(5); #endif - Specifies the end of #if } #pragma - Specifies certain instructions #error - Stops compilation when an error occurs Output : 1 4 9 16 25 # - Stringizing operator addition showSquares(1) execution ## - Token-pasting operator of showSquares(2) of function function calls showSquares(3) calls Preprocessor is a program that to showSquares(4) in processes the source code before it call- reverse passes through the compiler. stack showSquares(5) main() call-stack