Autor
|
Tema: Calculadora que acepta 100 dígitos. hecha en lenguaje C. (Leído 3,420 veces)
|
NOB2014
Desconectado
Mensajes: 366
|
Hola. Estoy realmente trabado con esto, hace más de 2 días que le doy vueltas (tire unas 30 hojas oficio) al asunto y nada, como estoy a punto de abandonarlo por unos días me dije seguramente en ese foro debe haber mentes iluminadas que me puedan tirar una soga. - Para comenzar, les dejo unos posibles ingresos que se pueden dar, la pregunta es: ¿alinearían las 2 cifras con respecto al punto o lo harían directamente? - Se trata de la opción: Sumar123.45 ==> 123.45 6.5 6.5 12.34 ==> 12.34 1234.56 1234.56 1234.56 => 1234.56 123 123 Si desean no poner código no importa, solo necesitaría un poco de pseudocódigo para aclarar un poco el panorama.- Saludos.
|
|
|
En línea
|
abraza las cosas y personas malas como si fueran tu mas preciada joya,Son tus mas grandes maestros de paciencia sabiduría y amor y cuando lo abrazas dejan de causar dolor.-
|
|
|
AlbertoBSD
Programador y
Moderador Global
Desconectado
Mensajes: 3.705
🏴 Libertad!!!!!
|
Si lo queuieres es que tengan la misma cantidad de digitos despues del punto puedes usar los formato de cadena. #include<stdio.h> int main() { double a = 123.45; double b = 6.5; }
Salida: 123.450000 6.500000 123.45 6.50 123.4500 6.5000
Si lo que quieres es alinearlos a la derecha y la misma cantidad de decimales necesitas manejar los números a cadenas de texto manualmente. Podrías Almacenar la cadena del resultado en una variable sin alinear y despues moverla para que este alineada. Saludos.
|
|
|
En línea
|
|
|
|
NOB2014
Desconectado
Mensajes: 366
|
Hola, Alberto. - Mil disculpas, me olvide lo principal, te dejo lo que tengo de la función para que veas que lo estoy haciendo todo con el tipo char. - void alinear( char operandoUno[], char operandoDos[] ){ char resultado[MAX_COL], *pUno = NULL, *pDos = NULL; int puntoUno=-1, puntoDos=-1; size_t i = 0, j; memset( resultado , 0, MAX_COL -1 ); if((pUno =strchr(operandoUno , '.'))) {puntoUno = pUno -operandoUno ;} if((pDos =strchr(operandoDos , '.'))) {puntoDos = pDos -operandoDos ;} if( puntoUno != puntoDos ) { j = puntoDos - 1; if( puntoUno > puntoDos ){ if( puntoDos >= 0 ){ resultado[puntoUno] = '.'; } while( 1 ){ resultado[j] = operandoDos[i]; } } } else{ printf("\n puntoDos %u > puntoUno %u", puntoDos , puntoUno ); } } }
Saludos.
|
|
|
En línea
|
abraza las cosas y personas malas como si fueran tu mas preciada joya,Son tus mas grandes maestros de paciencia sabiduría y amor y cuando lo abrazas dejan de causar dolor.-
|
|
|
AlbertoBSD
Programador y
Moderador Global
Desconectado
Mensajes: 3.705
🏴 Libertad!!!!!
|
Aqui dejo un ejemplo para alinear cuando ya los tienes en cadena alineados a la izquiera, te los alinea a la derecha. #include<stdio.h> #include<stdlib.h> #include<string.h> int main() { int len; //Longitud int desplazamiento; // char *temp,*resultado; double a = 123.45; double b = 6.5; snprintf(temp ,20,"%.2f",a ); // Guardamos 123.45 en la cadena alineado a la izquierda len = strlen(temp ); // almacenanamos la longitud de temp desplazamiento = 30 - len; memset(resultado ,' ',30); // Generamos la variable resultado de forma espaciada para linear la variable temp memcpy(resultado +desplazamiento ,temp ,len ); // Copiamo temp a resultado pero desplazado; para que este alineado printf("%.2f\n",a ); // Mostramos el resultado sin alinear // Repetimos ahora con b memset(temp ,0,20); // Limpiamos el valor de temp memset(resultado ,' ',30); // Limpiamos el valor de resultado desplazamiento = 30 - len; memcpy(resultado +desplazamiento ,temp ,len ); }
Salida: La primera linea es antes de estar alineado y la segunda linea es ya alineado. Saludos
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
calculadora de 30 digitos
« 1 2 »
Programación C/C++
|
peterfly
|
19
|
15,105
|
2 Julio 2011, 01:22 am
por Nork
|
|
|
Calculadora en Lenguaje Ensamblador - Linux x86 & NASM
ASM
|
nicoobe
|
5
|
23,486
|
27 Febrero 2012, 02:33 am
por nicoobe
|
|
|
calculadora en lenguaje ensamblador ¨violacion de segmento¨
ASM
|
larapam
|
2
|
6,420
|
12 Mayo 2012, 18:58 pm
por CasiqueCasimiro
|
|
|
Calculadora hecha en C
« 1 2 »
Programación C/C++
|
Caster
|
14
|
9,716
|
9 Noviembre 2012, 23:34 pm
por barnix456
|
|
|
Calculadora Hecha Por Mi :D Hechen un Vistazo!
Scripting
|
LeoJ24
|
2
|
2,696
|
15 Enero 2013, 03:23 am
por zonahurbana
|
|