Top Banner

of 107

CPDS Lab Manual

Jun 04, 2018

Download

Documents

Rajasekhar Rao
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
  • 8/13/2019 CPDS Lab Manual

    1/107

    EEE

    DEPARTMENT VER 1

    CPDS LAB MANUALPage 5

    SREE VISVESVARAYA INSTITUTE OF TECHNOLOGY & SCIENCE

    CHOWDERPALLY, MAHABUBNAGAR

    CPDS LAB MANUAL

  • 8/13/2019 CPDS Lab Manual

    2/107

    EEE

    DEPARTMENT VER 1

    CPDS LAB MANUALPage 5

    AIM:

    To Write a C program to find the sum of individual digits of a positive integer.

    Program:

    #include

    #include

    void main()

    {

    int num, k=1, sum=0;

    clrscr();printf("Enter the number whose digits are to be added:");

    scanf("%d",&num);

    while(num!=0)

    {

    k=num%10;

    sum=sum+k;

    k=num/10;

    num=k;

    }

    printf("Sum of the digits:%d",sum);

    getch();}

    OUTPUT:

    Enter the number whose digits are to be added:1234

    Sum of the digits:10

  • 8/13/2019 CPDS Lab Manual

    3/107

  • 8/13/2019 CPDS Lab Manual

    4/107

  • 8/13/2019 CPDS Lab Manual

    5/107

    EEE

    DEPARTMENT VER 1

    CPDS LAB MANUALPage 5

    AIM:

    To write a C program to generate all the prime numbers between 1 and n, where n is a

    value supplied by the user.

    Program:

    #include

    void main()

    {

    int no,counter,counter1,check;

    clrscr();

    printf("");

    printf("\n\n\n\t\t\tINPUT THE VALUE OF N: ");

    scanf("%d",&no);

    printf("\n\nTHE PRIME NO. SERIES B/W 1 TO %d : \n\n",no);

    for(counter = 1; counter 1 ; counter1--)

    if(counter%counter1 == 0)

    {

    check++; // INCREMENT CHECK IF NO. IS NOT A PRIME NO.

    break;

    }

    if(check == 0)

    printf("%d\t",counter);

    }

    getch();}

  • 8/13/2019 CPDS Lab Manual

    6/107

  • 8/13/2019 CPDS Lab Manual

    7/107

    EEE

    DEPARTMENT VER 1

    CPDS LAB MANUALPage 5

    AIM:

    To write a C program to calculate the following Sum:

    Sum=1-x2/2! +x4/4!-x6/6!+x8/8!-x10/10! */

    Program:

    #include

    #include

    void main()

    {

    int counter,f_coun;

    float sum=0,x,power,fact;

    clrscr();

    printf("");

    printf("\n\n\tEQUATION SERIES : 1- X^2/2! + X^4/4! - X^6/6! + X^8/8! - X^10/10!");

    printf("\n\n\n\tENTER VALUE OF X : ");

    scanf("%f",&x);

    for(counter=0, power=0; power=1; f_coun--)

    fact *= f_coun;

    //EQ. FOR SUM SERIES

    sum=sum+(pow(-1,counter)*(pow(x,power)/fact));

    }

    printf("SUM : %f",sum);

    getch();

    }

  • 8/13/2019 CPDS Lab Manual

    8/107

    EEE

    DEPARTMENT VER 1

    CPDS LAB MANUALPage 5

    OUTPUT:

    EQUATION SERIES : 1- X^2/2! + X^4/4! - X^6/6! + X^8/8! - X^10/10!

    ENTER VALUE OF X : 5

    SUM : -0.162746

  • 8/13/2019 CPDS Lab Manual

    9/107

  • 8/13/2019 CPDS Lab Manual

    10/107

    EEE

    DEPARTMENT VER 1

    CPDS LAB MANUALPage 5

    AIM:

    To write C programs that use both recursive and non-recursive functions to find the

    factorial of a given integer.

    Program:

    #include

    #include

    unsigned int recr_factorial(int n);

    unsigned int iter_factorial(int n);

    void main()

    {

    int n,i;

    long fact;

    clrscr();

    printf("Enter the number: ");

    scanf("%d",&n);

    if(n==0)

    printf("Factorial of 0 is 1\n");

    else

    {

    printf("Factorial of %d Using Recursive Function is %d\n",n,recr_factorial(n));

    printf("Factorial of %d Using Non-Recursive Function is %d\n",n,iter_factorial(n));

    }

    getch();

    }

    /* Recursive Function*/unsigned int recr_factorial(int n) {

    return n>=1 ? n * recr_factorial(n-1) : 1;

    }

    /* Non-Recursive Function*/

    unsigned int iter_factorial(int n) {

    int accu = 1;

    int i;

    for(i = 1; i

  • 8/13/2019 CPDS Lab Manual

    11/107

    EEE

    DEPARTMENT VER 1

    CPDS LAB MANUALPage 5

    }

    OUTPUT:

    Enter the number: 12

    Factorial of 12 Using Recursive Function is 479001600

    Factorial of 12 Using Non-Recursive Function is 479001600

  • 8/13/2019 CPDS Lab Manual

    12/107

    EEE

    DEPARTMENT VER 1

    CPDS LAB MANUALPage 5

    AIM:

    To write C programs that use both recursive and non-recursive functions to find the

    GCD (greatest common divisor) of two given integers.

    Program:

    #include

    #include

    #include

    unsigned int GcdRecursive(unsigned m, unsigned n);

    unsigned int GcdNonRecursive(unsigned p,unsigned q);

    int main(void)

    {

    int a,b,iGcd;

    clrscr();

    printf("Enter the two numbers whose GCD is to be found: ");

    scanf("%d%d",&a,&b);

    printf("GCD of %d and %d Using Recursive Function is %d\n", a, b,

    GcdRecursive(a,b));

    printf("GCD of %d and %d Using Non-Recursive Function is %d\n", a, b,

    GcdNonRecursive(a,b));

    getch();

    }

    /* Recursive Function*/

    unsigned int GcdRecursive(unsigned m, unsigned n)

    {

    if(n>m)

    return GcdRecursive(n,m);

    if(n==0)

    return m;

    else

    return GcdRecursive(n,m%n);

    }

    /* Non-Recursive Function*/

  • 8/13/2019 CPDS Lab Manual

    13/107

    EEE

    DEPARTMENT VER 1

    CPDS LAB MANUALPage 5

    unsigned int GcdNonRecursive(unsigned p,unsigned q)

    {

    unsigned remainder;remainder = p-(p/q*q);

    if(remainder==0)

    return q;

    else

    GcdRecursive(q,remainder);

    }

    OUTPUT:

    Enter the two numbers whose GCD is to be found: 12 18

    GCD of 12 and 18 Using Recursive Function is 6

    GCD of 12 and 18 Using Non-Recursive Function is 6

  • 8/13/2019 CPDS Lab Manual

    14/107

    EEE

    DEPARTMENT VER 1

    CPDS LAB MANUALPage 5

    AIM:

    To write C programs that use both recursive and non-recursive functions to solve

    Towers of Hanoi problem.

    Program:

    #include

    #include

    /* Non-Recursive Function*/

    void hanoiNonRecursion(int num,char sndl,char indl,char dndl)

    {

    char stkn[100],stksndl[100],stkindl[100],stkdndl[100],stkadd[100],temp;

    int top,add;

    top=NULL;

    one:

    if(num==1)

    {

    printf("\nMove top disk from needle %c to needle %c ",sndl,dndl);

    goto four;

    }

    two:

    top=top+1;

    stkn[top]=num;

    stksndl[top]=sndl;

    stkindl[top]=indl;

    stkdndl[top]=dndl;

    stkadd[top]=3;

    num=num-1;

    sndl=sndl;

    temp=indl;

    indl=dndl;

    dndl=temp;

    goto one;

    three:

    printf("\nMove top disk from needle %c to needle %c ",sndl,dndl);top=top+1;

  • 8/13/2019 CPDS Lab Manual

    15/107

    EEE

    DEPARTMENT VER 1

    CPDS LAB MANUALPage 5

    stkn[top]=num;

    stksndl[top]=sndl;

    stkindl[top]=indl;stkdndl[top]=dndl;

    stkadd[top]=5;

    num=num-1;

    temp=sndl;

    sndl=indl;

    indl=temp;

    dndl=dndl;

    goto one;

    four:if(top==NULL)

    return;

    num=stkn[top];

    sndl=stksndl[top];

    indl=stkindl[top];

    dndl=stkdndl[top];

    add=stkadd[top];

    top=top-1;

    if(add==3)

    goto three;

    else if(add==5)goto four;

    }

    /* Recursive Function*/

    void hanoiRecursion( int num,char ndl1, char ndl2, char ndl3)

    {

    if ( num == 1 ) {

    printf( "Move top disk from needle %c to needle %c.", ndl1, ndl2 );

    return;}

    hanoiRecursion( num - 1,ndl1, ndl3, ndl2 );

    printf( "Move top disk from needle %c to needle %c.", ndl1, ndl2 );

    hanoiRecursion( num - 1,ndl3, ndl2, ndl1 );

    }

    void main()

    {

    int no;

    clrscr();printf("Enter the no. of disks to be transferred: ");

  • 8/13/2019 CPDS Lab Manual

    16/107

    EEE

    DEPARTMENT VER 1

    CPDS LAB MANUALPage 5

    scanf("%d",&no);

    if(no

  • 8/13/2019 CPDS Lab Manual

    17/107

    EEE

    DEPARTMENT VER 1

    CPDS LAB MANUALPage 5

    AIM:

    The total distance travelled by vehicle in t seconds is given by distance = ut+1/2at2

    where 'u' and 'a' are the initial velocity (m/sec.) and acceleration (m/sec2). Write C

    program to find the distance travelled at regular intervals of time given the values of 'u'and 'a'. The program should provide the flexibility to the user to select his own time

    intervals and repeat the calculations for different values of 'u' and 'a'.

    Program:

    #include

    #include

    void main()

    {

    int tim_intrval, counter,time;

    float accl, distance=0, velos;

    clrscr();

    printf("");

    printf("\n\n\n\t\t\tNO OF TIME INTERVALS : ");

    scanf("%d",&tim_intrval);

    for(counter = 1; counter

  • 8/13/2019 CPDS Lab Manual

    18/107

    EEE

    DEPARTMENT VER 1

    CPDS LAB MANUALPage 5

    getch();

    }

    OUTPUT:

    NO OF TIME INTERVALS : 2

    AT T1 TIME(sec) : 5

    VELOCITY AT 5 sec (m/sec) : 5

    ACCLERATION AT 5 sec (m/sec^2): 5

    AT T2 TIME(sec) : 10

    VELOCITY AT 10 sec (m/sec) : 10

    ACCLERATION AT 10 sec (m/sec^2): 10

    TOTAL DISTANCE TRAVELLED BY VEHICLE IN 2 INTERVALS OF TIME :

    600.000000

  • 8/13/2019 CPDS Lab Manual

    19/107

    EEE

    DEPARTMENT VER 1

    CPDS LAB MANUALPage 5

    AIM:

    To write a C program, which takes two integer operands and one operator form the

    user, performs the operation and then prints the result. (Consider the operators +,-,*, /,% and use Switch Statement)

    Program:

    #include

    #include

    void main()

    {int a,b,res,ch;

    clrscr();

    printf("\t *********************");

    printf("\n\tMENU\n");

    printf("\t********************");

    printf("\n\t(1)ADDITION");

    printf("\n\t(2)SUBTRACTION");

    printf("\n\t(3)MULTIPLICATION");

    printf("\n\t(4)DIVISION");

    printf("\n\t(5)REMAINDER");

    printf("\n\t(0)EXIT");printf("\n\t********************");

    printf("\n\n\tEnter your choice:");

    scanf("%d",&ch);

    if(ch0)

    {

    printf("Enter two numbers:\n");

    scanf("%d%d",&a,&b);

    }

    switch(ch){

  • 8/13/2019 CPDS Lab Manual

    20/107

  • 8/13/2019 CPDS Lab Manual

    21/107

    EEE

    DEPARTMENT VER 1

    CPDS LAB MANUALPage 5

    (5)REMAINDER

    (0)EXIT

    ********************

    Enter your choice:3

    Enter two numbers:

    12

    12

    Multiplication: 144

    AIM:

    To write a C program to find both the largest and smallest number in a list of integers.

    Program:

    main( )

    {

    float largest(float a[ ], int n);

    float value[4] = {2.5,-4.75,1.2,3.67};

    printf("%f\n", largest(value,4));

    getch();

    }

    float largest(float a[], int n)

    {

    int i;

    float max;

    max = a[0];

    for(i = 1; i < n; i++)

    if(max < a[i])max = a[i];

    return(max);

    }

  • 8/13/2019 CPDS Lab Manual

    22/107

    EEE

    DEPARTMENT VER 1

    CPDS LAB MANUALPage 5

    AIM:

    To write a C program that uses functions to perform the following:

    i) Addition of Two Matrices

    ii) Multiplication of Two Matrices

    Program:

    #include

    void main()

    {

    int ch,i,j,m,n,p,q,k,r1,c1,a[10][10],b[10][10],c[10][10];

    clrscr();

    printf("************************************");

    printf("\n\t\tMENU");

    printf("\n**********************************");

    printf("\n[1]ADDITION OF TWO MATRICES");

    printf("\n[2]MULTIPLICATION OF TWO MATRICES");

    printf("\n[0]EXIT");printf("\n**********************************");

    printf("\n\tEnter your choice:\n");

    scanf("%d",&ch);

    if(ch0)

    {

    printf("Valid Choice\n");

    }

    switch(ch)

    {case 1:

  • 8/13/2019 CPDS Lab Manual

    23/107

    EEE

    DEPARTMENT VER 1

    CPDS LAB MANUALPage 5

    printf("Input rows and columns of A & B Matrix:");

    scanf("%d%d",&r1,&c1);

    printf("Enter elements of matrix A:\n");for(i=0;i

  • 8/13/2019 CPDS Lab Manual

    24/107

    EEE

    DEPARTMENT VER 1

    CPDS LAB MANUALPage 5

    printf("Resultant of two matrices:\n");

    write_matrix(c,m,q);

    }/*end if*/

    else

    {

    printf("Matrices cannot be multiplied.");

    }

    /*end else*/

    break;

    case 0:

    printf("\n Choice Terminated");

    exit();break;

    default:

    printf("\n Invalid Choice");

    }

    getch();

    }

    /*Function read matrix*/

    int read_matrix(int a[10][10],int m,int n)

    {int i,j;

    for(i=0;i

  • 8/13/2019 CPDS Lab Manual

    25/107

    EEE

    DEPARTMENT VER 1

    CPDS LAB MANUALPage 5

    OUTPUT:

    ************************************

    MENU

    **********************************

    [1]ADDITION OF TWO MATRICES

    [2]MULTIPLICATION OF TWO MATRICES

    [0]EXIT

    **********************************

    Enter your choice:

    1

    Valid Choice

    Input rows and columns of A & B Matrix: 2 2

    Enter elements of matrix A:

    2

    3

    4

    5

    Enter elements of matrix B:

    2

    3

    4

    5

    =====Matrix Addition=====4 6

  • 8/13/2019 CPDS Lab Manual

    26/107

    EEE

    DEPARTMENT VER 1

    CPDS LAB MANUALPage 5

    8 10

    AIM:

    To write a C program that uses functions to perform the following operations:

    To insert a sub-string in to given main string from a given position.

    Program:

    #include

    #include

    #include

    void main()

    {char a[10];

    char b[10];

    char c[10];

    int p=0,r=0,i=0;

    int t=0;

    int x,g,s,n,o;

    clrscr();

    puts("Enter First String:");

    gets(a);

    puts("Enter Second String:");

  • 8/13/2019 CPDS Lab Manual

    27/107

    EEE

    DEPARTMENT VER 1

    CPDS LAB MANUALPage 5

    gets(b);

    printf("Enter the position where the item has to be inserted: ");

    scanf("%d",&p);r = strlen(a);

    n = strlen(b);

    i=0;

    while(i

  • 8/13/2019 CPDS Lab Manual

    28/107

    EEE

    DEPARTMENT VER 1

    CPDS LAB MANUALPage 5

    AIM:

    To write a C program that uses functions to perform the following operations:

    To delete n Characters from a given position in a given string.

    Program:

    #include

    #include

    #include

    void delchar(char *,int , int );

    void main()

    {

    char string[10];

    int n,pos,p;

    clrscr();

    puts("Enter the string");

    gets(string);

    printf("Enter the position from where to delete");

    scanf("%d",&pos); printf("Enter the number of characters to be deleted");

  • 8/13/2019 CPDS Lab Manual

    29/107

    EEE

    DEPARTMENT VER 1

    CPDS LAB MANUALPage 5

    scanf("%d",&n);

    delchar(string, n,pos);

    getch();}

    void delchar(char *x,int a, int b)

    {

    if ((a+b-1)

  • 8/13/2019 CPDS Lab Manual

    30/107

    EEE

    DEPARTMENT VER 1

    CPDS LAB MANUALPage 5

    if(string[left]!=string[right])

    matched=false;

    else{

    left++;

    right--;

    }

    }

    return matched;

    }

    int main()

    {

    char string[40];clrscr();

    printf("****Program to test if the given string is a palindrome****\n");

    printf("Enter a string:");

    scanf("%s",string);

    if(IsPalindrome(string))

    printf("The given string %s is a palindrome\n",string);

    else

    printf("The given string %s is not a palindrome\n",string);

    getch();

    return 0;

    }

    OUTPUT:

    ****Program to test if the given string is a palindrome****

    Enter a string:malayalam

    The given string malayalam is a palindrome

  • 8/13/2019 CPDS Lab Manual

    31/107

    EEE

    DEPARTMENT VER 1

    CPDS LAB MANUALPage 5

    AIM:

    To write a C program that displays the position or index in the string S where the string

    T begins, or - 1 if S doesn't contain T.

    Program:

    #include

    #include#include

    void main()

    {

    char s[30], t[20];

    char *found;

    clrscr();

    /* Entering the main string */

    puts("Enter the first string: ");

    gets(s);

  • 8/13/2019 CPDS Lab Manual

    32/107

    EEE

    DEPARTMENT VER 1

    CPDS LAB MANUALPage 5

    /* Entering the string whose position or index to be displayed */

    puts("Enter the string to be searched: ");

    gets(t);

    /*Searching string t in string s */

    found=strstr(s,t);

    if(found)

    printf("Second String is found in the First String at %d position.\n",found-s);

    else

    printf("-1");

    getch();

    }

    OUTPUT:

    Enter the first string:

    hyderabad

    Enter the string to be searched:

    bad

    Second String is found in the First String at 6 position.

    AIM:

    To write a C program to count the lines, words and characters in a given text.

    Program:

    #include

    main()

    {

    char line[81], ctr;

    int i,c,

    end = 0,

    characters = 0,

    words = 0,

    lines = 0;

    printf("KEY IN THE TEXT.\n");

    printf("GIVE ONE SPACE AFTER EACH WORD.\n");

  • 8/13/2019 CPDS Lab Manual

    33/107

    EEE

    DEPARTMENT VER 1

    CPDS LAB MANUALPage 5

    printf("WHEN COMPLETED, PRESS 'RETURN'.\n\n");

    while( end == 0)

    {/* Reading a line of text */

    c = 0;

    while((ctr=getchar()) != '\n')

    line[c++] = ctr;

    line[c] = '\0';

    /* counting the words in a line */

    if(line[0] == '\0')

    break ;

    else

    {

    words++;for(i=0; line[i] != '\0';i++)

    if(line[i] == ' ' || line[i] == '\t')

    words++;

    }

    /* counting lines and characters */

    lines = lines +1;

    characters = characters + strlen(line);

    }

    printf ("\n");

    printf("Number of lines = %d\n", lines);

    printf("Number of words = %d\n", words);

    printf("Number of characters = %d\n", characters);

    }

    OUTPUT:

    KEY IN THE TEXT.

    GIVE ONE SPACE AFTER EACH WORD.

    WHEN COMPLETED, PRESS 'RETURN'.

    Admiration is a very short-lived passion.

    Admiration involves a glorious obliquity of vision.

    Always we like those who admire us but we do not

    like those whom we admire.

    Fools admire, but men of sense approve.

    Number of lines = 5Number of words = 36

  • 8/13/2019 CPDS Lab Manual

    34/107

    EEE

    DEPARTMENT VER 1

    CPDS LAB MANUALPage 5

    Number of characters = 205

    AIM:

    To write a C program to generate Pascal's triangle.

    Program:

    #include

    #include

    void main()

    {

    int bin,p,q,r,x;

    clrscr();

    bin=1;

    q=0;

    printf("Rows you want to input:");

  • 8/13/2019 CPDS Lab Manual

    35/107

    EEE

    DEPARTMENT VER 1

    CPDS LAB MANUALPage 5

    scanf("%d",&r);

    printf("\nPascal's Triangle:\n");

    while(q0;--p)

    printf(" ");

    for(x=0;x

  • 8/13/2019 CPDS Lab Manual

    36/107

    EEE

    DEPARTMENT VER 1

    CPDS LAB MANUALPage 5

    AIM:

    To write a C program to construct a pyramid of numbers.

    Program:

    #include

    #include

    void main()

    {

    int num,i,y,x=35;

    clrscr();

    printf("\nEnter the number to generate the pyramid:\n");

    scanf("%d",&num);

  • 8/13/2019 CPDS Lab Manual

    37/107

    EEE

    DEPARTMENT VER 1

    CPDS LAB MANUALPage 5

    for(y=0;y

  • 8/13/2019 CPDS Lab Manual

    38/107

    EEE

    DEPARTMENT VER 1

    CPDS LAB MANUALPage 5

    #include

    void main(){

    int s_sum,i,x,n;

    clrscr();

    printf("Enter the values for x and n:");

    scanf("%d %d",&x,&n);

    if(n

  • 8/13/2019 CPDS Lab Manual

    39/107

    EEE

    DEPARTMENT VER 1

    CPDS LAB MANUALPage 5

    void complement (char *a);

    void main(){

    char a[16];

    int i;

    clrscr();

    printf("Enter the binary number");

    gets(a);

    for(i=0;a[i]!='\0'; i++)

    {

    if (a[i]!='0' && a[i]!='1')

    {

    printf("The number entered is not a binary number. Enter the correct number"); exit(0);

    }

    }

    complement(a);

    getch();

    }

    void complement (char *a)

    {

    int l, i, c=0;

    char b[16];

    l=strlen(a);for (i=l-1; i>=0; i--)

    {

    if (a[i]=='0')

    b[i]='1';

    else

    b[i]='0';

    }

    for(i=l-1; i>=0; i--)

    {

    if(i==l-1)

    {

    if (b[i]=='0')

    b[i]='1';

    else

    {

    b[i]='0';

    c=1;

    }

    }

    else

    {if(c==1 && b[i]=='0')

  • 8/13/2019 CPDS Lab Manual

    40/107

    EEE

    DEPARTMENT VER 1

    CPDS LAB MANUALPage 5

    {

    b[i]='1';

    c=0;}

    else if (c==1 && b[i]=='1')

    {

    b[i]='0';

    c=1;

    }

    }

    }

    b[l]='\0';

    printf("The 2's complement is %s", b);

    }

    OUTPUT:

    Enter the binary number10011

    The 2's complement is 01101

    AIM:

    To write a C program to convert a Roman numeral to its decimal equivalent.

    Program:

    #include

  • 8/13/2019 CPDS Lab Manual

    41/107

  • 8/13/2019 CPDS Lab Manual

    42/107

    EEE

    DEPARTMENT VER 1

    CPDS LAB MANUALPage 5

    }

    printf("\nIts Decimal Equivalent is:");

    printf("%d",k);getch();

    }

    OUTPUT:

    AIM:

    To write a C program that uses functions to perform the following operations:

    i) Reading a complex number

    ii) Writing a complex number

    iii) Addition of two complex numbers

  • 8/13/2019 CPDS Lab Manual

    43/107

    EEE

    DEPARTMENT VER 1

    CPDS LAB MANUALPage 5

    iv) Multiplication of two complex numbers

    (Note: represent complex number using a structure.)

    Program:

    #include

    #include

    void arithmetic(int opern);

    struct comp

    { double realpart;

    double imgpart;

    };

    void main()

    {

    int opern;

    clrscr();

    printf("\n\n \t\t\t***** MAIN MENU *****");

    printf("\n\n Select your option: \n 1 : ADD\n 2 : MULTIPLY\n 0 : EXIT \n\n\t\t

    Enter your Option [ ]\b\b");

    scanf("%d",&opern);

    switch(opern)

    {

    case 0:

    exit(0);

    case 1:

    case 2:

    arithmetic(opern);

    default:main();

    }

    }

    void arithmetic(int opern)

    {

    struct comp w1, w2, w;

    printf("\n Enter two Complex Numbers (x+iy):\n Real Part of First Number:");scanf("%lf",&w1.realpart);

  • 8/13/2019 CPDS Lab Manual

    44/107

    EEE

    DEPARTMENT VER 1

    CPDS LAB MANUALPage 5

    printf("\n Imaginary Part of First Number:");

    scanf("%lf",&w1.imgpart);

    printf("\n Real Part of Second Number:");scanf("%lf",&w2.realpart);

    printf("\n Imaginary Part of Second Number:");

    scanf("%lf",&w2.imgpart);

    switch(opern)

    {

    /*addition of complex number*/

    case 1:

    w.realpart = w1.realpart+w2.realpart;w.imgpart = w1.imgpart+w2.imgpart;

    break;

    /*multiplication of complex number*/

    case 2:

    w.realpart=(w1.realpart*w2.realpart)-(w1.imgpart*w2.imgpart);

    w.imgpart=(w1.realpart*w2.imgpart)+(w1.imgpart*w2.realpart);

    break;

    }

    if (w.imgpart>0)

    printf("\n Answer = %lf+%lfi",w.realpart,w.imgpart);

    else

    printf("\n Answer = %lf%lfi",w.realpart,w.imgpart);

    getch();

    main();

    }

    OUTPUT:

  • 8/13/2019 CPDS Lab Manual

    45/107

    EEE

    DEPARTMENT VER 1

    CPDS LAB MANUALPage 5

    ***** MAIN MENU *****

    Select your option:

    1 : ADD

    2 : MULTIPLY

    0 : EXIT

    Enter your Option [ 1]

    Enter two Complex Numbers (x+iy):

    Real Part of First Number:2

    Imaginary Part of First Number:3

    Real Part of Second Number:2

    Imaginary Part of Second Number:3

    Answer = 4.000000+6.000000i

    AIM:

    To write a C program which copies one file to another.

  • 8/13/2019 CPDS Lab Manual

    46/107

    EEE

    DEPARTMENT VER 1

    CPDS LAB MANUALPage 5

    Program:

    #include

    #include

    #include

    void main(int argc, char *argv[])

    {

    FILE *fs,*ft;

    char ch;

    clrscr();if(argc!=3)

    {

    puts("Invalid number of arguments.");

    exit(0);

    }

    fs = fopen(argv[1],"r");

    if(fs==NULL)

    {

    puts("Source file cannot be opened.");

    exit(0);

    }ft = fopen(argv[2],"w");

    if (ft==NULL)

    {

    puts("Target file cannot be opened.");

    fclose(fs);

    exit(0);

    }

    while(1)

    {

    ch=fgetc(fs);

    if (ch==EOF)break;

    else

    fputc(ch,ft);

    }

    fclose(fs);

    fclose(ft);

    getch();

    }

    AIM:

  • 8/13/2019 CPDS Lab Manual

    47/107

    EEE

    DEPARTMENT VER 1

    CPDS LAB MANUALPage 5

    To write a C program to reverse the first n characters in a file.

    (Note: The file name and n are specified on the command line.)

    Program:

    #include

    #include

    #include

    #include

    void main(int argc, char *argv[])

    {

    char a[15];char s[20];

    char n;

    int k;

    int j=0;

    int i;

    int len;

    FILE *fp;

    if(argc!=3)

    {

    puts("Improper number of arguments.");exit(0);

    }

    fp = fopen(argv[1],"r");

    if(fp == NULL)

    {

    puts("File cannot be opened.");

    exit(0);

    }

    k=*argv[2]-48;

    n = fread(a,1,k,fp);a[n]='\0';

    len=strlen(a);

    for(i=len-1;i>=0;i--)

    {

    s[j]=a[i];

    printf("%c",s[j]);

    j=j+1;

    }

    s[j+1]='\0';

    getch();

    }

  • 8/13/2019 CPDS Lab Manual

    48/107

    EEE

    DEPARTMENT VER 1

    CPDS LAB MANUALPage 5

    AIM:

    To write a program to create a linear linked list interactively and print out the list and

    the total number of items in the list.

    Program:

    #include

    #include

    #define NULL 0

    struct linked_list

    {

    int number;

    struct linked_list *next;

    };

    typedef struct linked_list node; /* node type defined */

    main()

    {

    node *head;

    void create(node *p);int count(node *p);

    void print(node *p);

    head = (node *)malloc(sizeof(node));

    create(head);

    printf("\n");

    printf(head);

    printf("\n");

    printf("\nNumber of items = %d \n", count(head));

    }

    void create(node *list)

    {printf("Input a number\n");

    printf("(type -999 at end): ");

    scanf("%d", &list -> number); /* create current node */

    if(list->number == -999)

    {

    list->next = NULL;

    }

    else /*create next node */

    {list->next = (node *)malloc(sizeof(node));

  • 8/13/2019 CPDS Lab Manual

    49/107

    EEE

    DEPARTMENT VER 1

    CPDS LAB MANUALPage 5

    create(list->next); */ Recursion occurs */

    }

    return;}

    void print(node *list)

    {

    if(list->next != NULL)

    {

    printf("%d-->",list ->number); /* print current item */

    if(list->next->next == NULL)

    printf("%d", list->next->number);

    print(list->next); /* move to next item */}

    return;

    }

    int count(node *list)

    {

    if(list->next == NULL)

    return (0);

    else

    return(1+ count(list->next));

    }

    OUTPUT:

    Input a number

    (type -999 to end); 60

    Input a number

    (type -999 to end); 20

    Input a number(type -999 to end); 10

    Input a number

    (type -999 to end); 40

    Input a number

    (type -999 to end); 30

    Input a number

    (type -999 to end); 50

    Input a number

    (type -999 to end); -999

    60 -->20 -->10 -->40 -->30 -->50 --> -999

  • 8/13/2019 CPDS Lab Manual

    50/107

    EEE

    DEPARTMENT VER 1

    CPDS LAB MANUALPage 5

    Number of items = 6

    AIM:

    To write a function for inserting an item into a linked list.

    Program:

    node *insert(node *head){

    node *find(node *p, int a);

    node *new; /* pointer to new node */

    node *n1; /* pointer to node preceding key node */

    int key;

    int x; /* new item (number) to be inserted */

    printf("Value of new item?");

    scanf("%d", &x);

    printf("Value of key item ? (type -999 if last) ");

    scanf("%d", &key);

    if(head->number == key) /* new node is first */

    {

    new = (node *)malloc(size of(node));

    new->number = x;

    new->next = head;

    head = new;

    }

    else /* find key node and insert new node */

    { /* before the key node */

    n1 = find(head, key); /* find key node */

    if(n1 == NULL)

    printf("\n key is not found \n");

    else /* insert new node */

    {

    new = (node *)malloc(sizeof(node));

    new->number = x;

    new->next = n1->next;

    n1->next = new;

    }}

  • 8/13/2019 CPDS Lab Manual

    51/107

    EEE

    DEPARTMENT VER 1

    CPDS LAB MANUALPage 5

    return(head);

    }

    node *find(node *lists, int key){

    if(list->next->number == key) /* key found */

    return(list);

    else

    if(list->next->next == NULL) /* end */

    return(NULL);

    else

    find(list->next, key);

    }

  • 8/13/2019 CPDS Lab Manual

    52/107

    EEE

    DEPARTMENT VER 1

    CPDS LAB MANUALPage 5

    AIM:

    To write a function for deleting an item from linked list.

    Program:

    node *delete(node *head)

    {

    node *find(node *p, int a);

    int key; /* item to be deleted */

    node *n1; /* pointer to node preceding key node */

    node *p; /* temporary pointer */

    printf("\n What is the item (number) to be deleted?");

    scanf("%d", &key);

    if(head->number == key) /* first node to be deleted) */

    {

    p = head->next; /* pointer to 2nd node in list */

    free(head); /* release space of key node */

    head = p; /* make head to point to 1st node */

    }

    else

    {

    n1 = find(head, key);

    if(n1 == NULL)

    printf("\n key not found \n");

    else /* delete key node */

    {

    p = n1->next->next; /* pointer to the node

    following the keynode */

    free(n1->next); /* free key node */

    n1->next = p; /* establish link */

    }

    }

    return(head);

    }

    /* USE FUNCTION find() HERE */

  • 8/13/2019 CPDS Lab Manual

    53/107

  • 8/13/2019 CPDS Lab Manual

    54/107

  • 8/13/2019 CPDS Lab Manual

    55/107

  • 8/13/2019 CPDS Lab Manual

    56/107

    EEE

    DEPARTMENT VER 1

    CPDS LAB MANUALPage 5

    switch(choice-'0')

    {

    case 1:

    {

    printf("\n\tElement to be pushed: ");

    scanf("%d",&num1);

    push_ele(num1);

    break;

    }

    case 2:

    {num2=pop_ele(1);

    printf("\n\tElement to be popped: %d\n\t",num2);

    getch();

    break;

    }

    case 3:

    {

    display_ele();

    getch();

    break;}

    case 4:

    exit(1);

    break;

    default:

    printf("\nYour choice is invalid.\n");

    break;

    }

    }}

    /*Implementing the push() function. */

    void push_ele(int ele)

    {

    if(t==99)

    {

    printf("STACK is Full.\n");

    getch();

    exit(1);

    }st_arr[++t]=ele;

  • 8/13/2019 CPDS Lab Manual

    57/107

    EEE

    DEPARTMENT VER 1

    CPDS LAB MANUALPage 5

    }

    /*Implementing the pop() function. */int pop_ele()

    {

    int ele1;

    if(t==-1)

    {

    printf("\n\tSTACK is Empty.\n");

    getch();

    exit(1);

    }

    return(st_arr[t--]);

    }

    /*Implementing display() function. */

    void display_ele()

    {

    int k;

    printf("\n\tElements present in the stack are:\n\t");

    for(k=0;k

  • 8/13/2019 CPDS Lab Manual

    58/107

    EEE

    DEPARTMENT VER 1

    CPDS LAB MANUALPage 5

    AIM:

    To Write C programs that implement stack (its operations) using ii) Pointers.

    Program:

    #include

    #include

    struct st_point

    {

    int ele;

    struct st_point *l;

    }

    *t;

    int i;

    void push_ele(int j);

    int pop_ele();

    void display_ele();

    void main()

    {

    char choice,num1=0,num2=0;

    int i;

    while(1)

  • 8/13/2019 CPDS Lab Manual

    59/107

  • 8/13/2019 CPDS Lab Manual

    60/107

  • 8/13/2019 CPDS Lab Manual

    61/107

    EEE

    DEPARTMENT VER 1

    CPDS LAB MANUALPage 5

    OUTPUT:

    ======================================

    MENU

    ======================================

    [1] Using Push Function

    [2] Using Pop Function

    [3] Elements present in Stack

    [4] Exit

    Enter your choice: 3

    Elements present in the stack are:5 4 3

    AIM:

    To Write C programs that implement Queue (its operations) using i) Arrays

    Program:

    #include

    #include

    #include#define size 10

    #define true 1

    #define false 0

    struct q_arr

    {

    int f,r;

    int num;

    int a[size];

    };

    void init(struct q_arr* queue);

  • 8/13/2019 CPDS Lab Manual

    62/107

    EEE

    DEPARTMENT VER 1

    CPDS LAB MANUALPage 5

    int e_que(struct q_arr* queue);

    int f_que(struct q_arr* queue);

    int add_ele(struct q_arr* queue,int);int rem_ele(struct q_arr* queue);

    void display_ele(struct q_arr* queue);

    /*main function*/

    void main()

    {

    int ele,k;

    int ch;

    struct q_arr *queue = (struct q_arr*)malloc(sizeof(struct q_arr));

    init(queue);

    while(1)

    {

    clrscr();

    printf("\n\n****IMPLEMENTATION OF QUEUE USING ARRAYS****\n");

    printf("============================================");

    printf("\n\t\tMENU\n");

    printf("============================================");

    printf("\n\t[1] To insert an element");

    printf("\n\t[2] To remove an element");

    printf("\n\t[3] To display all the elements");printf("\n\t[4] Exit");

    printf("\n\n\t Enter your choice: ");

    scanf("%d",&ch);

    switch(ch)

    {

    case 1:

    {

    printf("\nElement to be inserted:");

    scanf("%d",&ele);

    add_ele(queue,ele); break;

    }

    case 2:

    {

    if(!e_que(queue))

    {

    k=rem_ele(queue);

    printf("\n%d element is removed\n",k);

    getch();

    }

  • 8/13/2019 CPDS Lab Manual

    63/107

    EEE

    DEPARTMENT VER 1

    CPDS LAB MANUALPage 5

    else

    {

    printf("\tQueue is Empty. No element can be removed.");getch();

    }

    break;

    }

    case 3:

    {

    display_ele(queue);

    getch();

    break;

    }

    case 4:

    exit(0);

    default:

    printf("\tInvalid Choice.");

    getch();

    break;

    }

    }

    }/*end main*/

    void init(struct q_arr* queue)

    {

    queue->f = 0;

    queue->r = -1;

    queue->num = 0;

    }

    /* Function to check is the queue is empty*/

    int e_que(struct q_arr* queue){

    if(queue->num==0)

    return true;

    return false;

    }

    /* Function to check if the queue is full*/

    int f_que(struct q_arr* queue)

    {

    if(queue->num == size)

    return true;

  • 8/13/2019 CPDS Lab Manual

    64/107

    EEE

    DEPARTMENT VER 1

    CPDS LAB MANUALPage 5

    return false;

    }

    /* Function to add an element to the queue*/

    int add_ele(struct q_arr* queue,int j)

    {

    if(f_que(queue))

    return false;

    if(queue->r == size - 1)

    queue->r = -1;

    queue->a[++queue->r] = j;

    queue->num++;

    return true;}

    /* Function to remove an element of the queue*/

    int rem_ele(struct q_arr* queue)

    {

    int j;

    if(e_que(queue))

    return -9999;

    j = queue->a[queue->f++];

    if(queue->f == size)

    queue->f = 0;queue->num--;

    return j;

    }

    /* Function to display the queue*/

    void display_ele(struct q_arr* queue)

    {

    int j;

    if(e_que(queue))

    {

    printf("Queue is Empty. No records to display.");return;

    }

    printf("\nElements present in the Queue are: ");

    for(j=queue->f;jr;j++)

    printf("%d\t",queue->a[j]);

    printf("\n");

    }

  • 8/13/2019 CPDS Lab Manual

    65/107

    EEE

    DEPARTMENT VER 1

    CPDS LAB MANUALPage 5

    OUTPUT:

    ****IMPLEMENTATION OF QUEUE USING ARRAYS****

    ============================================

    MENU

    ============================================

    [1] To insert an element

    [2] To remove an element

    [3] To display all the elements

    [4] Exit

    Enter your choice: 3

    Elements present in the Queue are: 1 2 3

    AIM:

    To Write C programs that implement Queue (its operations) using ii) Pointers

    Program:

    #define true 1

    #define false 0

    #include

    #include#include

  • 8/13/2019 CPDS Lab Manual

    66/107

    EEE

    DEPARTMENT VER 1

    CPDS LAB MANUALPage 5

    struct q_point

    {int ele;

    struct q_point* n;

    };

    struct q_point *f_ptr = NULL;

    int e_que(void);

    void add_ele(int);

    int rem_ele(void);

    void show_ele();

    /*main function*/

    void main()

    {

    int ele,choice,j;

    while(1)

    {

    clrscr();

    printf("\n\n****IMPLEMENTATION OF QUEUE USING POINTERS****\n");

    printf("==============================================");

    printf("\n\t\t MENU\n");

    printf("==============================================");printf("\n\t[1] To insert an element");

    printf("\n\t[2] To remove an element");

    printf("\n\t[3] To display all the elements");

    printf("\n\t[4] Exit");

    printf("\n\n\tEnter your choice:");

    scanf("%d", &choice);

    switch(choice)

    {

    case 1:

    {printf("\n\tElement to be inserted:");

    scanf("%d",&ele);

    add_ele(ele);

    getch();

    break;

    }

    case 2:

    {

    if(!e_que())

    {

  • 8/13/2019 CPDS Lab Manual

    67/107

    EEE

    DEPARTMENT VER 1

    CPDS LAB MANUALPage 5

    j=rem_ele();

    printf("\n\t%d is removed from the queue",j);

    getch();}

    else

    {

    printf("\n\tQueue is Empty.");

    getch();

    }

    break;

    }

    case 3:

    show_ele();getch();

    break;

    case 4:

    exit(1);

    break;

    default:

    printf("\n\tInvalid choice.");

    getch();

    break;}

    }

    }

    /* Function to check if the queue is empty*/

    int e_que(void)

    {

    if(f_ptr==NULL)

    return true;

    return false;}

    /* Function to add an element to the queue*/

    void add_ele(int ele)

    {

    struct q_point *queue = (struct q_point*)malloc(sizeof(struct q_point));

    queue->ele = ele;

    queue->n = NULL;

    if(f_ptr==NULL)

    f_ptr = queue;

    else

  • 8/13/2019 CPDS Lab Manual

    68/107

    EEE

    DEPARTMENT VER 1

    CPDS LAB MANUALPage 5

    {

    struct q_point* ptr;

    ptr = f_ptr;for(ptr=f_ptr ;ptr->n!=NULL; ptr=ptr->n);

    ptr->n = queue;

    }

    }

    /* Function to remove an element from the queue*/

    int rem_ele()

    {

    struct q_point* queue=NULL;

    if(e_que()==false)

    {int j = f_ptr->ele;

    queue=f_ptr;

    f_ptr = f_ptr->n;

    free (queue);

    return j;

    }

    else

    {

    printf("\n\tQueue is empty.");

    return -9999;

    }}

    /* Function to display the queue*/

    void show_ele()

    {

    struct q_point *ptr=NULL;

    ptr=f_ptr;

    if(e_que())

    {

    printf("\n\tQUEUE is Empty.");

    return;

    }

    else

    {

    printf("\n\tElements present in Queue are:\n\t");

    while(ptr!=NULL)

    {

    printf("%d\t",ptr->ele);

    ptr=ptr->n;

    }

    }}

  • 8/13/2019 CPDS Lab Manual

    69/107

    EEE

    DEPARTMENT VER 1

    CPDS LAB MANUALPage 5

    OUTPUT:

    ****IMPLEMENTATION OF QUEUE USING POINTERS****

    ==============================================

    MENU

    ==============================================

    [1] To insert an element

    [2] To remove an element

    [3] To display all the elements[4] Exit

    Enter your choice:3

    Elements present in Queue are:

    1 2 3

    AIM:

    To write a C program that uses stack operations to perform the following:

    i. Convert infix expression into postfix expression.ii. Evaluating the postfix expression.

  • 8/13/2019 CPDS Lab Manual

    70/107

    EEE

    DEPARTMENT VER 1

    CPDS LAB MANUALPage 5

    Program:

    #include

    #include

    int st[100];

    int st_top=-1;

    int cal(char post[]);

    void in_post(char in[]);

    void push_item(int it);

    int pop_item();

    int st_ISP(char t);int st_ICP(char t);

    /*main function*/

    void main()

    {

    char in[100],post[100];

    clrscr();

    printf("\n\tEnter the Infix Expression: ");

    gets(in);

    in_post(in);

    getch();}

    /*end main*/

    void push_item(int it)

    {

    if(st_top==99)

    {

    printf("\n\n\t*STACK is Full*");

    getch();

    exit(1);

    }st[++st_top]=it;

    }

    int pop_item()

    {

    int it;

    if(st_top==-1)

    {

    getch();

    }

    return(st[st_top--]); }

  • 8/13/2019 CPDS Lab Manual

    71/107

    EEE

    DEPARTMENT VER 1

    CPDS LAB MANUALPage 5

    /*Function for converting an infix expression to a postfix expression. */

    void in_post(char in[]){

    int x=0,y=0,z,result=0;

    char a,c, post[100];

    char t;

    push_item('\0');

    t=in[x];

    while(t!='\0')

    {

    if(isalnum(t))

    /*For checking whether the value in t is an alphabet or number. */

    {post[y]=t;

    y++;

    }

    else if(t=='(')

    {

    push_item('(');

    }

    else if(t==')')

    {

    while(st[st_top]!='(')

    {c=pop_item();

    post[y]=c;

    y++;

    }

    c=pop_item();

    }

    else

    {

    while(st_ISP(st[st_top])>=st_ICP(t))

    {

    c=pop_item();

    post[y]=c;

    y++;

    }

    push_item(t);

    }

    x++;

    t=in[x];

    }

    while(st_top!=-1) {

  • 8/13/2019 CPDS Lab Manual

    72/107

    EEE

    DEPARTMENT VER 1

    CPDS LAB MANUALPage 5

    c=pop_item();

    post[y]=c;

    y++;}

    printf("\n\tThe Postfix Expression is:");

    for(z=0;z

  • 8/13/2019 CPDS Lab Manual

    73/107

    EEE

    DEPARTMENT VER 1

    CPDS LAB MANUALPage 5

    case ')':return (9);

    case '+':return (7);

    case '-':return (7);case '*':return (8);

    case '/':return (8);

    case '\0':return (0);

    default: printf("Expression is invalid.");

    break;

    }

    return 0;

    }

    /*Evaluating the result of postfix expression*/

    int cal(char post[]){

    int m,n,x,y,j=0,len;

    len=strlen(post);

    while(j0)

    {printf("Number of Operands are more than Operators.");

  • 8/13/2019 CPDS Lab Manual

    74/107

    EEE

    DEPARTMENT VER 1

    CPDS LAB MANUALPage 5

    exit(0);

    }

    else{

    y=pop_item();

    return (y);

    }

    return 0;

    }

    OUTPUT:

    Enter the Infix Expression: a+b*c

    The Postfix Expression is:abc*+

    Do you want to evaluate the Result of Postfix Expression?(Y/N):y

    Result is: 146

  • 8/13/2019 CPDS Lab Manual

    75/107

    EEE

    DEPARTMENT VER 1

    CPDS LAB MANUALPage 5

    AIM:

    To Write C programs that implement the following sorting methods to sort

    a given list of integers in ascending order: i) Bubble sort.

    Program:

    #include

    #define MAX 10

    void swapList(int *m,int *n)

    {

    int temp;

    temp = *m;

    *m = *n;

    *n = temp;

    }

    void bub_sort(int list[], int n)

    {

    int i,j;

    for(i=0;i

  • 8/13/2019 CPDS Lab Manual

    76/107

    EEE

    DEPARTMENT VER 1

    CPDS LAB MANUALPage 5

    int list[MAX], num;

    clrscr();

    printf("\n\n\n***** Enter the number of elements [Maximum 10] *****\n");scanf("%d",&num);

    readlist(list,num);

    printf("\n\nElements in the list before sorting are:\n");

    printlist(list,num);

    bub_sort(list,num);

    printf("\n\nElements in the list after sorting are:\n");

    printlist(list,num);

    getch();

    }

    OUTPUT:

    ***** Enter the number of elements [Maximum 10] *****

    5

    Enter the elements:

    1

    4

    9

    6

    3

    Elements in the list before sorting are:

    1 4 9 6 3

    Elements in the list after sorting are:

    1 3 4 6 9

  • 8/13/2019 CPDS Lab Manual

    77/107

    EEE

    DEPARTMENT VER 1

    CPDS LAB MANUALPage 5

    AIM:

    To Write C program that implement the following sorting methods to sort a given list of

    integers in ascending order: i) Insertion sort.

    Program:

    #include#include

    void inst_sort(int []);

    void main()

    {

    int num[5],count;

    clrscr();

    printf("\nEnter the Five Elements to sort:\n");

    for (count=0;count

  • 8/13/2019 CPDS Lab Manual

    78/107

    EEE

    DEPARTMENT VER 1

    CPDS LAB MANUALPage 5

    OUTPUT:

    Enter the Five Elements to sort:

    11 9 8 3 5

    Elements after sorting:

    3

    5

    8

    9

    11

  • 8/13/2019 CPDS Lab Manual

    79/107

  • 8/13/2019 CPDS Lab Manual

    80/107

    EEE

    DEPARTMENT VER 1

    CPDS LAB MANUALPage 5

    scanf("%d",&ele);

    switch(ch){

    case 1:printf("\n**Recursion method**\n");

    l_search_recursive(l,num,ele);

    getch();

    break;

    case 2:printf("\n**Non-Recursion method**\n");

    l_search_nonrecursive(l,num,ele);

    getch();

    break;

    }}

    getch();

    }

    /*end main*/

    /* Non-Recursive method*/

    void l_search_nonrecursive(int l[],int num,int ele)

    {

    int j, f=0;

    for(j=0;j

  • 8/13/2019 CPDS Lab Manual

    81/107

    EEE

    DEPARTMENT VER 1

    CPDS LAB MANUALPage 5

    {

    printf("The element %d is not found.",ele);

    }else

    {

    l_search(l,num-1,ele);

    }

    }

    getch();

    }

    void read_list(int l[],int num)

    {

    int j;printf("\nEnter the elements:\n");

    for(j=0;j

  • 8/13/2019 CPDS Lab Manual

    82/107

  • 8/13/2019 CPDS Lab Manual

    83/107

    EEE

    DEPARTMENT VER 1

    CPDS LAB MANUALPage 5

    }

    /* Recursive function*/int b_search_recursive(int l[],int arrayStart,int arrayEnd,int a)

    {

    int m,pos;

    if (arrayStart

  • 8/13/2019 CPDS Lab Manual

    84/107

    EEE

    DEPARTMENT VER 1

    CPDS LAB MANUALPage 5

    printf("\n\nEnter your Choice:");

    scanf("%d",&ch);

    if(ch0)

    {

    printf("\nEnter the number of elements : ");

    scanf("%d",&num);

    read_list(l,num);

    printf("\nElements present in the list are:\n\n");

    print_list(l,num);

    printf("\n\nEnter the element you want to search:\n\n");

    scanf("%d",&ele);

    switch(ch)

    {

    case 1:printf("\nRecursive method:\n");

    pos=b_search_recursive(l,0,num,ele);

    if(pos==-1)

    {

    printf("Element is not found");

    }

    else

    {

    printf("Element is found at %d position",pos);}

    getch();

    break;

    case 2:printf("\nNon-Recursive method:\n");

    b_search_nonrecursive(l,num,ele);

    getch();

    break;

    }

    }

    getch();}

  • 8/13/2019 CPDS Lab Manual

    85/107

  • 8/13/2019 CPDS Lab Manual

    86/107

    EEE

    DEPARTMENT VER 1

    CPDS LAB MANUALPage 5

    AIM:

    To Write C program that implement the following sorting methods to sort a given list of

    integers in ascending order: ii) Quick sort.

    Program:

    #include

    #define MAX 10

    void swap(int *m,int *n)

    {

    int temp;

    temp = *m;

    *m = *n;

    *n = temp;

    }

    int get_key_position(int x,int y )

    {

    return((x+y) /2);

    }

    /* Function for Quick Sort */

    void quicksort(int list[],int m,int n)

    {

    int key,i,j,k;

  • 8/13/2019 CPDS Lab Manual

    87/107

    EEE

    DEPARTMENT VER 1

    CPDS LAB MANUALPage 5

    if( m < n)

    {

    k = get_key_position(m,n);swap(&list[m],&list[k]);

    key = list[m];

    i = m+1;

    j = n;

    while(i

  • 8/13/2019 CPDS Lab Manual

    88/107

    EEE

    DEPARTMENT VER 1

    CPDS LAB MANUALPage 5

    print_data(list,num);

    quicksort(list,0,num-1);

    printf("\n\nElements in the list after sorting are:\n");print_data(list,num);

    getch();

    }

    OUTPUT:

    ***** Enter the number of elements Maximum [10] *****

    5

    Enter the elements:

    5

    4

    3

    2

    1

    Elements in the list before sorting are:

    5 4 3 2 1

    Elements in the list after sorting are:

    1 2 3 4 5

  • 8/13/2019 CPDS Lab Manual

    89/107

    EEE

    DEPARTMENT VER 1

    CPDS LAB MANUALPage 5

    AIM:

    To Write C program that implement the following sorting methods to sort a given list of

    integers in ascending order:

    ii) Merge sort

    Program:

    #include

    #include

    #define MAX_ARY 10

    void merge_sort(int x[], int end, int start);

    int main(void) {

    int ary[MAX_ARY];

    int j = 0;

    printf("\n\nEnter the elements to be sorted: \n");

    for(j=0;j

  • 8/13/2019 CPDS Lab Manual

    90/107

    EEE

    DEPARTMENT VER 1

    CPDS LAB MANUALPage 5

    printf(" %d", ary[j]);

    printf("\n");

    merge_sort(ary, 0, MAX_ARY - 1);

    /* array after mergesort */

    printf("After Merge Sort :");

    for(j = 0; j < MAX_ARY; j++)

    printf(" %d", ary[j]);

    printf("\n");

    getch();

    }

    /* Method to implement Merge Sort*/

    void merge_sort(int x[], int end, int start) {

    int j = 0;

    const int size = start - end + 1;

    int mid = 0;

    int mrg1 = 0;

    int mrg2 = 0;

    int executing[MAX_ARY];

    if(end == start)return;

    mid = (end + start) / 2;

    merge_sort(x, end, mid);

    merge_sort(x, mid + 1, start);

    for(j = 0; j < size; j++)

    executing[j] = x[end + j];

    mrg1 = 0;mrg2 = mid - end + 1;

    for(j = 0; j < size; j++) {

    if(mrg2

  • 8/13/2019 CPDS Lab Manual

    91/107

    EEE

    DEPARTMENT VER 1

    CPDS LAB MANUALPage 5

    x[j + end] = executing[mrg1++];

    }

    }

    OUTPUT:

    Enter the elements to be sorted:

    9 8 7 6 5 4 3 2 1 4

    Before : 9 8 7 6 5 4 3 2 1 4

    After Merge Sort : 1 2 3 4 4 5 6 7 8 9

    AIM:

    To Write C program to implement the Lagrange interpolation.

    Program:

    #include

    #include

    #define MaxN 90

    void main()

    {float arr_x[MaxN+1], arr_y[MaxN+1], numerator, denominator, x, y=0;

    int i, j, n;

    clrscr();

    printf("Enter the value of n: \n");

    scanf("%d", &n);

    printf("Enter the values of x and y: \n");

    for(i=0; i

  • 8/13/2019 CPDS Lab Manual

    92/107

    EEE

    DEPARTMENT VER 1

    CPDS LAB MANUALPage 5

    numerator=1;

    denominator=1;

    for (j=0; j

  • 8/13/2019 CPDS Lab Manual

    93/107

    EEE

    DEPARTMENT VER 1

    CPDS LAB MANUALPage 5

    scanf("%d",&n);

    printf("Enter the values of x and y");

    for(i=0; i

  • 8/13/2019 CPDS Lab Manual

    94/107

    EEE

    DEPARTMENT VER 1

    CPDS LAB MANUALPage 5

    Enter the value of x at which value of y is to be calculated2

    When x= 2.0, y= 3.00

    AIM:

    To Write C program to implement the linear regression algorithm.

    Program:

    #include

    #include

    #include

    #include

    float mean(float *a, int n);

    void deviation(float *a, float mean, int n, float *d, float *S);

    void main()

    {

    float a[20],b[20],dx[20],dy[20];float sy=0,sx=0,mean_x=0,mean_y=0,sum_xy=0;

  • 8/13/2019 CPDS Lab Manual

    95/107

    EEE

    DEPARTMENT VER 1

    CPDS LAB MANUALPage 5

    float corr_coff=0,reg_coff_xy=0, reg_coff_yx=0;

    char type_coff[7];

    int n=0,i=0;

    clrscr();

    printf("Enter the value of n: ");

    scanf("%d",&n);

    printf("Enter the values of x and y:\n");

    for(i=0;i

  • 8/13/2019 CPDS Lab Manual

    96/107

    EEE

    DEPARTMENT VER 1

    CPDS LAB MANUALPage 5

    void deviation(float *a, float mean, int n, float *d, float *s)

    {

    float sum=0,t=0;int i=0;

    for(i=0;i

  • 8/13/2019 CPDS Lab Manual

    97/107

  • 8/13/2019 CPDS Lab Manual

    98/107

    EEE

    DEPARTMENT VER 1

    CPDS LAB MANUALPage 5

    else

    {

    top++;stack[top]=item;

    }

    return;

    }

    /*Removing the operands from a stack. */

    float pop()

    {

    float item;

    if(top==-1)

    {

    printf("\n\tThe stack is empty\n\t");getch();

    }

    item=stack[top];

    top--;

    return (item);

    }

    void push1(char item)

    {

    if(top1==79)

    {

    printf("\n\tThe stack is full");

    getch();

    exit(0);

    }

    else

    {

    top1++;

    stack1[top1]=item;

    }

    return;

    }

    /*Removing the operands from a stack. */

    char pop1()

    {

    char item;

    if(top1==-1)

    {

    printf("\n\tThe stack1 is empty\n\t");

    getch();

    }

    item=stack1[top1];

    top1--;return (item);

  • 8/13/2019 CPDS Lab Manual

    99/107

    EEE

    DEPARTMENT VER 1

    CPDS LAB MANUALPage 5

    }

    /*Converting an infix expression to a postfix expression. */

    void infix_postfix(char infix[]){

    int i=0,j=0,k;

    char ch;

    char token;

    for(i=0;i=ICP(token))

    {

    ch=pop1();

    postfix[j]=ch;

    j++;

    }

    push1(token);

    }

    i++;

    token=infix[i];

    }while(top1!=0)

  • 8/13/2019 CPDS Lab Manual

    100/107

    EEE

    DEPARTMENT VER 1

    CPDS LAB MANUALPage 5

    {

    ch=pop1();

    postfix[j]=ch;j++;

    }

    postfix[j]='\0';

    }

    /*Determining the priority of elements that are placed inside the stack. */

    int ISPriority(char token)

    {

    switch(token)

    {

    case '(':return (0);case ')':return (9);

    case '+':return (7);

    case '-':return (7);

    case '*':return (8);

    case '/':return (8);

    case '?':return (0);

    default: printf("Invalid expression");

    }

    return 0;

    }

    /*Determining the priority of elements that are approaching towards the stack. */

    int ICP(char token)

    {

    switch(token)

    {

    case '(':return (10);

    case ')':return (9);

    case '+':return (7);

    case '-':return (7);

    case '*':return (8);

    case '/':return (8);

    case '\0':return (0);

    default: printf("Invalid expression");

    }

    return 0;

    }

    /*Calculating the result of expression, which is converted in postfix notation. */

    float eval(char p[], float x1)

    {

    float t1,t2,k,r;

    int i=0,l;l=strlen(p);

  • 8/13/2019 CPDS Lab Manual

    101/107

    EEE

    DEPARTMENT VER 1

    CPDS LAB MANUALPage 5

    while(i0)

    {

    printf("You have entered the operands more than the operators");

    exit(0);

    }

    else

    {

    r=pop();

    return (r);

    }

    return 0;

    }

    AIM:

  • 8/13/2019 CPDS Lab Manual

    102/107

    EEE

    DEPARTMENT VER 1

    CPDS LAB MANUALPage 5

    To Write C program to implement Trapezoidal method.

    Program:

    #include

    #include

    #include

    char postfix[80];

    float stack[80];

    char stack1[80];

    int top=-1,top1=-1;

    float eval(char postfix[], float x1);

    void infix_postfix(char infix[]);

    main()

    {

    float x0, xn, h, s,e1,e2;

    char exp[80], arr[80];

    int i,n,l=0;

    clrscr();

    printf("\nEnter an expression: ");

    gets(exp);puts("Enter x0, xn and number of subintervals");

    scanf("%f%f%d", &x0, &xn, &n);

    h=(xn-x0)/n;

    if(exp[0]=='l'&& exp[1]=='o'&& exp[2]=='g')

    {

    l=strlen(exp);

    for(i=0;i

  • 8/13/2019 CPDS Lab Manual

    103/107

    EEE

    DEPARTMENT VER 1

    CPDS LAB MANUALPage 5

    }

    printf("Value of the integral is %6.3f\n",(h/2)*s);

    return(0);}

    /*Inserting the operands in a stack. */

    void push(float item)

    {

    if(top==99)

    {

    printf("\n\tThe stack is full");

    getch();

    exit(0);

    }

    else{

    top++;

    stack[top]=item;

    }

    return;

    }

    /*Removing the operands from a stack. */

    float pop()

    {

    float item;

    if(top==-1)

    {

    printf("\n\tThe stack is empty\n\t");

    getch();

    }

    item=stack[top];

    top--;

    return (item);

    }

    void push1(char item)

    {

    if(top1==79)

    {

    printf("\n\tThe stack is full");

    getch();

    exit(0);

    }

    else

    {

    top1++;

    stack1[top1]=item;

    }return;

  • 8/13/2019 CPDS Lab Manual

    104/107

    EEE

    DEPARTMENT VER 1

    CPDS LAB MANUALPage 5

    }

    /*Removing the operands from a stack. */

    char pop1(){

    char item;

    if(top1==-1)

    {

    printf("\n\tThe stack1 is empty\n\t");

    getch();

    }

    item=stack1[top1];

    top1--;

    return (item);

    }

    /*Converting an infix expression to a postfix expression. */

    void infix_postfix(char infix[])

    {

    int i=0,j=0,k;

    char ch;

    char token;

    for(i=0;i

  • 8/13/2019 CPDS Lab Manual

    105/107

    EEE

    DEPARTMENT VER 1

    CPDS LAB MANUALPage 5

    else

    {

    while(ISPriority(stack1[top1])>=ICP(token))

    {

    ch=pop1();

    /*Assigning the popped element into the postfix array. */

    postfix[j]=ch;

    j++;

    }

    push1(token);

    }

    i++;

    token=infix[i];}

    while(top1!=0)

    {

    ch=pop1();

    postfix[j]=ch;

    j++;

    }

    postfix[j]='\0';

    }

    int ISPriority(char token){

    switch(token)

    {

    case '(':return (0);

    case ')':return (9);

    case '+':return (7);

    case '-':return (7);

    case '*':return (8);

    case '/':return (8);

    case '?':return (0);

    default: printf("Invalid expression");

    break;

    }

    return 0;

    }

    /*Determining the priority of elements that are approaching towards the stack. */

    int ICP(char token)

    {

    switch(token)

    {

    case '(':return (10);case ')':return (9);

  • 8/13/2019 CPDS Lab Manual

    106/107

    EEE

    DEPARTMENT VER 1

    CPDS LAB MANUALPage 5

    case '+':return (7);

    case '-':return (7);

    case '*':return (8);case '/':return (8);

    case '\0':return (0);

    default: printf("Invalid expression");

    break;

    }

    return 0;

    }

    /*Calculating the result of expression, which is converted in postfix notation. */

    float eval(char p[], float x1)

    {

    float t1,t2,k,r;int i=0,l;

    l=strlen(p);

    while(i

  • 8/13/2019 CPDS Lab Manual

    107/107

    EEE

    DEPARTMENT VER 1

    if(top>0)

    {

    printf("You have entered the operands more than the operators"); exit(0);

    }

    else

    {

    r=pop();

    return (r);

    }

    return 0;

    }