elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Únete al Grupo Steam elhacker.NET


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Ecuacion de la recta en c++
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Ecuacion de la recta en c++  (Leído 24,232 veces)
chucho11028

Desconectado Desconectado

Mensajes: 3


Ver Perfil
Ecuacion de la recta en c++
« en: 24 Febrero 2013, 20:18 pm »

Saludos
Hice un programa en C++ para calcular la ecuacion de la recta y mi vision del
programa fue solicitar los cuatro valores de x1,x2,y1, y2 para calcular la
pendiente y segun la formula y2=m*x2 + b obtener el resultado.
Claro me di cuenta al principio que si usaba esta formula:
cout << "La ecuacion de la recta es y = " <<
m << "x + "<< (m*(-x1)+y1) << endl;

La ecuacion nunca iba a entender el cambio de signo si y1 era positivo o
negativo segun la formula (y2-y1)=m*(x2-x1) al tener que despejar para obtener
y2=m*(x2 - x1) + y1. Luego utilice esta logica

else
{

m=(y2-y1)/(x2-x1);

//comparo si x1 es mayor que 0 o positivo para manejar el
cambio de signo x2-x1 al multiplicar signos
if (x1>0)
{

// si es positivo al multiplicarse en (x2-x1) cambiara a negativo y lo
almaceno en nueva variable p
p=x1*(-1);
}

if (x1<0)
{

// si es negativo al multiplicarse en (x2-(-x1)) cambiara a positivo y lo
almaceno en nueva variable p
p=x1;
}


if (y1>0)
{

// si es positivo, no lo afecta el sigono de (y2-y1) y al pasar a la
derecha de (y2-y1) cambiara a positivo y lo almaceno en nueva variable q
q=y1;
}

else
{
// si es negativo, su signo cambia a positivo en (y2-(-y1)) al
pasar a la derecha de (y2-y1) cambiara a negativo y lo almaceno en nueva
variable q
q=y1*(-1);
}

cout << "La ecuacion de la recta es y = " <<
m << "x + " << ((m)*p)+q << endl;


Pero cuando y1 es igual a un numero negativo el componente b de la ecuacion
y2=m*x2 + b no me da el resultado correcto. Donde estoy cometiendo el error??
Agradezco cualquier ayuda

El programa completo es:
#include <iostream>

using namespace std;


int main()
{


double x1,x2,y1,y2,m;
double p, q;

cout << "Ingrese coordenada en x1 : ";
cin >> x1;

cout << "Ingrese coordenada en x2 :";
cin >> x2;

cout << "Ingrese coordenada en y1 :";
cin >> y1;

cout << "Ingrese coordenada en y2 :";
cin >> y2;




if ( x1==x2)
{

cout << "No existe ecuacion ";

}

else
{

m=(y2-y1)/(x2-x1);


//comparo si x1 es mayor que 0 o positivo para manejar el
cambio de signo x2-x1 al multiplicar signos
if (x1>0)
{

// si es positivo al multiplicarse en (x2-x1) cambiara a negativo y lo
almaceno en nueva variable p
p=x1*(-1);
}

if (x1<0)
{

// si es negativo al multiplicarse en (x2-(-x1)) cambiara a positivo y lo
almaceno en nueva variable p
p=x1;
}


if (y1>0)
{

// si es positivo, no lo afecta el sigono de (y2-y1) y al pasar a la
derecha de (y2-y1) cambiara a positivo y lo almaceno en nueva variable q
q=y1;
}

else
{
// si es negativo, su signo cambia a positivo en (y2-(-y1)) al
pasar a la derecha de (y2-y1) cambiara a negativo y lo almaceno en nueva
variable q
q=y1*(-1);
}




cout << "La ecuacion de la recta es y = " <<
m << "x + " << ((m)*p)+q << endl;

cin.get();
}
cin.get();
return 0;
}


Agradeceria cualquier ayuda para ver donde esta mi error


En línea

Stakewinner00


Desconectado Desconectado

Mensajes: 1.426



Ver Perfil WWW
Re: Ecuacion de la recta en c++
« Respuesta #1 en: 24 Febrero 2013, 21:39 pm »

Puedes publicar el código? Y ya que estar metele las etiquetas GeSHi.


En línea

chucho11028

Desconectado Desconectado

Mensajes: 3


Ver Perfil
Re: Ecuacion de la recta en c++
« Respuesta #2 en: 24 Febrero 2013, 22:43 pm »

este es el codigo completo pero no funciona si x1 es negativo, me da cualquier error. Donde me estoy equivocando
#include <iostream>

using namespace std;


int main()
{


   double x1,x2,y1,y2,m;
    double p, q;

   cout << "Ingrese coordenada en x1 : ";
   cin >> x1;

   cout << "Ingrese coordenada en x2 :";
   cin >> x2;

   cout << "Ingrese coordenada en y1 :";
   cin >> y1;

   cout << "Ingrese coordenada en y2 :";
   cin >> y2;

       
   

   if ( x1==x2)
   {

      cout << "No existe ecuacion ";

   }

   else
   {
         
          m=(y2-y1)/(x2-x1);
         
         
                     //comparo si x1 es mayor que 0 o positivo para manejar el cambio de signo x2-x1 al multiplicar signos
           if (x1>0)
        {
                 
         // si es positivo al multiplicarse en (x2-x1) cambiara a negativo y lo almaceno en nueva variable p
                 p=x1*(-1);
                 }
                 
                 if (x1<0)
                 {

                // si es negativo al multiplicarse en (x2-(-x1)) cambiara a positivo y lo almaceno en nueva variable p
                     p=x1;
                     }
                     
                     
                     if (y1>0)
                     {
            
              // si es positivo, no lo afecta el sigono de (y2-y1) y al pasar a la derecha de (y2-y1) cambiara a positivo y lo almaceno en nueva variable q
                     q=y1;
                 }
                 
                 else
                 {
                    // si es negativo, su signo cambia a positivo en (y2-(-y1)) al pasar a la derecha de (y2-y1) cambiara a negativo y lo almaceno en nueva variable q
                 q=y1*(-1);
                     }
     
       
       
         
      cout << "La ecuacion de la recta es y = " <<
         m << "x + " << ((m)*p)+q << endl;

      cin.get();
   }
    cin.get();
   return 0;
}
En línea

leosansan


Desconectado Desconectado

Mensajes: 1.314


Ver Perfil
Re: Ecuacion de la recta en c++
« Respuesta #3 en: 24 Febrero 2013, 22:51 pm »

este es el codigo completo pero no funciona si x1 es negativo, me da cualquier error. Donde me estoy equivocando


La forma más simple es:


Código
  1. y-y1=m(x-x1)
  2. y=mx+y1-mx1

Y si x1=x2 o y1=y2 hay ecuación:

Código
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5.  
  6. int main(){
  7.  double x1,x2,y1,y2,m,p,q;
  8.  
  9.  cout << "Ingrese coordenada en x1 : ";
  10.  cin >> x1;
  11.  cout << "Ingrese coordenada en y1 :";
  12.  cin >> y1;
  13.  
  14.  cout << "Ingrese coordenada en x2 :";
  15.  cin >> x2;
  16.  cout << "Ingrese coordenada en y2 :";
  17.  cin >> y2;
  18.  
  19.  if ( x1==x2)
  20.    cout << "La ecuacion es: x="<<x1 <<endl;
  21.  else if ( y1==y2)
  22.    cout << "La ecuacion es: y="<<y1 <<endl;
  23.  else {
  24.  
  25.  m=(y2-y1)/(x2-x1);
  26.  
  27.  cout << "La ecuacion de la recta es y = " <<  m << "x + (" << -m*x1+y1 <<")" <<endl;
  28.  
  29.  cin.get();
  30.  }
  31.  cin.get();
  32.  return 0;
  33. }
  34.  

Saluditos!. ...
« Última modificación: 25 Febrero 2013, 23:46 pm por leosansan » En línea

chucho11028

Desconectado Desconectado

Mensajes: 3


Ver Perfil
Re: Ecuacion de la recta en c++
« Respuesta #4 en: 25 Febrero 2013, 03:33 am »

Saludos
Gracias por el apoyo pero si x1==x2 la pendiente no es posible ya que no puede dividir por 0.
Por otro lado la formula  m << "x + (" << -m*x1+y1 <<")" tiene el mismo problema que la mia ya que si y1 es negativo pasa como negativo al lado derecho debido a que multiplica el signo (y-(-y1)) pero en tu formula se mantiene como positivo segun -m*x1+y1.
Me puedes ayudar con esto? agradecido
En línea

leosansan


Desconectado Desconectado

Mensajes: 1.314


Ver Perfil
Re: Ecuacion de la recta en c++
« Respuesta #5 en: 25 Febrero 2013, 14:52 pm »

Saludos
Gracias por el apoyo pero si x1==x2 la pendiente no es posible ya que no puede dividir por 0.
Por otro lado la formula  m << "x + (" << -m*x1+y1 <<")" tiene el mismo problema que la mia ya que si y1 es negativo pasa como negativo al lado derecho debido a que multiplica el signo (y-(-y1)) pero en tu formula se mantiene como positivo segun -m*x1+y1.
Me puedes ayudar con esto? agradecido

* Si  x1==x2 la pendiente se considera infinita. Se trata de une recta vertical de ecuación x=constante, no se le aplica la fórmula de la pendiente. Ejecuta el código y verás que sale correcto.

*  El que y1 sea negativo no tiene significado especial a la hora de obtener la ecuación de la recta. Por ejemplo:

Código
  1. Ingrese coordenada en x1 : 2
  2. Ingrese coordenada en y1 :-3
  3. Ingrese coordenada en x2 :3
  4. Ingrese coordenada en y2 :6
  5. La ecuacion de la recta es y = 9x + (-21)

Otra cosa es que tú quieras con convertir  + (-21) en -21:

Código
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. int main(){
  5.  double x1,x2,y1,y2,m,p,q;
  6.  cout << "Ingrese coordenada en x1 : ";
  7.  cin >> x1;
  8.  cout << "Ingrese coordenada en y1 :";
  9.  cin >> y1;
  10.  cout << "Ingrese coordenada en x2 :";
  11.  cin >> x2;
  12.  cout << "Ingrese coordenada en y2 :";
  13.  cin >> y2;
  14.  if ( x1==x2)
  15.    cout << "La ecuacion es: x="<<x1 <<endl;
  16.  else if ( y1==y2)
  17.    cout << "La ecuacion es: y="<<y1 <<endl;
  18.  else {
  19.  m=(y2-y1)/(x2-x1);
  20.  if ( -m*x1+y1<0)
  21.    cout << "La ecuacion de la recta es y = " <<  m << " x " << -m*x1+y1 <<"" <<endl;
  22.  else
  23.    cout << "La ecuacion de la recta es y = " <<  m << " x + " << -m*x1+y1 <<"" <<endl;
  24.  cin.get();
  25.  }
  26.  cin.get();
  27.  return 0;
  28. }
  29.  


En cuyo caso obtendrás:

Código
  1. Ingrese coordenada en x1 : 2
  2. Ingrese coordenada en y1 :-3
  3. Ingrese coordenada en x2 :3
  4. Ingrese coordenada en y2 :6
  5. La ecuacion de la recta es y = 9x -21

Saluditos!. ...

P.D: Repasa lo de ecuaciones de la recta. ;)
« Última modificación: 25 Febrero 2013, 23:45 pm por leosansan » En línea

85

Desconectado Desconectado

Mensajes: 206



Ver Perfil WWW
Re: Ecuacion de la recta en c++
« Respuesta #6 en: 5 Marzo 2013, 04:53 am »

@leosansan te falta hacer el gráfico de la solución en Opengl y tu explicación sería lo más  ;D

http://recursostic.educacion.es/secundaria/edad/4esomatematicasB/ecuaciones/impresos/quincena4.pdf

« Última modificación: 5 Marzo 2013, 04:56 am por 85 » En línea

Me cerraron el Windows Live Spaces, entonces me creé un WordPress XD
http://etkboyscout.wordpress.com/
leosansan


Desconectado Desconectado

Mensajes: 1.314


Ver Perfil
Re: Ecuacion de la recta en c++
« Respuesta #7 en: 5 Marzo 2013, 16:43 pm »

@leosansan te falta hacer el gráfico de la solución en Opengl y tu explicación sería lo más  ;D


Soy más de usar el programa Mathematica para esas cosas, como ejemplo un cono dentro de un paraboloide:



Cuando me "entren" ganas me pondré a lo de la recta....

Hasta entonces a disfrutar de la anterior imagen.

Saluditos!.
...

« Última modificación: 6 Marzo 2013, 11:46 am por leosansan » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
una sencilla ecuacion « 1 2 3 4 »
Desafíos - Wargames
Og. 36 27,562 Último mensaje 19 Enero 2011, 18:46 pm
por Garfield07
Crear una linea recta de (x1,y1) hasta (x2,y2) (Ayuda)
Programación General
anonimo12121 1 2,799 Último mensaje 30 Enero 2012, 01:45 am
por Ferno
Linux Mint 13 “Maya” en la recta final. Presentada la versión candidata
Noticias
wolfbcn 0 2,230 Último mensaje 17 Mayo 2012, 21:48 pm
por wolfbcn
Solución a la ecuación...
Foro Libre
Perrito08 2 2,121 Último mensaje 20 Noviembre 2012, 22:51 pm
por Perrito08
Intersección de recta y punto
Programación C/C++
kaostias 4 3,785 Último mensaje 26 Noviembre 2013, 18:23 pm
por kaostias
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines