[ Foro de C ]
Aquie Tengo Un Codigo Fuente que estaba realizando sobre 2 Versiones De 2 Calculadora
1. A Base De Preguntas utilizando funciones como scanf
2Y otra a base que no se de preguntas osea que sea como la de windows que no pida enter para introducir los numeros en el programa que cuando automaticamente ingrese el signo de operacion acoga la operacion y empieze a pedir el otro numero para realizar la operacion(de esta version de calculadora no tengo casi idea de como hacerla)
Ya que soy un poco nuevo aprendiendo en el lenguaje de C les pido ayuda aqui les dejo el codigo para que vean lo que eh echo
Ojo En la primera version necesito Utilizar los caracteres 'E' Y 'C' E para volver al menu y C para Continuar la operacion (que tampoco se hacer) :c
[code]
//Calculadora
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <conio.h>
int Calculadora_Polaca; //Interfaz De Calculadora Polaca
int Calculadora_Windows;//Interfaz De Calculadora Windows
int Opcion;//Opcion De Que Calculadora se utilizara
int operacion;// Operaciones A Realizar
int main()
{
printf("\n Eliga El Software A Utilizar: \n");
printf("\n 1.Calculadora_Polaca 2.Calculadora_Windows \n");
scanf("%i",&Opcion);
system("cls"); //Limpiar La Pantalla
switch (Opcion)
{
case 1: //Calculadora Polaca
printf("\n------------------------------------------------------");
printf("\n| Bienvenidos A La Calculadora Polaca |");
printf("\n| |");
printf("\n| Elgina Una Operacion A Realizar |");
printf("\n| |");
printf("\n| 1.- Suma 2.Resta |");
printf("\n| 3.- Multiplicacion 4.Division |");
printf("\n| 5.- Raiz Cuadrada 6.Potenciacion |");
printf("\n| |");
printf("\n| NOTA: Si Quiere Volver al Menu Utilize el |");
printf("\n| Caracter 'E' |");
printf("\n------------------------------------------------------");
printf("\n");
scanf("%i",&operacion); //Operacion A Realizar
system("cls"); //Limpiar Pantalla
float num1;
float num2;
float resultado;
int n,base,potencia;
char e, c;
int menu;
switch (operacion)
{
case 1://Suma
do
{
printf("\n Digite la primera cantidad \n");
scanf("%f",&num1);
printf("\n Digite la Segunda cantidad \n");
scanf("%f",&num2);
resultado = num1 + num2;
printf("\n Su Resultado Es: %.2f\n",resultado);
printf("\n 'E' Para Salir Y 'C' Para Continuar\n");
fflush(stdin);
scanf("%c",&c);
}while (c != 'e');
break;
case 2://Resta
printf("\n Digite la primera cantidad \n");
scanf("%f",&num1);
printf("\n Digite la Segunda cantidad \n");
scanf("%f",&num2);
resultado = num1 - num2;
printf("\n Su Resultado Es: %.2f\n",resultado);
break;
case 3: //Multiplicacion
printf("\n Digite la primera cantidad \n");
scanf("%f",&num1);
printf("\n Digite la Segunda cantidad \n");
scanf("%f",&num2);
resultado = num1 * num2;
printf("\n Su Resultado Es: %.2f\n",resultado);
break;
case 4: //Division
printf("\n Digite la primera cantidad \n");
scanf("%f",&num1);
printf("\n Digite la Segunda cantidad \n");
scanf("%f",&num2);
resultado = num1 / num2;
printf("\n Su Resultado Es: %.2f\n",resultado);
break;
case 5: //Raiz Cuadrada
printf("\n Digite Su numero \n");
scanf("%i,",&n);
n = sqrt(n);
printf("\n Su Resultado Es: %i\n",n);
break;
case 6: //Potenciacion
printf("\n Escriba el Numero que Quiere elevar: \n" );
scanf("%d", &base );
printf("\n Escriba la potencia: \n" );
potencia = 2;
printf("\n %d elevado a %d es %.2f\n", base, potencia, pow (base, potencia));
break;
}
break;
case 2://Calculadora Windows
printf("\n Bienvenidos A La Calculadora Windows ");
break;
}
[code][code]Reemplace este texto[/code][code][code]Reemplace este texto[/code][code][code]Reemplace este texto[/code][indent][indent]Reemplace este texto[/indent][/indent][/code][/code][/code]
system("pause");
return 0;
}
[/code]
hola novato en c
no se si te servira de ayuda pero creo que lo mejor seria no querer hacerlo todo de una tacada,
ya sabes eso de divide y venceras, por lo que seria mejor hacer una calculadora y cuando la tengas lista
haces la otra reutilizando el codigo que puedas de la primera
otra cosa que yo haria es meter cada bloque diferenciado en funciones,
por ejem uno con el 'menu' que valide la entrada y devuelva la opcion que utilizara el switch,
y una funcion por cada operacion, que una vez visualizado el resultado
toque cualquier tecla para volver al menu principal, asi despejaras el
main() y quedara muy clara la logica del programa
es decir pondria un bucle infinito con un 'do{...} while(1)' que empezaria con la funcion menu (de una sola calcuadora)
pasaria al switch que llamaria a la funcion pertinente y al volver seguiria en el bucle pidiendo opcion en la funcion menu()
la opcion 7 podria ser salir del programa y esta haria un return 0 para acabar y salir del programa
parece que seria interesante hacer una funcion que pida el operando uno y operando dos ya que
esta accion la repetiras para cada accion que realizas ya sea suma, resta, ... y es repetitiva
por ejem con pideDatos(&op1, &op2), asi no necesitas variables globales en main tienes opcion y
op1 y op2 son locales de cada funcion que se las pasaria a pideDatos para que los rellene
bien no se si te servira, ya me cuentas si haces cambios en el programa
chao chao
(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)