Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: chj++ en 1 Diciembre 2013, 13:59 pm



Título: ayuda con este programa xfavoooorrr
Publicado por: chj++ en 1 Diciembre 2013, 13:59 pm
Codificar un programa que resuelva las ecuaciones simultáneas siguientes:
 
ax + by + c = 0 y px + qy + r = 0
 Fundamentos de Informática Tema 5: Funciones
Dpto. Lenguajes y Ciencias de la Computación 2
Realizar una función encargada de la solución de las ecuaciones que devuelva el valor de x e y en función del
resto de parámetros de las ecuaciones. La función también debe devolver una variable lógica que indique si el
sistema de ecuaciones tiene solución o no. El programa principal debe leer los valores, resolver las ecuaciones
usando la función diseñada e imprimir en pantalla los valores en caso de existir o un mensaje de error si no es
posible resolverlas.
 
Resolver con dicho módulo las ecuaciones siguientes:
3x + 2y - 7 = 0 3x + 2y - 7 = 0 3x + 2y - 7 = 0
9x - 5y + 1 = 0 9x + 6y - 21 = 0 9x + 6y - 20 = 0


Título: Re: ayuda con este programa xfavoooorrr
Publicado por: ivancea96 en 1 Diciembre 2013, 14:09 pm
No se hacen tareas.
Si tienes alguna duda, pregúntala.
Si tienes algún error, postea el código.


Título: Re: ayuda con este programa xfavoooorrr
Publicado por: dato000 en 1 Diciembre 2013, 14:17 pm
No se hacen tareas.
Si tienes alguna duda, pregúntala.
Si tienes algún error, postea el código.

y lo peor de todo es que ni dice "por favor"  ;-) :laugh: :silbar:


Título: Re: ayuda con este programa xfavoooorrr
Publicado por: chj++ en 1 Diciembre 2013, 17:42 pm
Perdonad! No tenia ni idea de como iba esto :-\
#include <iostream>
#include <cstdlib>
using namespace std;
float SistemaX(float a,float b,float c,float p,float q,float r)
{
      float x, a, b, c, p, q, r;
      x=(b*a*r-b*p*c-c*b*p-c*a*q)/(a*a*q-b*p*a);
      return x;
      }
float SistemaY (float a,float b,float c,float p,float q,float r)
{
      float y,a,b,c,p,q,r;
      y=(p*c-a*r)/(a*q-b*p);
      return y;
      }
int main()
{
    float x,y,a,b,c,p,q,r;
    cout<<"Un sistema lineal tiene estas dos ecuaciones: ax+by+c=0 y px+qy+r=0\n";
    cout<<"Indique el valor de a,b,c,p,q y r:";
    cin>>a>>b>>c>>p>>q>>r;
    x=SistemaX(a,b,c,p,q,r);
    y=SistemaY(a,b,c,p,q,r);
    cout<<"La x vale:"<<x<<endl;
    cout<<"La y vale:"<<y<<endl;
    System ("Pause");
    return 0;
}



Esto es lo que tengo hecho pero me salen errores y no se lo que significan:
--6 C:\Users\Angel\Documents\ejercicio9Tema5.cpp declaration of 'float a' shadows a parameter --
y asi con todas las variables que he declarado
A ver si alguien me puede ayudar!
Muchas Gracias


Título: Re: ayuda con este programa xfavoooorrr
Publicado por: Almapa en 1 Diciembre 2013, 19:15 pm
Veamos el error que te da es porque estás declarando las variables que ya tienes decaradas como variables que obtienes como parámetros de la función, pues la línea debería quedar:
en SistemaX
Código
  1. float x;

y en SistemaY
Código
  1. float y;

Pues son las únicas variables que no has declarado como parámetro de la función.

De todos modos, lo he probado y el cálculo del valor de "x" sale mal, supongo que error del algoritmo.

Un saludo


Título: Re: ayuda con este programa xfavoooorrr
Publicado por: Almapa en 1 Diciembre 2013, 19:28 pm
El programa está bien, cambiando las dos líneas esas por redundancia de declaración y con el algoritmo correcto para calcular la x funciona bien.

Código
  1. #include <iostream>
  2. #include <cstdlib>
  3. using namespace std;
  4. float SistemaX(float a,float b,float c,float p,float q,float r)
  5. {
  6.      float x;
  7.      x=(b*r-c*q)/(a*q-b*p);
  8.      return x;
  9.      }
  10. float SistemaY (float a,float b,float c,float p,float q,float r)
  11. {
  12.      float y;
  13.      y=(p*c-a*r)/(a*q-b*p);
  14.      return y;
  15.      }
  16. int main()
  17. {
  18.    float x,y,a,b,c,p,q,r;
  19.    cout<<"Un sistema lineal tiene estas dos ecuaciones: ax+by+c=0 y px+qy+r=0\n";
  20.    cout<<"Indique el valor de a,b,c,p,q y r:";
  21.    cin>>a>>b>>c>>p>>q>>r;
  22.    x=SistemaX(a,b,c,p,q,r);
  23.    y=SistemaY(a,b,c,p,q,r);
  24.    cout<<"La x vale:"<<x<<endl;
  25.    cout<<"La y vale:"<<y<<endl;
  26.    system("Pause");
  27.    return 0;
  28. }
  29.  


Un saludo


Título: Re: ayuda con este programa xfavoooorrr
Publicado por: chj++ en 1 Diciembre 2013, 20:11 pm
Muchas gracias Almapa!!
ahora tengo otro problemilla con el "else"

int main()
{
    float x,y,a,b,c,p,q,r;
    cout<<"Un sistema lineal tiene estas dos ecuaciones: ax+by+c=0 y px+qy+r=0\n";
    cout<<"Indique el valor de a,b,c,p,q y r:";
    cin>>a>>b>>c>>p>>q>>r;
    if(SistemaX(a,b,c,p,q,r)==true)
    {
    x=SistemaX(a,b,c,p,q,r);
    cout<<"La x vale:"<<x<<endl;
    else cout<<"La x no existe";
    }
    if(SistemaY(a,b,c,p,q,r)==true);
    {
    y=SistemaY(a,b,c,p,q,r);
    cout<<"La y vale:"<<y<<endl;
    else cout<<"La y no existe";
    }
    system("pause");
    return 0;
}



me sale este error y yo ya no se donde me pide que le ponga otro ;


28 C:\Users\Angel\Documents\ejercicio9Tema5.cpp expected primary-expression before "else"
28 C:\Users\Angel\Documents\ejercicio9Tema5.cpp expected `;' before "else"
int main()
34 C:\Users\Angel\Documents\ejercicio9Tema5.cpp expected primary-expression before "else"
34 C:\Users\Angel\Documents\ejercicio9Tema5.cpp expected `;' before "else"


muchisimas gracias !!


Título: Re: ayuda con este programa xfavoooorrr
Publicado por: Stakewinner00 en 1 Diciembre 2013, 21:13 pm
Citar
if(SistemaX(a,b,c,p,q,r)==true)
    {
    x=SistemaX(a,b,c,p,q,r);
    cout<<"La x vale:"<<x<<endl;
    else cout<<"La x no existe";
    }
    if(SistemaY(a,b,c,p,q,r)==true);
    {
    y=SistemaY(a,b,c,p,q,r);
    cout<<"La y vale:"<<y<<endl;
    else cout<<"La y no existe";
    }
pon esto

Código
  1. if(SistemaX(a,b,c,p,q,r)==true)
  2.    {
  3.    x=SistemaX(a,b,c,p,q,r);
  4.    cout<<"La x vale:"<<x<<endl;
  5.    } else { cout<<"La x no existe";
  6.    }
  7.    if(SistemaY(a,b,c,p,q,r)==true);
  8.    {
  9.    y=SistemaY(a,b,c,p,q,r);
  10.    cout<<"La y vale:"<<y<<endl;
  11.   } else {  cout<<"La y no existe";
  12.    }

la estructura if else no es
if {
else
}
es
if {
} else {
}
Ejemplo:
Código
  1. if (a==b) {
  2. cout << "a=b";
  3. } else {
  4. cout << "a!=";
  5. }

usa las etiquetas GeSHi para darle color al código


Título: Re: ayuda con este programa xfavoooorrr
Publicado por: ivancea96 en 1 Diciembre 2013, 21:17 pm
Código
  1. int main()
  2. {
  3.    float x,y,a,b,c,p,q,r;
  4.    cout<<"Un sistema lineal tiene estas dos ecuaciones: ax+by+c=0 y px+qy+r=0\n";
  5.    cout<<"Indique el valor de a,b,c,p,q y r:";
  6.    cin>>a>>b>>c>>p>>q>>r;
  7.  
  8.    if(SistemaX(a,b,c,p,q,r)==true)
  9.    {
  10.    x=SistemaX(a,b,c,p,q,r);
  11.    cout<<"La x vale:"<<x<<endl;
  12.    } else cout<<"La x no existe";
  13.  
  14.    if(SistemaY(a,b,c,p,q,r)==true)
  15.    {
  16.    y=SistemaY(a,b,c,p,q,r);
  17.    cout<<"La y vale:"<<y<<endl;
  18.    } else cout<<"La y no existe";
  19.  
  20.    system("pause");
  21.    return 0;
  22. }

  if(SistemaY(a,b,c,p,q,r)==true);
Si pones el ';' al fina del if, el if se cerrará ahí mismo.

Además, el "else" se pone al final del if, es decir, despues de la última instrucción. (O después del '}')