# C++ > Algorithms Code Examples

## Simple Calculator

``` Simple Calculator #include"stdio.h" #include"conio.h" #include"dos.h" #include"stdlib.h" #include"string.h" void DISPNUM(char *); void main() { clrscr(); _setcursortype(0); gotoxy(30,19); textcolor(GREEN+BLINK); cprintf("SIMPLE CALCULATOR"); gotoxy(50,21); textcolor(BLUE+BLINK); cprintf("HELLO WORLD"); getch(); // clrscr(); int x=30,y=10; textcolor(WHITE); gotoxy(x,y); cprintf("7 8 9"); gotoxy(x,y+2); cprintf("4 5 6"); gotoxy(x,y+4); cprintf("1 2 3"); gotoxy(x,y+6); cprintf("0"); textcolor(RED); gotoxy(x+5,y+6); cprintf(". ="); textcolor(GREEN); x=x+15; gotoxy(x,y); cprintf("/"); gotoxy(x,y+2); cprintf("*"); gotoxy(x,y+4); cprintf("-"); gotoxy(x,y+6); cprintf("+"); //Draw The For Calc// x=28;y=5; gotoxy(x,y); textcolor(WHITE); // Ú & ¿ // cprintf("%c",218); gotoxy(28+20,y); cprintf("%c",191); // Ú & ¿ // //Horiz. Boundary for(x=29;x<=28+19;x++) { gotoxy(x,y); cprintf("%c",196); gotoxy(x,y+12); cprintf("%c",196); } //End of Horiz. Bound // Ù & À // cprintf("%c",217); x=28;y=y+12; gotoxy(x,y); cprintf("%c",192); //End of Ù & À // //Vertic. Bound. for(y=6;y<=16;y++) { gotoxy(x,y); cprintf("%c",179); gotoxy(x+20,y); cprintf("%c",179); } //End of Vertic Bou. y=6; for(x=30;x<=30+16;x++) { gotoxy(x,y); cprintf("%c",196); gotoxy(x,y+2); cprintf("%c",196); } gotoxy(30,y+1); cprintf("%c %c",179,179); gotoxy(30,y); cprintf("%c",218); gotoxy(30+16,y); cprintf("%c",191); gotoxy(30,y+2); cprintf("%c",192); gotoxy(30+16,y+2); cprintf("%c",217); //End of Vertic Bound. //OutPut at X=30,Y=8// char ch; char operand1[15]="",operand2[15]="",BLANK[15]=" "; char operator1,first='y'; long double num1=0,num2=0; int i=0,ERROR=0; //Digits int MAX=10; DISPNUM(0); do { ch=getch(); if(ch=='x1b') { for(int i=1000;i>=200;i=i-50) { sound(i); delay(100); } nosound(); break; } //Numeric// if((ch>='0')&&(ch<='9')) { if(i<MAX) { if(first=='y') { operand1[i]=ch; DISPNUM(operand1); i++; } else { operand2[i]=ch; DISPNUM(operand2); i++; } } else //More than 8 digit { ERROR=1; } } else if(ch=='.') { if(first=='y') { if(strchr(operand1,'.')==NULL) { operand1[i]=ch; i++; } DISPNUM(operand1); } else { if(strchr(operand2,'.')==NULL) { operand2[i]=ch; i++; } DISPNUM(operand2); } } //Non Numeric else if (ch=='*') { operator1='*'; first='n'; i=0; } else if (ch=='/') { operator1='/'; first='n'; i=0; } else if (ch=='+') { operator1='+'; first='n'; i=0; } else if (ch=='-') { operator1='-'; first='n'; i=0; } else if ((ch=='=')||(ch==' ')) { //Store in Floating if(strcmpi(operand1,BLANK)!=0) { num1=_atold(operand1); } if(strcmpi(operand2,BLANK)!=0) { num2=_atold(operand2); } //Now Calculate switch (operator1) { case '+': num1=num1+num2; break; case '-': num1=num1-num2; break; case '*': num1=num1*num2; break; case '/': num1=num1/num2; break; } //ltoa(num1,operand1,10); gcvt(num1,12,operand1); DISPNUM(operand1); i=0; first='y'; strcpy(operand1,BLANK); strcpy(operand2,BLANK); } else //Invalid Choice { ERROR=1; } //Beep On ERROR else ------ // if (ERROR==0) { sound(920); } else { sound(100); ERROR=0; } delay(250); nosound(); gotoxy(1,1); cprintf("%d",i); }while(1); // clrscr(); gotoxy(30,19); textcolor(GREEN+BLINK); cprintf("SIMPLE CALCULATOR"); gotoxy(50,21); textcolor(BLUE+BLINK); cprintf("HELLO WORLD"); // getch(); } void DISPNUM(char *num) { textbackground(RED); gotoxy(31,7); cprintf(" "); gotoxy(31,7); cprintf("%s",num); } ```