//programa que simule una pequeña calculadora que implemente las siguientes operaciones
//suma ,resta, multiplicacion, division, raiz ,potencia.
#include <iostream>
#include <math.h>
using namespace std;
int a,b,c=0;
int multiplicacion(int a,int b)
{
int int c=0;
c=a*b;
cout<<"introduzca el numero uno";
cin>>a;
cout<<"introduzca el numero dos";
cin>>b;
cout<<" ="<<c;
return (c);
}
int suma(int d ,int e, int f=0)
{
f=d*e;
cout<<"introduzca el numero uno";
cin>>d;
cout<<"introduzca el numero dos";
cin>>e;
cout<<"="<<f;
return (f);
}
int resta (int g, int h, int j=0)
{
j=g-h;
cout<<"introduzca el numero uno";
cin>>g;
cout<<"introduzca el numero dos";
cin>>h;
cout<<"="<<j;
return (j);
}
int division (int z,int k)
{
double ñ=0;
ñ=z/k;
cout<<"introduzca el numero uno";
cin>>z;
cout<<"introduzca el numero dos";
cin>>k;
cout<<"="<<ñ;
return (ñ);
}
int raiz (int xa, int xb)
{
int d;
d=sqrt(pxa+xb);
cout<<"="<< raiz(d);
return (d);
}
int potencia (int u, int t, int xa,int ya):
{
double p1,p2;
p1=pow((xa),2);
p2=pow((ya),2);
cout<<"introduzca la base ";
cin>>u;
cout<<"introduzca el exponente";
cin>>t;
cout<<"="<<potencia(p1);
cout<<"="<<potencia(p2);
return (p1);
return (p2);
}
int main()
{
int op;
cout<<"introduzca una opcion";
cin>>op;
if(op==1)
{
cout<<"introduzca el numero uno";
cin>>a;
cout<<"introduzca el numero dos";
cin>>b;
cout<<"="<<multiplicacion(c);
}
if(op==2)
{
cout<<"introduzca el numero uno";
cin>>d;
cout<<"introduzca el numero dos";
cin>>e;
cout<<"="<<suma(f);
}
if(op==3)
{
cout<<"introduzca el numero uno";
cin>>g;
cout<<"introduzca el numero dos";
cin>>h;
cout<<" ="<<resta(j);
}
if(op==4)
{
int u,q;
cout<<"introduzca el numero uno";
cin>>z;
cout<<"introduzca el numero dos";
cin>>k;
cout<<"="<<division(ñ);
}
if(op==5)
{
cout<<"="<< raiz(d);
}
if (op==6)
{
cout<<"introduzca la base ";
cin>>u;
cout<<"introduzca el exponente";
cin>>t;
cout<<"="<<potencia(p1);
cout<<"="<<potencia(p2);
}
system ("pause");
return 0;
}
En este código hay bastantes fallos. Parece que no has acabado de entender la diferencia entre variables globales y locales.
Los mensajes que saca la consola antes de pedir las variables te saldrían 2 veces y además te pedirían 2 veces cada número: 1 cuando entra en las sentencias "if" de la función main() y otra vez al entrar en cada una de las funciones de cada operación.
En las definiciones de las funciones también hay errores. Aquí te dejo una posible corrección, pues ir punto a punto sería muy largo, si no entiendes algo busca información o pregunta, hay muy buenos tutoriales de este lenguaje.
#include <iostream>
#include <math.h>
using namespace std;
int multiplicacion()
{
int a,b;
cout<<"introduzca el numero uno: ";
cin>>a;
cout<<endl<<"introduzca el numero dos: ";
cin>>b;
cout<<endl<<"El resultado es: "<<a*b<<endl;
}
int suma()
{
int a,b;
cout<<"introduzca el numero uno: ";
cin>>a;
cout<<endl<<"introduzca el numero dos: ";
cin>>b;
cout<<endl<<"El resultado es: "<<a+b<<endl;
}
int resta ()
{
int a,b;
cout<<"introduzca el numero uno: ";
cin>>a;
cout<<endl<<"introduzca el numero dos: ";
cin>>b;
cout<<endl<<"El resultado es: "<<a-b<<endl;
}
double division () //salida double
{
double n; //Utilizar n en vez de ñ
int a,b;
cout<<"introduzca el numero uno: ";
cin>>a;
cout<<endl<<"introduzca el numero dos: ";
cin>>b;
n=a/b;
cout<<endl<<"El resultado es: "<<n<<endl;
}
int raiz ()
{
int a;
cout<<"introduzca el numero: ";
cin>>a;
cout<<endl<<"El resultado es: "<< sqrt(a)<<endl;
return 0;
}
int potencia ()
{
double a,b;
cout<<"introduzca la base: ";
cin>>a;
cout<<endl<<"introduzca el exponente: ";
cin>>b;
cout<<endl<<"El resultado es: "<<pow(a,b)<<endl;
}
int main()
{
int op;
cout<<"introduzca el numero de la operacion"<<endl;
cout<<"1.multiplicacion "<<endl;
cout<<"2.suma"<<endl;
cout<<"3.resta"<<endl;
cout<<"4.division"<<endl;
cout<<"5.raiz"<<endl;
cout<<"6.potencia"<<endl;
cin>>op;
if(op==1) multiplicacion();
if(op==2) suma();
if(op==3) resta();
if(op==4) division();
if(op==5) raiz();
if (op==6) potencia();
main();
return 0;
}
Por cierto, el programa tal y como te lo he puesto está muy bien para practicar en cuanto a funciones, pero personalmente creo que se podría reducir bastante el código.
ok gracias
Se podría cambiar
Cita de: Almapa en 21 Marzo 2013, 02:01 AM
int op;
cin>>op;
if(op==1) multiplicacion();
if(op==2) suma();
if(op==3) resta();
if(op==4) division();
if(op==5) raiz();
if (op==6) potencia();
Por
switch( int op=cin.get() )
{
case 1: multiplicacion(); break;
case 2: suma(); break;
case 3: resta(); break;
case 4: division(); break;
case 5: raiz(); break;
case 6: potencia(); break;
default: cout<<"Opcion invalida.";
}