Programación General => C/C++ => Mensaje iniciado por: alberto07 en Martes 13 de Octubre de 2009, 21:34
Título: Problema con Calculadora
Publicado por: alberto07 en Martes 13 de Octubre de 2009, 21:34
Necesito hacer una calculadora que haga las funciones basicas (suma, resta, mult, dvis), cadenas de caracteres.
Pusiera alguien decirme como convierto los caracteres a numeros y luego a caracteres? Creo que con el cogico ASCII, puede hacerce.
Título: Re: Problema con Calculadora
Publicado por: r0d en Martes 13 de Octubre de 2009, 21:56
Hola,
Tienes que hacerlo en C o en C++?
Título: Re: Problema con Calculadora
Publicado por: Dynyck en Miércoles 14 de Octubre de 2009, 01:07
En c, puedes utilizar:
Código: Text
int atoi ( const char * str );
Título: Re: Problema con Calculadora
Publicado por: alberto07 en Miércoles 14 de Octubre de 2009, 03:05
Es en C, me han hablado de atoi, pero hay otra de la cual no me acuerdo la cual me lo vuelve a char nuevamente, ya que la calculadora debe recibir dos cadenas y devolver el resultado como cadena tambien. Ademas en que libreria estos se encuentran. No tengo ni idea de como comenzar.
Título: Re: Problema con Calculadora
Publicado por: Dynyck en Miércoles 14 de Octubre de 2009, 03:52
Tal vez sea:
Código: Text
char * itoa ( int value, char * str, int base );
Título: Re: Problema con Calculadora
Publicado por: m0skit0 en Miércoles 14 de Octubre de 2009, 17:48
Ojo con itoa(), no es estándar... De todas formas, una función para pasar de entero a cadena de caracteres no es muy difícil de programar y te vendría bien para practicar.
Título: Re: Problema con Calculadora
Publicado por: alberto07 en Jueves 15 de Octubre de 2009, 03:35
Pretendo hacer la multiplicacion por sumas sucesivas, para eso necesito sumar el N1 las veces que sea N2, para eso necesito convertir un arreglo char en un solo numero entero.
Título: Re: Problema con Calculadora
Publicado por: Epa en Jueves 15 de Octubre de 2009, 18:00
Se suele decir que no tiene sentido reinventar la rueda, pero a veces esta bueno para practicar un poco, como ya dijeron arriba.
Aca te dejo dos pedacitos de codigos simples que hacen eso. Probablemente no sea la mejor forma ni la mas optima, si queres fijate como lo podes mejorar.
De cadena a numero
Código: C++
n =strlen(cadena);
for(int i =0, i < n, i++)
num += cadena[n-i]*pot(i);
//pot(i) tiene que devolver 10^i
De numero a cadena
Código: C++
i =0;
while(numero){
j = numero %10;
cadena[i]= j;
numero -= j;
numero /=10;
i++;
}
cadena[i]='n';
n =strlen(cadena);
for(i =0; i < n; i++)
cadena2[i]= cadena[n-i];
cadena2[n]= cadena[n];
Espero sirva
Cualquiera que quiera opinar y/o criticar bienvenido sea ^^