Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: eduardo17445 en 21 Marzo 2013, 00:46 am



Título: me gustaria q m revisaran este programa lo hice en dev c++
Publicado por: eduardo17445 en 21 Marzo 2013, 00:46 am
//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;
             
              }


Título: Re: me gustaria q m revisaran este programa lo hice en dev c++
Publicado por: Almapa en 21 Marzo 2013, 02:01 am
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.


Título: Re: me gustaria q m revisaran este programa lo hice en dev c++
Publicado por: Almapa en 21 Marzo 2013, 02:01 am
#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;
}


Título: Re: me gustaria q m revisaran este programa lo hice en dev c++
Publicado por: Almapa en 21 Marzo 2013, 02:13 am
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.


Título: Re: me gustaria q m revisaran este programa lo hice en dev c++
Publicado por: eduardo17445 en 21 Marzo 2013, 02:35 am
ok gracias


Título: Re: me gustaria q m revisaran este programa lo hice en dev c++
Publicado por: zonahurbana en 21 Marzo 2013, 02:59 am
Se podría cambiar
  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
Código
  1.    switch( int op=cin.get() )
  2.    {
  3.        case 1:  multiplicacion(); break;
  4.        case 2:  suma(); break;
  5.        case 3:  resta(); break;
  6.        case 4:  division(); break;
  7.        case 5:  raiz(); break;
  8.        case 6:  potencia(); break;
  9.        default: cout<<"Opcion invalida.";
  10.    }