• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
C-Language Unit-2
 

C-Language Unit-2

on

  • 946 views

Jntu C Langauage material, Unit-2

Jntu C Langauage material, Unit-2

Statistics

Views

Total Views
946
Views on SlideShare
946
Embed Views
0

Actions

Likes
0
Downloads
28
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    C-Language Unit-2 C-Language Unit-2 Presentation Transcript

    • Modularizing and Reusing of code through FunctionsCalculation of area of Circle is separated into a separate module from Calculation of area ofRing 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-Function6 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 Nameint 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 Functionint 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 parametersint 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 VariablesEnter length, breadth : 6 4 Scope : visible with in the function.Area of Rectangle 1 : 24.00 Lifetime: re-created for every function call andPerimeter of Rectangle 1 : 20.00 destroyed automatically when function is exited.Enter length, breadth : 8 5Area of Rectangle 2 : 40.00Perimeter 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 thevoid triangleArea() { program. float a; a = 0.5 * base * height ; printf(“nArea of Triangle : %.2f", a); Storage Classes – Scope & Lifetime}
    • #include<stdio.h> Preprocessor Directivesvoid 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 #ifint 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 occursOutput : 1 4 9 16 25 # - Stringizing operatoraddition showSquares(1) execution ## - Token-pasting operator of showSquares(2) offunction 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