Calculadora cientifica

Gemita18
08 de Abril del 2005
Wenas, tengo que hacer en c una calculadora cientifica y tengo que impedir que cuando el usuario introduzca una letra no lo pase a ascii el programa y aga la operacion como si de un numero se tratase.
Por favor contestar con la mayor brevedad. un saludo

Noel Solw
08 de Abril del 2005
No entendi bien tu pregunta, pero te envio un programa que imita una calculadora.
Espero te sea util.

// program k8b7 - page 159
// second calculator.
// written in Borland CPP ver 3.1

#include <conio.h>
#include <iostream.h>
#include <iomanip.h>
#include <string.h>

double Convert(char *str)
{
int i = 0;
long num = 0,div = 1;
while(str[i] && str[i] != '.')
{
num = 10*num + str[i] - '0';
i++;
}
if(str[i])
{
i++;
while(str[i])
{
num = 10*num + str[i] - '0';
div *= 10.0;
i++;
}
}
return double(num)/div;
} // CONVERT

void Process()
{
#define N 4
char sep[] = " =";
char *str[N] = {"1234.567 + 89 = ", // estos valores podrian ser
"320.23 - 470.55 = ", // recibidos desde el teclado
"415.25 * 4 = ",
"425 / 4.10 = "};
for(int i = 0;i < 4;i++)
{
cout << " calculate ----> " << setw(20) << str[i];
double a = Convert(strtok(str[i],sep));
char *op = strtok(NULL,sep);
double b = Convert(strtok(NULL,sep)),
result;
switch(op[0])
{
case '+' : result = a + b;
break;
case '-' : result = a - b;
break;
case '*' : result = a * b;
break;
case '/' : result = a / b;
break;
}
cout << result << endl << endl;
} // FOR I
} // PROCESS

void main()
{
clrscr();
cout << "second calculator.nn";
Process();
cout << "end of program - good bye ! ! !n";
getch();
} // MAIN