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

Eh aca una calculadora basica en C

Estas en el tema de Eh aca una calculadora basica en C en el foro de C/C++ en Foros del Web. Código PHP: /*Calculadora Básica también decimales*/ #include<stdio.h> #include<stdlib.h> #define VAR 3 float ope [VAR]; void suma ( void ); void resta ( void ); void multiplicacion ( void ); void divicion ( void ); void impreciones ...
  #1 (permalink)  
Antiguo 22/05/2012, 22:51
Avatar de thedaket  
Fecha de Ingreso: junio-2011
Mensajes: 55
Antigüedad: 12 años, 10 meses
Puntos: 3
Información Eh aca una calculadora basica en C

Código PHP:
/*Calculadora Básica también decimales*/
#include<stdio.h>
#include<stdlib.h>
#define VAR 3
float ope[VAR];
void suma(void);
void resta(void);
void multiplicacion(void);
void divicion(void);
void impreciones(void);
void resultado(void);
     
void suma(void) {
          
ope[0]=ope[1]+ope[2];
          return;
          }
     
void resta(void) {
          
ope[0]=ope[1]-ope[2];
          return;
          }
     
void multiplicacion(void) {
          
ope[0]=ope[1]*ope[2];
          return;
          }
     
void divicion(void) {
          
ope[0]=ope[1]/ope[2];
          return;
          }
     
void impreciones(void) {
          
printf("Cual es tu primer valor: ");
          
scanf("%f",&ope[1]);
          
printf("Cual es tu segundo valor: ");
          
scanf("%f",&ope[2]);
          return;
          }
     
void resultado(void) {
          
printf("Tu resultado es: %.2f\n\n\a",ope[0]);
          return;
          }
int main (void) {
     
system("color 2f");
     
int op;
     
printf(".:CALCULADORA BASICA:.\n\n");
     do {
     
printf("1=Suma\n2=Resta\n3=Multiplicacion\n4=Divicion\n5=Salir\n\nElige una opcion: ");
     
scanf("%d",&op);
     switch(
op) {
     case 
1:
     
impreciones();
     
suma();
     
resultado();
     break;
     case 
2:
     
impreciones();
     
resta();
     
resultado();
     break;
     case 
3:
     
impreciones();
     
multiplicacion();
     
resultado();
     break;
     case 
4:
     
impreciones();
     
divicion();
     
resultado();
     break;
     }
     if (
op<=0) {
              
printf("La opcion tiene que ser mayor igual a uno\n");
              }
     if (
op>5) {
               
printf("Opcion invalida intenta otra vez\n\n\a");
               }
     if (
op!=5) {
                
printf("/\\Nueva Operacion/\\\n\n");
                }
     } while(
op!=5);
     
printf("Hasta luego!!!\n\a");
     
system("pause");
     return 
0;

Espero les agrade Si alguien encuentra errores por favor haga llegarme los soy nuevo en esto así que espero puedan dar criticas positivas gracias

Última edición por thedaket; 23/05/2012 a las 06:03
  #2 (permalink)  
Antiguo 23/05/2012, 09:03
 
Fecha de Ingreso: diciembre-2011
Ubicación: CABA
Mensajes: 433
Antigüedad: 12 años, 4 meses
Puntos: 94
Respuesta: Eh aca una calculadora basica en C

Hola! errores no hay, pero algunos te criticarian por usar system() ya que no es una funcion portable...
Cosas para mejorar:
si a las funciones impreciones() y resultado(), los llamas en todos los case ¿no es mejor escribirlas una sola ves? (es como sacar un denominador comun :P)
El switch tiene un default donde se entra si la condicion no coincida con ninguno de los case, ahi podrias poner los printf de los if

Te dejo el codigo un poco mejorado:
Código C:
Ver original
  1. /*Calculadora Básica también decimales*/
  2. #include<stdio.h>
  3. #include<stdlib.h>
  4. #define VAR 3
  5. float ope[VAR];
  6. void suma(void);
  7. void resta(void);
  8. void multiplicacion(void);
  9. void divicion(void);
  10. void impreciones(void);
  11. void resultado(void);
  12.      void suma(void) {
  13.           ope[0]=ope[1]+ope[2];
  14.           return;
  15.           }
  16.      void resta(void) {
  17.           ope[0]=ope[1]-ope[2];
  18.           return;
  19.           }
  20.      void multiplicacion(void) {
  21.           ope[0]=ope[1]*ope[2];
  22.           return;
  23.           }
  24.      void divicion(void) {
  25.           ope[0]=ope[1]/ope[2];
  26.           return;
  27.           }
  28.      void impreciones(void) {
  29.           printf("Cual es tu primer valor: ");
  30.           scanf("%f",&ope[1]);
  31.           printf("Cual es tu segundo valor: ");
  32.           scanf("%f",&ope[2]);
  33.           return;
  34.           }
  35.      void resultado(void) {
  36.           printf("Tu resultado es: %.2f\n\n\a",ope[0]);
  37.           return;
  38.           }
  39. int main (void) {
  40.      system("color 2f");
  41.      int op;
  42.      int flag; /* este flag va indicar si se ingreso una opcion correcta */
  43.      do {
  44.      flag=1; /* suponemos q la opcion es correcta, flag toma el valor 1 */
  45.      printf(".:CALCULADORA BASICA:.\n\n");
  46.      impresiones();
  47.      printf("1=Suma\n2=Resta\n3=Multiplicacion\n4=Divicion\n5=Salir\n\nElige una opcion: ");
  48.      scanf("%d",&op);
  49.      switch(op) {
  50.      case 1:
  51.      suma();
  52.      break;
  53.      case 2:
  54.      resta();
  55.      break;
  56.      case 3:
  57.      multiplicacion();
  58.      break;
  59.      case 4:
  60.      divicion();
  61.      break;
  62.      case 5:
  63.          printf("FIN DEL PROGRAMA\n\n");
  64.          break;
  65.      default:
  66.          printf("Opcion no valida...\n");
  67.          flag=0; /* se ingreso una opcion incorrecta */
  68.          break;
  69.      }
  70.      if(flag==1) /* solo imprime el resultado si se ingreso una opcion valida */
  71.            resultado();
  72.      } while(op!=5);
  73.      printf("Hasta luego!!!\n\a");
  74.      system("pause");
  75.      return 0;
  76. }
Ojo! que haya mejorado tu codigo no significa que este mal el tuyo, de echo esta perfecto; solo queria mostrart como mejorarlo un poco

Otra cosa que podrias hacer es ingresar directamente los caracteres "+ - * /". Y poner eso en los case del switch, ejemplo:
Código C:
Ver original
  1. printf("Ingrese la operacion\n");
  2. scanf("%c",&op);
  3. switch(op) {
  4.      case '+':
  5.           ..........
  6.           break;
  7.      case '-':
  8.           .........
  9.          break;
  10.      case '*':
  11.           ..........
  12.           break;
  13.      case '/':
  14.           .........
  15.          break;
  16.    }
Fijate el uso de las comillas simples

Saludos
  #3 (permalink)  
Antiguo 23/05/2012, 17:48
Avatar de thedaket  
Fecha de Ingreso: junio-2011
Mensajes: 55
Antigüedad: 12 años, 10 meses
Puntos: 3
Respuesta: Eh aca una calculadora basica en C

Muchas gracias, y pues estoy aprendiendo y me da gusto este tipo de criticas constructivas ñ.ñ y tomare muy en cuenta tus comentarios
  #4 (permalink)  
Antiguo 23/05/2012, 17:58
Avatar de thedaket  
Fecha de Ingreso: junio-2011
Mensajes: 55
Antigüedad: 12 años, 10 meses
Puntos: 3
Respuesta: Eh aca una calculadora basica en C

uhh me marca error al compilar en la linea de la función suma
Código PHP:
void suma(void) { 
  #5 (permalink)  
Antiguo 24/05/2012, 05:13
 
Fecha de Ingreso: abril-2010
Ubicación: Rosario
Mensajes: 1.850
Antigüedad: 14 años
Puntos: 228
Respuesta: Eh aca una calculadora basica en C

Que errores te marca y que codigo te da el fallo?

Etiquetas: calculadora, int, basicos
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 21:19.