Cool C/C++

Programacion en C/C++

Home Foros
Bienvenido, Invitado
Por favor Identificarse o Registrarse.    Contraseña olvidada?

Calculadora en c , ayuda
(1 viendo) (1) Invitado
AbajoPágina: 1
TEMA: Calculadora en c , ayuda
#95
Calculadora en c , ayuda Creado el día: 13/06/2011 22:52 Karma: 0
Tengo que hacer una calculadora con funciones, hice el programa pero cuando finaliza una operacion me vuelve a pedir la opciones del menu, el problema es que necesito que me vuelva a pedir unos valores nuevos de la funcion (void pedir) y despues me salga el menu de opciones para realizar una operacion nueva, hasta el momento me calcula solo operaciones de los mismos 2 valores que doy al principio. Ayuda o sugerencias porfavor. Utilizo codeblock

#include<stdio.h>
#include<math.h>

int suma (int a,int b)
{
return (a+b);
}

int resta (int a, int b)
{
return (a-b);
}

float multiplicacion(float a, float b)
{
return (a*b);
}

float division(float a, float b)
{
return (a/b);
}

float cuadrado1(float a)
{
return pow(a,2);
}

float cuadrado2(float b)
{
return pow(b,2);
}

float cubo1(float a)
{
return pow(a,3);
}

float cubo2( float b)
{
return pow(b,3);
}

float raiz1(float a)
{
return sqrt(a);
}

float raiz2(float b)
{
return sqrt(b);
}




void pedir(int *d)
{
printf("De un valor: ");
scanf("%d",&*d);
}


main()
{
int x,y,opc;
pedir(&x);
pedir(&y);
do
{
printf("\n Menu ");
printf("\n1 Suma");
printf("\n2 Resta");
printf("\n3 Multiplicacion");
printf("\n4 Division");
printf("\n5 Cuadrado");
printf("\n6 Cubo");
printf("\n7 Raiz");
printf("\n8 Salir del sistema\n");

do
{
printf("\nDe la opcion: ");
scanf("%d",&opc);
}
while(opc<1 || opc >8);
if (opc >=1 && opc <=7)
{

if(opc==1)
printf("suma =%d",suma(x,y));
else
if(opc==2)
printf("resta =%d",resta(x,y));
else
if(opc==3)
printf("multiplicacion= %.2f",multiplicacion(x,y));
else
if(opc==4)
printf("division= %.2f",division(x,y));
else
if(opc==5)
{
printf("cuadrado.1= %.2f\n",cuadrado1(x));
printf("cuadrado.2= %.2f",cuadrado2(y));
}
else
if(opc==6)
{
printf("Cubo.1= %.2f\n",cubo1(x));
printf("Cubo.2= %.2f\n",cubo2(y));
}
else
if(opc==7)
{
printf("Raiz.1= %.2f\n",raiz1(x));
printf("Raiz.2= %.2f\n",raiz2(y));
}
}
else
printf("\nFinalizando...");
}
while(opc!=8);

}
koc
Navegador Iniciado
Mensajes: 15
graphgraph
Usuario Offline Presiona aquí para ver el perfil de este usuario
Última edición: 13/06/2011 22:55 por koc.
El administrador ha deshabilitado la escritura pública.
 
#96
Re: Calculadora en c , ayuda Creado el día: 14/06/2011 11:24 Karma: 0
Hola koc .. por lo que vi en tu codigo esta muy bien solo debes mover las dos funciones pedir(); que tienes dentro del main() y meterlas al principio del ciclo do - while y asi se
pediran los valores hasta que quieras salir.. te muestro el codigo.
Nota: Espero que no copies y pegues .. analisalo y lee los comentarios.

 
 
#include<stdio.h>
#include<math.h>

int suma (int a,int b)
{
return (a+b);
}
 
int resta (int a, int b)
{
return (a-b);
}
 
float multiplicacion(float a, float b)
{
return (a*b);
}
 
float division(float a, float b)
{
return (a/b);
}
 
float cuadrado1(float a)
{
return pow(a,2);
}
 
float cuadrado2(float b)
{
return pow(b,2);
}
 
float cubo1(float a)
{
return pow(a,3);
}
 
float cubo2( float b)
{
return pow(b,3);
}
 
float raiz1(float a)
{
return sqrt(a);
}
 
float raiz2(float b)
{
return sqrt(b);
}
 
 
 
 
void pedir(int *d)
{
//si le quitas el '\n' te sale pegado al resultado
printf("\nDe un valor: ");
scanf("%d",&*d);
}
 
 
main()
{
int x,y,opc;
/*
las dosfunciones pedir debes meterlas dentro del
do-while para que se repita junto con el menu de
opciones ;-)
pedir(&x); antiguo lugar
pedir(&y); antiguo lugar
*/

 
do
{
pedir(&x);//nuevo lugar dentro del do-while
pedir(&y);//nuevo lugar dentro del do-while
 
printf("\n Menu ");
printf("\n1 Suma");
printf("\n2 Resta");
printf("\n3 Multiplicacion");
printf("\n4 Division");
printf("\n5 Cuadrado");
printf("\n6 Cubo");
printf("\n7 Raiz");
printf("\n8 Salir del sistema\n");
 
do
{
printf("\nDe la opcion: ");
scanf("%d",&opc);
}
while(opc<1 || opc >8);
if (opc >=1 && opc <=7)
{
 
if(opc==1)
printf("suma =%d",suma(x,y));
else
if(opc==2)
printf("resta =%d",resta(x,y));
else
if(opc==3)
printf("multiplicacion= %.2f",multiplicacion(x,y));
else
if(opc==4)
printf("division= %.2f",division(x,y));
else
if(opc==5)
{
printf("cuadrado.1= %.2f\n",cuadrado1(x));
printf("cuadrado.2= %.2f",cuadrado2(y));
}
else
if(opc==6)
{
printf("Cubo.1= %.2f\n",cubo1(x));
printf("Cubo.2= %.2f\n",cubo2(y));
}
else
if(opc==7)
{
printf("Raiz.1= %.2f\n",raiz1(x));
printf("Raiz.2= %.2f\n",raiz2(y));
}
}
else
printf("\nFinalizando...");
}
while(opc!=8);
 
}
 
 
OROCHI
Navegador Iniciado
Mensajes: 6
graphgraph
Usuario Offline Presiona aquí para ver el perfil de este usuario
El administrador ha deshabilitado la escritura pública.
 
#97
Re: Calculadora en c , ayuda Creado el día: 15/06/2011 19:15 Karma: 0
Hola orochi sabes como pudiera hacer para que debajo del main no hubiera printf ni el menu, me refiero hacer el menu en una funcion y que no este en el main, que solo esten las funciones de pedir como pudiera hacer eso? Muchas Gracias por tu ayuda.
koc
Navegador Iniciado
Mensajes: 15
graphgraph
Usuario Offline Presiona aquí para ver el perfil de este usuario
El administrador ha deshabilitado la escritura pública.
 
#100
Re: Calculadora en c , ayuda Creado el día: 16/06/2011 08:46 Karma: 0
Hola kof me alegra que te sirva mi ayuda.. veras para hacer todo en una funcion solo toma el codigo y metelo en una funcion nueva y luego la llamas de esta forma:

recurda no Copy and Paste

Te que daria masbinito si tomas las funciones y las metes dentro de un rachivo
cabezera algo asi como un modulo.. investiga..

 
 
#include<stdio.h>
#include<math.h>

int suma (int a,int b)
{
return (a+b);
}
 
int resta (int a, int b)
{
return (a-b);
}
 
float multiplicacion(float a, float b)
{
return (a*b);
}
 
float division(float a, float b)
{
return (a/b);
}
 
float cuadrado1(float a)
{
return pow(a,2);
}
 
float cuadrado2(float b)
{
return pow(b,2);
}
 
float cubo1(float a)
{
return pow(a,3);
}
 
float cubo2( float b)
{
return pow(b,3);
}
 
float raiz1(float a)
{
return sqrt(a);
}
 
float raiz2(float b)
{
return sqrt(b);
}
 
 
 
 
void pedir(int *d)
{
//si le quitas el '\n' te sale pegado al resultado
printf("\nDe un valor: ");
scanf("%d",&*d);
}
 
//nueva funcion todo..
void all()
{
int x,y,opc;
do
{
pedir(&x);//nuevo lugar dentro del do-while
pedir(&y);//nuevo lugar dentro del do-while
 
printf("\n Menu ");
printf("\n1 Suma");
printf("\n2 Resta");
printf("\n3 Multiplicacion");
printf("\n4 Division");
printf("\n5 Cuadrado");
printf("\n6 Cubo");
printf("\n7 Raiz");
printf("\n8 Salir del sistema\n");
 
do
{
printf("\nDe la opcion: ");
scanf("%d",&opc);
}
while(opc<1 || opc >8);
if (opc >=1 && opc <=7)
{
 
if(opc==1)
printf("suma =%d",suma(x,y));
else
if(opc==2)
printf("resta =%d",resta(x,y));
else
if(opc==3)
printf("multiplicacion= %.2f",multiplicacion(x,y));
else
if(opc==4)
printf("division= %.2f",division(x,y));
else
if(opc==5)
{
printf("cuadrado.1= %.2f\n",cuadrado1(x));
printf("cuadrado.2= %.2f",cuadrado2(y));
}
else
if(opc==6)
{
printf("Cubo.1= %.2f\n",cubo1(x));
printf("Cubo.2= %.2f\n",cubo2(y));
}
else
if(opc==7)
{
printf("Raiz.1= %.2f\n",raiz1(x));
printf("Raiz.2= %.2f\n",raiz2(y));
}
}
else
printf("\nFinalizando...");
}
while(opc!=8);
}
 
main()
{
/*
todo esto lo metimos dentro de
la funcion all para luego llamarla
 
int x,y,opc;
 
do
{
pedir(&x);//nuevo lugar dentro del do-while
pedir(&y);//nuevo lugar dentro del do-while
 
printf("\n Menu ");
printf("\n1 Suma");
printf("\n2 Resta");
printf("\n3 Multiplicacion");
printf("\n4 Division");
printf("\n5 Cuadrado");
printf("\n6 Cubo");
printf("\n7 Raiz");
printf("\n8 Salir del sistema\n");
 
do
{
printf("\nDe la opcion: ");
scanf("%d",&opc);
}
while(opc<1 || opc >8);
if (opc >=1 && opc <=7)
{
 
if(opc==1)
printf("suma =%d",suma(x,y));
else
if(opc==2)
printf("resta =%d",resta(x,y));
else
if(opc==3)
printf("multiplicacion= %.2f",multiplicacion(x,y));
else
if(opc==4)
printf("division= %.2f",division(x,y));
else
if(opc==5)
{
printf("cuadrado.1= %.2f\n",cuadrado1(x));
printf("cuadrado.2= %.2f",cuadrado2(y));
}
else
if(opc==6)
{
printf("Cubo.1= %.2f\n",cubo1(x));
printf("Cubo.2= %.2f\n",cubo2(y));
}
else
if(opc==7)
{
printf("Raiz.1= %.2f\n",raiz1(x));
printf("Raiz.2= %.2f\n",raiz2(y));
}
}
else
printf("\nFinalizando...");
}
while(opc!=8);
*/

 
//llamada a la funcion que tiene todo
all();
 
}
 
 
 
 
OROCHI
Navegador Iniciado
Mensajes: 6
graphgraph
Usuario Offline Presiona aquí para ver el perfil de este usuario
El administrador ha deshabilitado la escritura pública.
 
ArribaPágina: 1
obtén los últimos mensajes directamente en tu escritorio