/* Write C program to implement Trapezoidal method.*/#include<stdio.h>#include<conio.h>#include<math.h>char postfix[80];fl...
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_post...
/*Inserting the operands in a stack. */void push(float item){if(top==99){printf("ntThe stack is full");getch();exit(0);}el...
}item=stack[top];top--;return (item);}void push1(char item){if(top1==79){    printf("ntThe stack is full");    getch();   ...
if(top1==-1){printf("ntThe stack1 is emptynt");getch();}item=stack1[top1];top1--;return (item);}/*Converting an infix expr...
{postfix[j]=token;j++;}else if(token==(){push1(();}else if(token==)){while(stack1[top1]!=(){    ch=pop1();    postfix[j]=c...
/*Assigning the popped element into the postfix array. */    postfix[j]=ch;    j++;}push1(token);}i++;token=infix[i];}whil...
case +:return (7);case -:return (7);case *:return (8);case /:return (8);case ?:return (0);default: printf("Invalid express...
}return 0;}/*Calculating the result of expression, which is converted in postfix notation. */float eval(char p[], float x1...
{case +:k=t2+t1;break;case -:k=t2-t1;break;case *:k=t2*t1;break;case /:k=t2/t1;break;default: printf("ntInvalid expression...
return (r);}return 0;}/* Write C program to implement Simpson method. */#include<stdio.h>#include<conio.h>#include<math.h>...
{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("...
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+=...
return;}/*Removing the operands from a stack. */float pop(){    float item;    if(top==-1){printf("ntThe stack is emptynt"...
{    top1++;    stack1[top1]=item;}return;}/*Removing the operands from a stack. */char pop1(){char item;if(top1==-1){    ...
char token;for(i=0;i<79;i++)postfix[i]= ;push1(?);i=0;token=infix[i];while(token!=0){    if(isalnum(token))    {        po...
}    ch=pop1();    }else{    while(ISPriority(stack1[top1])>=ICP(token))    {    ch=pop1();    postfix[j]=ch;    j++;    }...
/*Determining the priority of elements that are placed inside the stack. */int ISPriority(char token){switch(token){    ca...
case ):return (9);    case +:return (7);    case -:return (7);    case *:return (8);    case /:return (8);    case 0:retur...
push(k);        }else{    t1=pop();    t2=pop();    switch(p[i])    {    case +:k=t2+t1;    break;    case -:k=t2-t1;    b...
printf("You have entered the operands more than the operators");    exit(0);}else{    r=pop();    return (r);}return 0;}
Upcoming SlideShare
Loading in...5
×

week-24x

590

Published on

Published in: Education
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
590
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
12
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Transcript of "week-24x"

  1. 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. 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. 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. 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. 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. 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. 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. 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. 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);elseif(isdigit(p[i])){k=p[i]-0;push(k);}else{t1=pop();t2=pop();switch(p[i])
  10. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 21. printf("You have entered the operands more than the operators"); exit(0);}else{ r=pop(); return (r);}return 0;}

×