mu pueden ver este programa en c++ y ver si esta bueno

Iniciado por eduardo17445, 4 Marzo 2013, 23:46 PM

0 Miembros y 1 Visitante están viendo este tema.

eduardo17445

//programa que simule una pequeña calculadora que implementa las siguientes operaciones
//multiplicacion,suma,resta,divicion,potencia,raiz
// otra cosa como es la formula de la potencia

#include <iostream>
#include <math.h>
using namespace std;
int a,b,c=0;
void multiplicacion(float a,float b,float c=0)
{
     c=a*b;
     c=c;

     cout<<"introduzca el numero uno";
     cin>>a;
     cout<<"introduzca el numero dos";
     cin>>b;
     cout<<" ="<<c;
 
}
     void suma(int d ,int e, int f=0)
     {
         f=d*e;
         f=f;
         
         cout<<"introduzca el numero uno";
        cin>>d;
        cout<<"introduzca el numero dos";
         cin>>e;
         cout<<"= ="<<f;
       
         }
         void resta (int g, int h, int j=0)
         {
             j=g-h;
             j=j;
              cout<<"introduzca el numero uno";
              cin>>g;
              cout<<"introduzca el numero dos";
              cin>>h;
              cout<<"="<<j;
             
         }
         void division (int z,int k,int ñ=0)
         {
             ñ=z/k;
             ñ=ñ;
             cout<<"introduzca el numero uno";
              cin>>z;
              cout<<"introduzca el numero dos";
              cin>>k;
              cout<<"="<<ñ;
        }
       double raiz (int xa, int xb, int ya, int yb)
{
      double p1,p2;
      double d;
      p1=pow((xa+xb),2);//calcular el cuadrado
      p2=pow((ya+yb),2);
      d=sqrt(p1+p2);
      return (d);
}
         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==1)
              {
                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); 
                  }       
                  system ("pause");
                  return 0;
              }

avesudra

#1
El compilador(GCC) dice esto(con esto tendrías que tener suficiente para empezar a corregir):
main.cpp|40|error: '\303' parásito en el programa|
main.cpp|40|error: '\261' parásito en el programa|
main.cpp|42|error: '\303' parásito en el programa|
main.cpp|42|error: '\261' parásito en el programa|
main.cpp|43|error: '\303' parásito en el programa|
main.cpp|43|error: '\261' parásito en el programa|
main.cpp|43|error: '\303' parásito en el programa|
main.cpp|43|error: '\261' parásito en el programa|
main.cpp|48|error: '\303' parásito en el programa|
main.cpp|48|error: '\261' parásito en el programa|
main.cpp|42|error: expected primary-expression before '=' token|
main.cpp|43|error: expected primary-expression before '=' token|
main.cpp|43|error: expected primary-expression before ';' token|
main.cpp|48|error: expected primary-expression before ';' token|
main.cpp|70|error: faltan argumentos para la función 'void multiplicacion(float, float, float)'|
main.cpp|5|nota: se declara aquí|
main.cpp|77|error: 'e' no se declaró en este ámbito|
main.cpp|78|error: 'f' no se declaró en este ámbito|
main.cpp|83|error: 'g' no se declaró en este ámbito|
main.cpp|85|error: 'h' no se declaró en este ámbito|
main.cpp|86|error: 'j' no se declaró en este ámbito|
main.cpp|88|error: 'system' no se declaró en este ámbito|
||=== Build finished: 23 errors, 0 warnings (0 minutes, 0 seconds) ===|

Errores comentados por encima

  • Los parásitos en el programa se refieren al carácter 'ñ' que no se puede utilizar para nombrar una variable.
  • Lo del error "expected primary-expression befor ' 'token" es por lo de la ñ también.
  • En la función multiplicación te faltan pasar 2 argumentos.
  • Bueno y lo demás es la definición de variables que te faltan mucho.
Como consejos:

  • Sustituir el :
Código (cpp) [Seleccionar]
system("pause");
dado que es lento y no es portable entre los Sistemas Operativos por:
Código (cpp) [Seleccionar]
std::cin.get();
O:
getchar();
  • Organiza el código e indéntalo.
  • Utiliza un switch en vez de tantos if:
Código (cpp) [Seleccionar]
char h;
//... ES UN CÓDIGO A MODO DE EJEMPLO
switch (h)
{
case 'a':
  cout << "h is a"; break;
case 'b':
  cout << "h is b"; break;
case .....
}

  • Las librerías de C en C++ se incluyen así:
Código (cpp) [Seleccionar]
#include<cmath>
Y no así:
#include <math.h>

La función de la potencia la sabes ya ¿no? la utilizas en tu código...  :silbar:

¡Un saludo!
Regístrate en

rir3760

Aparte de lo ya comentado por avesudra en todas las funciones (salvo "raiz") primero realizas la operación y solo después pides los datos cuando debe ser al revés. También tienes sentencias inútiles como esta (eliminalas):
Código (cpp) [Seleccionar]
j = j;

Y en la función "main" pides los operandos y a continuación los vuelves a pedir en las funciones. Tienes que pedirlos una sola vez.

Un saludo
C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly.
--
Kernighan & Ritchie, The C programming language

NoLife

#3
seria más humano, de si vas a pedir ayuda, colocases algunos comentarios explicando tu código mientras programas cuando lo vayes a exponer. saludos.
"Cualquier tonto puede escribir código que la PC entienda. Los buenos programadores escriben código que los humanos pueden entender." – Martin Fowler