c-program to implement a simple calculator
Post on 13-Dec-2014
74 Views
Preview:
DESCRIPTION
TRANSCRIPT
C-Program to implement a Simple Calculator
Developed by: Sendash Pangambam
For suggestions and queries be free to contact me at sendashpangambam@live.com
This program can be used as a simple calculator.
Just type the arithmetic expression you want to compute in the following format:
<Operand_1><Operator><Operand_2>
e.g. 1900+20145
Operators:
ADDITION + e.g. 1234+4321
SUBTRACTION - e.g. 9712-3421
MULTIPLICATION * e.g. 5621*245
DIVISION / e.g. 915/56
EXPONENTIAL ^ e.g. 1231^64
***Terms and conditions:
This program is written for calculations involving integers only.
Inconvenience is regretted.
For suggestions and queries be free to contact me at sendashpangambam@live.com
HOW MY PROGRAM WORKS?
1. A string of the format given above is supplied as input, e.g. 21900*914990
2. The two integers on the both sides of the operator, „*‟ in this case, are
extracted from the input string.
3. According to the operator in the input string, calculation is done.
VARIABLES USED IN THIS PROGRAM:
1. ch – To read any character from the keyboard.
2. exp – Input expression.
3. op – Operator.
4. fop, sop – 1st and 2nd operand.
5. tfop, tsop – Temporary 1st and 2nd operand, used during division.
6. ddif – Difference in digits of extracted integers and length of input string.
7. And some other variables that you have already known are also used.
For suggestions and queries be free to contact me at sendashpangambam@live.com
“LET‟S GO TO THE PROGRAM”
For suggestions and queries be free to contact me at sendashpangambam@live.com
/*Simple Calculator*/ #include<stdio.h> #include<conio.h> #include<math.h> #include<stdlib.h> #include<string.h> long int appzero(long int n,int d) /*Function to append zeroes to the right of a number*/ { int i; for(i=0;i<d;i++) n=n*10; return(n); } int ndgts(long int n) /*Function to count the number of digits in a given integer*/
For suggestions and queries be free to contact me at sendashpangambam@live.com
{ int i; for(i=1;n!=0;i++) n=n/10; return(i-1); } long int reverse(long int n) /*Function to find reverse of an integer*/ { long int rev=0; while(n>0) { rev=rev*10+(n%10); n=n/10; } return(rev); }
For suggestions and queries be free to contact me at sendashpangambam@live.com
void main() { char ch; clrscr(); /*SOME INSTRUCTION ABOUT THIS PROGRAM*/ printf("READ ME:\n\n\tThis program can be used as a simple calculator.\n"); printf("\n\tJust type the arithmetic expression you want to compute. \n \t
Syntax for input expression:\n \t\t\t\t < Operand_1 >< Operator >< Operand_2 >\n\t\t\t\t eg. 1900+20145");
printf("\nOperators:\n\tADDITION \t+\teg. 1234+4321 \n\tSUBTRACTION \t-\teg. 9712-3421 \n\tMULTIPLICATION \t*\teg. 5621*245 \n\tDIVISION \t/\teg. 915/56 \n\tEXPONENTIAL \t^\teg. 1231^64\n\n");
printf("=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+= +=+=+=+=+=+=+=+="); printf("\n\n***Terms and conditions:\n\t\tThis program is written for
calculations involving integers.\n\t\tDecimal calculations will be updated in the next versions.\n\t\tInconvinience is regretted.\n\n");
printf("=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=
For suggestions and queries be free to contact me at sendashpangambam@live.com
+=+=+=+=+=+=+=+=\n"); getch(); clrscr(); printf("DO YOU WISH TO CONTINUE ? (Y/N) "); ch=getch(); if(ch=='N'||ch=='n') { clrscr(); printf("PRESS ANY KEY TO EXIT "); getch(); exit(1); } clrscr(); printf("Let's try my simple calculator program"); getch(); while(1) { char *exp,op;
For suggestions and queries be free to contact me at sendashpangambam@live.com
long int fop,sop; double tfop,tsop; int ddif=0; clrscr(); printf("Enter the expression: "); gets(exp); fop=atol(exp); strrev(exp); sop=reverse(atol(exp)); ddif=strlen(exp) - ndgts(fop) - ndgts(sop); sop=appzero(sop,ddif-1); strrev(exp); if(exp[ndgts(fop)]=='+') { clrscr(); printf("\n%s = %ld",exp,fop+sop); } if(exp[ndgts(fop)]=='-')
For suggestions and queries be free to contact me at sendashpangambam@live.com
{ clrscr(); printf("\n%s = %ld",exp,fop-sop); } if(exp[ndgts(fop)]=='*') { clrscr(); printf("\n%s = %ld",exp,fop*sop); } if(exp[ndgts(fop)]=='/') { clrscr(); tfop=fop; tsop=sop; printf("\n%s = %lf",exp,tfop/tsop); } if(exp[ndgts(fop)]=='^') {
For suggestions and queries be free to contact me at sendashpangambam@live.com
clrscr(); tfop=fop; tsop=sop; printf("\n%s = %lf",exp,pow(tfop,tsop)); } getch(); clrscr();
printf("Do you have another calculation to do? (Y/N)\n\n*** For more help type 'H' \n\n\t\t\t");
ch=getch(); if(ch=='n'||ch=='N') { clrscr(); printf("\tThanks for your co-operation\n\tPress any key to exit"); getch(); exit(1); }
For suggestions and queries be free to contact me at sendashpangambam@live.com
if(ch=='h'||ch=='H') main(); } }
TRY THIS PROGRAM AND CHECK WHETHER IT WORKS OR NOT.
top related