Implementation of Preprocessor in C Programming

Q. Write macro definitions with arguments for calculation of area and perimeter of a triangle, a square and a circle. Store these macro definitions in a file called "areaperi.h". Include this file in your program, and call the macro definitions for calculating area and perimeter for different triangles, squares and circles.

Step 1: Create a header file (.h) declaring the prototypes of required functions.

float area1(int, int, int); // for triangle
int area2(int); // for square
float area3(float); // for circle

float perimeter1(int, int, int); // for triangle
int perimeter2(int); // for square
float perimeter3(float); // for circle

Step 2: Create a C programming file (.c) defining those functions.

#include<stdio.h>
#include<math.h>
#define PI 3.1416

float perimeter1(int a, int b, int c) // for triangle
{
    return a+b+c;
}

int perimeter2(int a) // for square
{
    return 4*a;
}

float perimeter3(float r) // for circle
{
    return 2*PI*r;
}

float area1(int a, int b, int c) // for triangle
{
    float s = perimeter1(a, b, c)/2;
    return sqrt(s*(s-a)*(s-b)*(s-c));
}

int area2(int a) // for square
{
    return pow(a,2);
}

float area3(float r) // for circle
{
    return PI*r*r;
}

Step 3: Write your C program (.c) including the areaperi.h file as #include "areaperi.h".

#include<stdio.h>

#include "areaperi.h"

int main()
{
    int n,a,b,c;
    float r;

    printf("Enter your choice:\n");
    printf("1. Triangle\n");
    printf("2. Square\n");
    printf("3. Circle\n");
    scanf("%d",&n);
    switch(n)
    {
        case 1:
            printf("Enter three sides:");
            scanf("%d%d%d",&a,&b,&c);
            printf("Area = %f\n",area1(a,b,c));
            printf("Perimeter = %f\n",perimeter1(a,b,c));
            break;
        case 2:
            printf("Enter side:");
            scanf("%d",&a);
            printf("Area = %d\n",area2(a));
            printf("Perimeter = %d\n",perimeter2(a));
            break;
        case 3:
            printf("Enter radius:");
            scanf("%f",&r);
            printf("Area = %f\n",area3(r));
            printf("Perimeter = %f\n",perimeter3(r));
            break;
        default:
            printf("Invalid Choice");
        return 0;
    }
}

Step 4: Compile the source files.

gcc myprogram.c areaperi.c -o program

Step 5: Run your program with command: ./program

Enter your choice:
1. Triangle
2. Square
3. Circle
2
Enter side:5
Area = 25
Perimeter = 20


No comments:

Post a Comment