Test Foro de elhacker.net SMF 2.1

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
Cita de: 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.

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 (cpp) [Seleccionar]
float x;

y en SistemaY
Código (cpp) [Seleccionar]
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 (cpp) [Seleccionar]
#include <iostream>
#include <cstdlib>
using namespace std;
float SistemaX(float a,float b,float c,float p,float q,float r)
{
      float x;
      x=(b*r-c*q)/(a*q-b*p);
      return x;
      }
float SistemaY (float a,float b,float c,float p,float q,float r)
{
      float y;
      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;
}



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
Citarif(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 (cpp) [Seleccionar]
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";
   }


la estructura if else no es
if {
else
}
es
if {
} else {
}
Ejemplo:
Código (cpp) [Seleccionar]
if (a==b) {
cout << "a=b";
} else {
cout << "a!=";
}


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 (cpp) [Seleccionar]
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;
}


  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 '}')