SlideShare a Scribd company logo
/* Write C program to implement Trapezoidal method.*/



#include<stdio.h>

#include<conio.h>

#include<math.h>



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<l-3; i++)

    arr[0]=exp[i+3];

arr[i]='0';

infix_postfix(arr);

e1=eval(postfix,x0);

e2=eval(postfix,xn);

s=log(e1)+log(e2);

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

s+=2*log(eval(postfix,x0+i*h));

}

else

{

infix_postfix(exp);

s=eval(postfix,x0)+eval(postfix,xn);

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

s+=2*eval(postfix,x0+i*h);

}

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

return(0);

}
/*Inserting the operands in a stack. */

void push(float item)

{

if(top==99)

{

printf("ntThe 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("ntThe stack is emptynt");

    getch();
}

item=stack[top];

top--;

return (item);

}

void push1(char item)

{

if(top1==79)

{

    printf("ntThe 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("ntThe stack1 is emptynt");

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<79;i++)

postfix[i]=' ';

push1('?');

i=0;

token=infix[i];

while(token!='0')

{

if(isalnum(token))
{

postfix[j]=token;

j++;

}

else if(token=='(')

{

push1('(');

}

else if(token==')')

{

while(stack1[top1]!='(')

{

    ch=pop1();

    postfix[j]=ch;

    j++;

}

ch=pop1();

}

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);

    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<l)

{

if(p[i]=='x')

push(x1);

else

if(isdigit(p[i]))

{

k=p[i]-'0';

push(k);

}

else

{

t1=pop();

t2=pop();

switch(p[i])
{

case '+':k=t2+t1;

break;

case '-':k=t2-t1;

break;

case '*':k=t2*t1;

break;

case '/':k=t2/t1;

break;

default: printf("ntInvalid expression");

break;

}

push(k);

}

i++;

}

if(top>0)

{

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

exit(0);

}

else

{

r=pop();
return (r);

}

return 0;

}




/* Write C program to implement Simpson method. */



#include<stdio.h>

#include<conio.h>

#include<math.h>



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, e3;

char exp[80], arr[80];

int i,n,l=0;

clrscr();

printf("nEnter an expression: ");

gets(exp);

puts("Enter x0, xn and number of sub-intervals: ");

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<l-3; i++)

    arr[0]=exp[i+3];

    arr[i]='0';

    infix_postfix(arr);

    e1=eval(postfix,x0);

    e2=eval(postfix,xn);

    e3=4*eval(postfix, x0+h);

    s=log(e1)+log(e2)+log(e3);

    for (i=3;i<=n-1;i+=2)

      s+=4*eval(postfix,x0+i*h)+2*eval(postfix, x0+(i-1)*h);

}
else

{

    infix_postfix(exp);

    s=eval(postfix,x0)+eval(postfix,xn)+4*eval(postfix, x0+h);

    for (i=3;i<=n-1;i+=2)

    s+=4*eval(postfix,x0+i*h)+2*eval(postfix, x0+(i-1)*h);

}

printf("The value of integral is %6.3fn",(h/3)*s);

return(0);

}

/*Inserting the operands in a stack. */

void push(float item)

{

if(top==99)

{

    printf("ntThe 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("ntThe stack is emptynt");

getch();

}

item=stack[top];

top--;

return (item);

}

void push1(char item)

{

if(top1==79)

{

    printf("ntThe 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("ntThe stack1 is emptynt");

    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<79;i++)

postfix[i]=' ';

push1('?');

i=0;

token=infix[i];

while(token!='0')

{

    if(isalnum(token))

    {

        postfix[j]=token;

        j++;

    }

    else if(token=='(')

    {

        push1('(');

    }

    else if(token==')')

    {

    while(stack1[top1]!='(')

    {

        ch=pop1();

        postfix[j]=ch;

        j++;
}

    ch=pop1();

    }

else

{

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

    {

    ch=pop1();

    postfix[j]=ch;

    j++;

    }

push1(token);

}

i++;

token=infix[i];

}

while(top1!=0)

{

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);

while(i<l)

{

    if(p[i]=='x')

    push(x1);

    else

    if(isdigit(p[i]))

        {

        k=p[i]-'0';
push(k);

        }

else

{

    t1=pop();

    t2=pop();

    switch(p[i])

    {

    case '+':k=t2+t1;

    break;

    case '-':k=t2-t1;

    break;

    case '*':k=t2*t1;

    break;

    case '/':k=t2/t1;

    break;

    default: printf("ntInvalid expression");

    }

push(k);

}

i++;

}

if(top>0)

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

    exit(0);

}

else

{

    r=pop();

    return (r);

}

return 0;

}

More Related Content

What's hot (20)

PDF
Javascript i wydajność - czy to się spina?
Michał Kostrzyński
 
DOCX
Rafael vasquez
Rafael Vasquez
 
DOC
Absolute Loader
ksanthosh
 
KEY
Sbaw090630
Atsushi Tadokoro
 
DOC
Ngon ngu lap trinh
Nguyễn Đức Trung
 
DOCX
Taller de string(java)
Řỉgö VẻGầ
 
DOCX
(Meta 4) ejemplo calcular la mitad de un numero dev c++
Eli Diaz
 
DOCX
All set1
Sagar Yeole
 
PDF
المحاضره 6 & 7 c#
nermeenelhamy1
 
DOCX
Metodos Numericos(Segundo Taller De Aplicadas)
guest1bb7f49
 
DOC
Bt c cpp_0021
Hồ Lợi
 
PDF
Programs
Murali Kummitha
 
DOCX
Simulacion - Algoritmo congruencial cuadratico
José Antonio Sandoval Acosta
 
PDF
Programming in C
Vineet Kumar Saini
 
DOCX
Luis cuñas programacion
luisitofranklin
 
DOCX
Program to remove Left factoring
Shraddha Patel
 
PDF
Как помочь и как помешать компилятору. Андрей Олейников ➠ CoreHard Autumn 2019
corehard_by
 
PDF
An introduction to functional programming with Go [redux]
Eleanor McHugh
 
DOCX
Dasar c
Alvin Setiawan
 
PDF
openFrameworks 動きを生みだす様々なアルゴリズム - 多摩美メディアアートII
Atsushi Tadokoro
 
Javascript i wydajność - czy to się spina?
Michał Kostrzyński
 
Rafael vasquez
Rafael Vasquez
 
Absolute Loader
ksanthosh
 
Sbaw090630
Atsushi Tadokoro
 
Ngon ngu lap trinh
Nguyễn Đức Trung
 
Taller de string(java)
Řỉgö VẻGầ
 
(Meta 4) ejemplo calcular la mitad de un numero dev c++
Eli Diaz
 
All set1
Sagar Yeole
 
المحاضره 6 & 7 c#
nermeenelhamy1
 
Metodos Numericos(Segundo Taller De Aplicadas)
guest1bb7f49
 
Bt c cpp_0021
Hồ Lợi
 
Programs
Murali Kummitha
 
Simulacion - Algoritmo congruencial cuadratico
José Antonio Sandoval Acosta
 
Programming in C
Vineet Kumar Saini
 
Luis cuñas programacion
luisitofranklin
 
Program to remove Left factoring
Shraddha Patel
 
Как помочь и как помешать компилятору. Андрей Олейников ➠ CoreHard Autumn 2019
corehard_by
 
An introduction to functional programming with Go [redux]
Eleanor McHugh
 
openFrameworks 動きを生みだす様々なアルゴリズム - 多摩美メディアアートII
Atsushi Tadokoro
 

Viewers also liked (9)

DOCX
Which is not a step in the problem
kasguest
 
PPT
BrainFingerprintingpresentation
KITE www.kitecolleges.com
 
PPT
DISTRIBUTED INTERACTIVE VIRTUAL ENVIRONMENT
KITE www.kitecolleges.com
 
Which is not a step in the problem
kasguest
 
BrainFingerprintingpresentation
KITE www.kitecolleges.com
 
DISTRIBUTED INTERACTIVE VIRTUAL ENVIRONMENT
KITE www.kitecolleges.com
 
Ad

More from KITE www.kitecolleges.com (20)

Ad

Recently uploaded (20)

PDF
مواقع للذاكرة والتركيز مناسب لحصص الاشغال.pdf
anwaarabusafa
 
PPTX
parenting islam ( tarbiyyah anak dalam islam ).pptx
Kua Nuha
 
PDF
peta-ithink-kosong_compress.pdf terbaru sekolah
SIVAKAMIAPRAMASUNDRA
 
PDF
مقياس هيرمان انماط التفكير حسب مقياس هيرمان
balean gili
 
PPTX
Irodori japan foundation Pemula Bab 10.pptx
Nursalam63
 
PPTX
bagi pemula menggunmakan operasi power point
shaqilanauvalynalynr
 
PPTX
fiqh thaharoh kajian umum selasa malam.pptx
robytyo
 
PPTX
Program bicara Kecemerlangan tahun 6.pptx
g48401826
 
PPTX
PRONUNCIATION DRILL in English subject.pptx
Nerissa Poldo
 
PPTX
tambah tolak darab dan bahagi tahun 3.pptx
Noraim Ismail
 
PDF
ئاسایش و تەندروستی دەروونی قوتابیان.pdf تێروانینەک
ASOYGASHlak
 
PDF
Наказ_Заходи самооцінювання 2024_2025.pdf
AleksSaf
 
PDF
Handbook of Critical Care Medicine 1st Edition Senaka Rajapakse
bujljivk7348
 
PPTX
bahan ajar materi latihan PPT STATISTIKA.pptx
lutfi882098
 
PPTX
Saint Bridget of Sweden, patroness of Europe 1303 - 1373 (Russian).pptx
Martin M Flynn
 
PPTX
MODUL PEMB CANVA-ULFA RHOMAISA BASAR-2281130172-A4 FIX.pdf.pptx
UlfaRhomaisaBasar
 
PDF
peta-ithink-kosong_compress.pdf terbaru 1
SIVAKAMIAPRAMASUNDRA
 
PDF
Exercise 1(a) Hindi medium Class 6 Math Uttar Pradesh Board Exercise 1(b)
Mera School Online Academy
 
PPTX
Conocer las características del animal, pero todo en quechua.
LeydeVictoriaDazaHil
 
PPTX
bahan ajar PPT Pembahasan soal Fungsi kuadrat.pptx
lutfi882098
 
مواقع للذاكرة والتركيز مناسب لحصص الاشغال.pdf
anwaarabusafa
 
parenting islam ( tarbiyyah anak dalam islam ).pptx
Kua Nuha
 
peta-ithink-kosong_compress.pdf terbaru sekolah
SIVAKAMIAPRAMASUNDRA
 
مقياس هيرمان انماط التفكير حسب مقياس هيرمان
balean gili
 
Irodori japan foundation Pemula Bab 10.pptx
Nursalam63
 
bagi pemula menggunmakan operasi power point
shaqilanauvalynalynr
 
fiqh thaharoh kajian umum selasa malam.pptx
robytyo
 
Program bicara Kecemerlangan tahun 6.pptx
g48401826
 
PRONUNCIATION DRILL in English subject.pptx
Nerissa Poldo
 
tambah tolak darab dan bahagi tahun 3.pptx
Noraim Ismail
 
ئاسایش و تەندروستی دەروونی قوتابیان.pdf تێروانینەک
ASOYGASHlak
 
Наказ_Заходи самооцінювання 2024_2025.pdf
AleksSaf
 
Handbook of Critical Care Medicine 1st Edition Senaka Rajapakse
bujljivk7348
 
bahan ajar materi latihan PPT STATISTIKA.pptx
lutfi882098
 
Saint Bridget of Sweden, patroness of Europe 1303 - 1373 (Russian).pptx
Martin M Flynn
 
MODUL PEMB CANVA-ULFA RHOMAISA BASAR-2281130172-A4 FIX.pdf.pptx
UlfaRhomaisaBasar
 
peta-ithink-kosong_compress.pdf terbaru 1
SIVAKAMIAPRAMASUNDRA
 
Exercise 1(a) Hindi medium Class 6 Math Uttar Pradesh Board Exercise 1(b)
Mera School Online Academy
 
Conocer las características del animal, pero todo en quechua.
LeydeVictoriaDazaHil
 
bahan ajar PPT Pembahasan soal Fungsi kuadrat.pptx
lutfi882098
 

week-24x

  • 1. /* Write C program to implement Trapezoidal method.*/ #include<stdio.h> #include<conio.h> #include<math.h> 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);
  • 2. h=(xn-x0)/n; if(exp[0]=='l'&& exp[1]=='o'&& exp[2]=='g') { l=strlen(exp); for(i=0;i<l-3; i++) arr[0]=exp[i+3]; arr[i]='0'; infix_postfix(arr); e1=eval(postfix,x0); e2=eval(postfix,xn); s=log(e1)+log(e2); for (i=1;i<=n-1;i++) s+=2*log(eval(postfix,x0+i*h)); } else { infix_postfix(exp); s=eval(postfix,x0)+eval(postfix,xn); for (i=1;i<=n-1;i++) s+=2*eval(postfix,x0+i*h); } printf("Value of the integral is %6.3fn",(h/2)*s); return(0); }
  • 3. /*Inserting the operands in a stack. */ void push(float item) { if(top==99) { printf("ntThe 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("ntThe stack is emptynt"); getch();
  • 4. } item=stack[top]; top--; return (item); } void push1(char item) { if(top1==79) { printf("ntThe stack is full"); getch(); exit(0); } else { top1++; stack1[top1]=item; } return; } /*Removing the operands from a stack. */ char pop1() { char item;
  • 5. if(top1==-1) { printf("ntThe stack1 is emptynt"); 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<79;i++) postfix[i]=' '; push1('?'); i=0; token=infix[i]; while(token!='0') { if(isalnum(token))
  • 6. { postfix[j]=token; j++; } else if(token=='(') { push1('('); } else if(token==')') { while(stack1[top1]!='(') { ch=pop1(); postfix[j]=ch; j++; } ch=pop1(); } else { while(ISPriority(stack1[top1])>=ICP(token)) { ch=pop1();
  • 7. /*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);
  • 8. 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); case '+':return (7); case '-':return (7); case '*':return (8); case '/':return (8); case '0':return (0); default: printf("Invalid expression"); break;
  • 9. } 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<l) { if(p[i]=='x') push(x1); else if(isdigit(p[i])) { k=p[i]-'0'; push(k); } else { t1=pop(); t2=pop(); switch(p[i])
  • 10. { case '+':k=t2+t1; break; case '-':k=t2-t1; break; case '*':k=t2*t1; break; case '/':k=t2/t1; break; default: printf("ntInvalid expression"); break; } push(k); } i++; } if(top>0) { printf("You have entered the operands more than the operators"); exit(0); } else { r=pop();
  • 11. return (r); } return 0; } /* Write C program to implement Simpson method. */ #include<stdio.h> #include<conio.h> #include<math.h> 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()
  • 12. { float x0, xn, h, s,e1,e2, e3; char exp[80], arr[80]; int i,n,l=0; clrscr(); printf("nEnter an expression: "); gets(exp); puts("Enter x0, xn and number of sub-intervals: "); 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<l-3; i++) arr[0]=exp[i+3]; arr[i]='0'; infix_postfix(arr); e1=eval(postfix,x0); e2=eval(postfix,xn); e3=4*eval(postfix, x0+h); s=log(e1)+log(e2)+log(e3); for (i=3;i<=n-1;i+=2) s+=4*eval(postfix,x0+i*h)+2*eval(postfix, x0+(i-1)*h); }
  • 13. else { infix_postfix(exp); s=eval(postfix,x0)+eval(postfix,xn)+4*eval(postfix, x0+h); for (i=3;i<=n-1;i+=2) s+=4*eval(postfix,x0+i*h)+2*eval(postfix, x0+(i-1)*h); } printf("The value of integral is %6.3fn",(h/3)*s); return(0); } /*Inserting the operands in a stack. */ void push(float item) { if(top==99) { printf("ntThe stack is full"); getch(); exit(0); } else { top++; stack[top]=item; }
  • 14. return; } /*Removing the operands from a stack. */ float pop() { float item; if(top==-1) { printf("ntThe stack is emptynt"); getch(); } item=stack[top]; top--; return (item); } void push1(char item) { if(top1==79) { printf("ntThe stack is full"); getch(); exit(0); } else
  • 15. { top1++; stack1[top1]=item; } return; } /*Removing the operands from a stack. */ char pop1() { char item; if(top1==-1) { printf("ntThe stack1 is emptynt"); 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;
  • 16. char token; for(i=0;i<79;i++) postfix[i]=' '; push1('?'); i=0; token=infix[i]; while(token!='0') { if(isalnum(token)) { postfix[j]=token; j++; } else if(token=='(') { push1('('); } else if(token==')') { while(stack1[top1]!='(') { ch=pop1(); postfix[j]=ch; j++;
  • 17. } ch=pop1(); } else { while(ISPriority(stack1[top1])>=ICP(token)) { ch=pop1(); postfix[j]=ch; j++; } push1(token); } i++; token=infix[i]; } while(top1!=0) { ch=pop1(); postfix[j]=ch; j++; } postfix[j]='0'; }
  • 18. /*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);
  • 19. 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); while(i<l) { if(p[i]=='x') push(x1); else if(isdigit(p[i])) { k=p[i]-'0';
  • 20. push(k); } else { t1=pop(); t2=pop(); switch(p[i]) { case '+':k=t2+t1; break; case '-':k=t2-t1; break; case '*':k=t2*t1; break; case '/':k=t2/t1; break; default: printf("ntInvalid expression"); } push(k); } i++; } if(top>0) {
  • 21. printf("You have entered the operands more than the operators"); exit(0); } else { r=pop(); return (r); } return 0; }