Calculadora cientifica
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
Por favor contestar con la mayor brevedad. un saludo
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
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
