Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Dev C++ Ejercicio!

Estas en el tema de Dev C++ Ejercicio! en el foro de C/C++ en Foros del Web. esto es lo q me andan pidiendo! Realice un program en lenguaje C(ANSI) simule una calculadora donde deberá implementar las operaciones básicas con enteros: suma, ...
  #1 (permalink)  
Antiguo 23/11/2011, 19:39
 
Fecha de Ingreso: noviembre-2011
Mensajes: 3
Antigüedad: 12 años, 5 meses
Puntos: 0
Exclamación Dev C++ Ejercicio!

esto es lo q me andan pidiendo!

Realice un program en lenguaje C(ANSI) simule una calculadora donde deberá implementar las operaciones básicas con enteros: suma, resta, multiplicación y división, con y sin signo. Las operaciones deben de poder encadenarse, es decir, el resultado de una operación ser usado como operando de la siguiente. Debe existir una tecla que devuelve el resultado de la última operación introducida.

Y bueno asi es como llevo el programa pero no se como hacer para crear las sentencias de que el resultado lo pueda seguir usando en las siguientes operaciones alguien que me pueda ayudar a terminar este ejercicio se lo agradeceria ya que me ando iniciando en este tipo de programacion gracias :D

#include <cstdlib>
#include <iostream>

using namespace std;

int main(int argc, char *argv[])
{
int n1, n2, resul=1, salir=5;
int opcion;
do{
printf("\n\t|=====Calculadora UFT=====\t\t\t");
printf("\n\t|= 1: Suma =\t\t\t");
printf("\n\t|= 2: Resta =\t\t\t");
printf("\n\t|= 3: Multiplicacion =\t\t\t");
printf("\n\t|= 4: Division =\t\t\t");
printf("\n\t|= 5: Volver =\t\t\t");
printf("\n\t|=========================…
printf("\n\tElija una opcion: ");
scanf("%d",&opcion);
switch(opcion){
case 1:printf("==Suma==\n");
printf("Ingrese Numero 1\n");
scanf("%d", &n1);
printf("Ingrese Numero 2\n");
scanf("%d", &n2);
resul= n1+n2;
printf("\n La suma de %d + %d es igual a %d \n", n1, n2, resul);
break;

case 2: printf("==Resta==\n");
printf("Ingrese Numero 1\n");
scanf("%d", &n1);
printf("Ingrese Numero 2\n");
scanf("%d", &n2);
resul= n1-n2;
printf("\n La resta de %d - %d es igual a %d \n", n1 ,n2 , resul);
break;

case 3: printf("==Multiplicacion==");
printf("Ingrese Numero 1\n");
scanf("%d", &n1);
printf("Ingrese Numero 2\n");
scanf("%d", &n2);
resul= n1 * n2;
printf("\n La Multiplicacion de %d * %d es igual a %d \n", n1 ,n2 ,resul);
break;

case 4: printf("==Division==");
printf("Ingrese Numero 1\n");
scanf("%d", &n1);
printf("Ingrese Numero 2\n");
scanf("%d", &n2);
resul= n1/n2;
printf("\n La division de %d / %d es igual a %d \n", n1 ,n2 ,resul);



}

system("pause");
system("cls");
}while(opcion!=5);
return 0;}
  #2 (permalink)  
Antiguo 23/11/2011, 20:46
 
Fecha de Ingreso: noviembre-2011
Mensajes: 3
Antigüedad: 12 años, 5 meses
Puntos: 0
Respuesta: Dev C++ Ejercicio!

alguna ayuda :(? es urgente
  #3 (permalink)  
Antiguo 23/11/2011, 23:55
Avatar de baker1562  
Fecha de Ingreso: marzo-2011
Ubicación: Puntarenas
Mensajes: 261
Antigüedad: 13 años, 1 mes
Puntos: 9
Respuesta: Dev C++ Ejercicio!

guarda la ultima operacion en una variable temporal, cada ves que hagas una nueva operacion esta variable se actualizara, asi le puedes hacer llamada cuando quieras
  #4 (permalink)  
Antiguo 24/11/2011, 01:07
 
Fecha de Ingreso: septiembre-2011
Mensajes: 16
Antigüedad: 12 años, 6 meses
Puntos: 7
Respuesta: Dev C++ Ejercicio!

Aquí un sencillo código realizado en DevC++

Código C:
Ver original
  1. #include <stdlib.h>
  2. #include <stdio.h>
  3.  
  4. int main(int argc, char *argv[])
  5. {
  6. int valor, n1, n2;
  7. char ultimo_ingreso, operador, opcion;
  8.  
  9. ultimo_ingreso='C';
  10. n1=0;
  11. valor=0;
  12. do{
  13. system("cls");
  14. printf("\n\t|======== Pantalla =======");
  15. printf("\n\t|%d", valor);
  16. printf("\n\t|=========================");
  17. printf("\n\t|7|  |8|  |9|  |+|");
  18. printf("\n\t|4|  |5|  |6|  |-|");
  19. printf("\n\t|1|  |2|  |3|  |*|");
  20. printf("\n\t|1|  |2|  |3|  |/|");
  21. printf("\n\t|=|  |x|:salir");
  22. printf("\n\t|=========================");
  23.  
  24. //lectura
  25. if (ultimo_ingreso == 'C'){
  26.    printf("\n\t| inserte un valor: ");
  27.    scanf("%d", &valor);
  28. }
  29. if (ultimo_ingreso == 'N' || ultimo_ingreso == 'M'){
  30.    printf("\n\t| inserte un operador: ");
  31.    scanf("%c", &opcion);
  32. }
  33. if (ultimo_ingreso == 'P'){
  34.    printf("\n\t| inserte un valor: ");
  35.    scanf("%d", &valor);
  36. }
  37.  
  38. //cálculos
  39. if (ultimo_ingreso == 'C'){
  40.    n1=valor;
  41.    ultimo_ingreso='N';
  42. }
  43.  
  44. else
  45.  
  46. if (ultimo_ingreso == 'N'){
  47.    if (opcion == '+' || opcion == '-' || opcion == '*' || opcion == '/'){
  48.       operador = opcion;
  49.       ultimo_ingreso='P';
  50.    }
  51.    if (opcion == 'x' || opcion == 'X')
  52.       return 0; //finalizar
  53. }
  54.  
  55. else
  56.  
  57. if (ultimo_ingreso == 'P'){
  58.    n2=valor;
  59.    ultimo_ingreso='M';
  60. }
  61.  
  62. else
  63.  
  64. if (ultimo_ingreso == 'M'){
  65.    if (opcion == '='){
  66.       if (operador == '+')
  67.          n1 = n1+n2;
  68.       if (operador == '-')
  69.          n1 = n1-n2;
  70.       if (operador == '*')
  71.          n1 = n1*n2;
  72.       if (operador == '/')
  73.          n1 = n1/n2;
  74.       valor = n1;
  75.       ultimo_ingreso = 'N';
  76.    }
  77.    
  78.    if (opcion == '+' || opcion == '-' || opcion == '*' || opcion == '/'){
  79.       operador = opcion;
  80.       ultimo_ingreso='P';
  81.    }
  82.    if (opcion == 'x' || opcion == 'X')
  83.       return 0; //finalizar
  84. }
  85.  
  86. }while(1); //ciclo infinito. Salir con el operador 'X'
  87. return 0;
  88. }

El último valor u operador ingresado es manejado mediante la variable 'ultimo_ingreso', que puede contener:
'C' : iniciando
'N' : primer valor numérico
'P' : operador
'M' : siguiente valor numérico

Puedes probarlo ingresando lo siguiente (como ejemplo):
8 <enter>
* <enter>
4 <enter>
= <enter>
+ <enter>
2 <enter>
= <enter>
x <enter> (para salir)

Nota: Los resultados se van mostrando en la parte superior de la pantalla, simulando una calculadora.
Saludos...
  #5 (permalink)  
Antiguo 24/11/2011, 08:23
 
Fecha de Ingreso: noviembre-2011
Mensajes: 3
Antigüedad: 12 años, 5 meses
Puntos: 0
Respuesta: Dev C++ Ejercicio!

vladimirgude

EXCELENTISIMO tu calculadora me has salvado la vida amigo, pero solo una cuestion mas...
okey tiene todos los botones los comandos que necesito pero una ultima cosa pero no hay como mostrar el resultado anterior y siempre se hac constante el mismo resultado...

intente poner un

If(opcion== 'o' || opcion == 'O' para que se borrara y comenzara de cero pero se mecierra el programa

y lo otro es q no me muesta el resultado anterior

Última edición por pancho741; 24/11/2011 a las 09:36
  #6 (permalink)  
Antiguo 24/11/2011, 14:22
 
Fecha de Ingreso: septiembre-2011
Mensajes: 16
Antigüedad: 12 años, 6 meses
Puntos: 7
Respuesta: Dev C++ Ejercicio!

No veo el error que dices.
Recuerda que tienes que pulsar el caracter '=' despues de una operación.
Le agregué la opción de inicializar o borrar, con el operador o tecla 'C'. Puedes ingresar la tecla 'C', o '=' (para el resultado), o 'X' (para salir), cuando te solicite que insertes un operador.

Código C:
Ver original
  1. #include <stdlib.h>
  2. #include <stdio.h>
  3.  
  4. int main(int argc, char *argv[])
  5. {
  6. int valor, n1, n2;
  7. char ultimo_ingreso, operador, opcion;
  8.  
  9. ultimo_ingreso='C';
  10. n1=0;
  11. valor=0;
  12. do{
  13. system("cls");
  14. printf("\n\t|======== Pantalla =======");
  15. printf("\n\t|%d", valor);
  16. printf("\n\t|=========================");
  17. printf("\n\t|7|  |8|  |9|  |+|");
  18. printf("\n\t|4|  |5|  |6|  |-|");
  19. printf("\n\t|1|  |2|  |3|  |*|");
  20. printf("\n\t|1|  |2|  |3|  |/|");
  21. printf("\n\t|=|  |x|:salir");
  22. printf("\n\t|=========================");
  23.  
  24. //lectura
  25. if (ultimo_ingreso == 'C'){
  26.    printf("\n\t| inserte un valor: ");
  27.    scanf("%d", &valor);
  28. }
  29. if (ultimo_ingreso == 'N' || ultimo_ingreso == 'M'){
  30.    printf("\n\t| inserte un operador: ");
  31.    scanf("%c", &opcion);
  32. }
  33. if (ultimo_ingreso == 'P'){
  34.    printf("\n\t| inserte un valor: ");
  35.    scanf("%d", &valor);
  36. }
  37.  
  38. //cálculos
  39. if (ultimo_ingreso == 'C'){
  40.    n1=valor;
  41.    ultimo_ingreso='N';
  42. }
  43.  
  44. else
  45.  
  46. if (ultimo_ingreso == 'N'){
  47.    if (opcion == '+' || opcion == '-' || opcion == '*' || opcion == '/'){
  48.       operador = opcion;
  49.       ultimo_ingreso='P';
  50.    }
  51.    if (opcion == 'x' || opcion == 'X')
  52.       return 0; //finalizar
  53.    if (opcion == 'c' || opcion == 'C'){
  54.       n1=0;
  55.       n2=0;
  56.       valor=0;
  57.       ultimo_ingreso='C';
  58.    }
  59. }
  60.  
  61. else
  62.  
  63. if (ultimo_ingreso == 'P'){
  64.    n2=valor;
  65.    ultimo_ingreso='M';
  66. }
  67.  
  68. else
  69.  
  70. if (ultimo_ingreso == 'M'){
  71.    if (opcion == '='){
  72.       if (operador == '+')
  73.          n1 = n1+n2;
  74.       if (operador == '-')
  75.          n1 = n1-n2;
  76.       if (operador == '*')
  77.          n1 = n1*n2;
  78.       if (operador == '/')
  79.          n1 = n1/n2;
  80.       valor = n1;
  81.       ultimo_ingreso = 'N';
  82.    }
  83.    
  84.    if (opcion == '+' || opcion == '-' || opcion == '*' || opcion == '/'){
  85.       operador = opcion;
  86.       ultimo_ingreso='P';
  87.    }
  88.    if (opcion == 'x' || opcion == 'X')
  89.       return 0; //finalizar
  90.    if (opcion == 'c' || opcion == 'C'){
  91.       n1=0;
  92.       n2=0;
  93.       valor=0;
  94.       ultimo_ingreso='C';
  95.    }
  96. }
  97.  
  98. }while(1); //ciclo infinito. Salir con el operador 'X'
  99. return 0;
  100. }

Avísame cómo te fué. Saludos...

Etiquetas: dev, programa, cadenas
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:46.