Haga un algoritmo que determine los parámetros A, B y C de una recta que pasa por los
puntos (X1, Y1) y (X2, Y2).
La ecuación de la recta es:
AX + BY + C = 0.
#include <iostream>
//Se incluye la clase Recta para despues llamar a sus metodos
#include "Recta.h"
using namespace std;
int main(void)
{
//Se crea un objeto de la clase Recta (Instanciaciación)
Recta *obj = new Recta();
float x1,y1,x2,y2;//se definen 4 las variables de tipo float "x1", "y1", "x2", "y2".
cout << "Digite el valor de X1: ";//Se pide que se digite el valor de X1
cin >> x1;//se guarda el valor digitado en x1
obj->setX1(x1);//se llama el metodo modificador setX1() y se encapsula "x1"
cout << "Digite el valor de Y1: ";//Se pide que se digite el valor de Y1
cin >> y1;//se guarda el valor digitado en y1
obj->setY1(y1);//se llama el metodo modificador setY1() y se encapsula "y1"
cout << "Digite el valor de X2: ";//Se pide que se digite el valor de X2
cin >> x2;//se guarda el valor digitado en x2
obj->setX2(x2);//se llama el metodo modificador setX2() y se encapsula "x2"
cout << "Digite el valor de Y2: ";//Se pide que se digite el valor de Y2
cin >> y2;//se guarda el valor digitado en y2
obj->setY2(y2);//se llama el metodo modificador setY2() y se encapsula "y2"
//se llama al metodo para calcular el parametro de A
cout << "El valor de A es: " << obj->calcularA() << endl;
//se llama al metodo para calcular el parametro de B
cout << "El valor de B es: " << obj->calcularB() << endl;
//se llama al metodo para calcular el parametro de C
cout << "El valor de C es: " << obj->calcularC() << endl;
}
#ifndef RECTA_H
#define RECTA_H
class Recta
{
public:
Recta();
virtual ~Recta();
//Se definen los metodos publicos:
float calcularA();//calcularA() de tipo float para calcular el parametro A
float calcularB();//calcularB() de tipo float para calcular el parametro B
float calcularC();//calcularC() de tipo float para calcular el parametro C
//se definen los metodos Setter y Getters de los atributos de la clase:
//x1, y1, x2, y2, a, b, c
void setX1(float n);
float getX1();
void setY1(float n);
float getY1();
void setX2(float n);
float getX2();
void setY2(float n);
float getY2();
protected:
private:
//se definen los atributos privados:
float x1;//x1 de tipo float
float y1;//y1 de tipo float
float x2;//x2 de tipo float
float y2;//y2 de tipo float
};
#endif // RECTA_H
#include "Recta.h"
//Implementacion del metodo constructor de la clase
Recta::Recta()
{
//se le asigna valor 0 por defecto en el constructor a las variables, x1, y1, x2, y2
x1 = 0;
y1 = 0;
x2 = 0;
y2 = 0;
}
Recta::~Recta()
{
//dtor
}
//La formula para calcular estos parametros basicamente es esta:
// X-X1 Y-Y1
// ------ = ------
// X2-X1 Y2-Y1
//Implementacion del metodo para calcular el parametro A
float Recta::calcularA()
{
float a;
a = y2 - y1;
return a;
}
//Implementacion del metodo para calcular el parametro B
float Recta::calcularB()
{
float b;
b = x2 - x1;
return b;
}
//Implementacion del metodo para calcular el parametro C
float Recta::calcularC()
{
float c;
c = (-x1 * calcularA()) + (y1 * (x2 - x1));
return c;
}
//Implementacion de los metodos Setter y Getters de los atributos de la clase
void Recta::setX1(float n)
{
x1 = n;
}
float Recta::getX1()
{
return x1;
}
void Recta::setY1(float n)
{
y1 = n;
}
float Recta::getY1()
{
return y1;
}
void Recta::setX2(float n)
{
x2 = n;
}
float Recta::getX2()
{
return x2;
}
void Recta::setY2(float n)
{
y2 = n;
}
float Recta::getY2()
{
return y2;
}
//Se importa paquete "JOptionPane" para dibujar un cuadro de dialogo en pantalla
//que muestre información o para llenar información.
import javax.swing.JOptionPane;
public class Main
{
public static void main(String[] args)
{
//Se crea un objeto de la clase Recta (Instanciaciación)
Recta obj = new Recta();
//se definen 4 las variables de tipo float "x1", "y1", "x2", "y2".
float x1, y1, x2, y2;
//Se pide que se digite el valor de X1 y se guarda en la variable "x1" (Se convierte la variable a tipo float
//porque el metodo showInputDialog convierte el dato digitado a String)
x1 = Float.parseFloat(JOptionPane.showInputDialog(null, "Digite el valor de X1:"));
obj.setX1(x1);//se llama el metodo modificador setX1() y se encapsula "x1"
//Se pide que se digite el valor de Y1 y se guarda en la variable "y1"
y1 = Float.parseFloat(JOptionPane.showInputDialog(null, "Digite el valor de Y1:"));
obj.setY1(y1);//se llama el metodo modificador setY1() y se encapsula "y1"
//Se pide que se digite el valor de X2 y se guarda en la variable "x2"
x2 = Float.parseFloat(JOptionPane.showInputDialog(null, "Digite el valor de X2:"));
obj.setX2(x2);//se llama el metodo modificador setX2() y se encapsula "x2"
//Se pide que se digite el valor de Y2 y se guarda en la variable "y2"
y2 = Float.parseFloat(JOptionPane.showInputDialog(null, "Digite el valor de Y2:"));
obj.setY2(y2);//se llama el metodo modificador setY2() y se encapsula "y2"
//se llama al metodo para calcular el parametro de A
JOptionPane.showMessageDialog(null, "El valor de A es: " + obj.calcularA());
//se llama al metodo para calcular el parametro de B
JOptionPane.showMessageDialog(null, "El valor de B es: " + obj.calcularB());
//se llama al metodo para calcular el parametro de C
JOptionPane.showMessageDialog(null, "El valor de C es: " + obj.calcularC());
}
}
public class Recta
{
//se definen los atributos privados:
private float x1;//x1 de tipo float
private float y1;//y1 de tipo float
private float x2;//x2 de tipo float
private float y2;//y2 de tipo float
public Recta()
{
//se le asigna valor 0 por defecto en el constructor a las variables, x1, y1, x2, y2
x1 = 0;
y1 = 0;
x2 = 0;
y2 = 0;
}
//La formula para calcular estos parametros basicamente es esta:
// X-X1 Y-Y1
// ------ = ------
// X2-X1 Y2-Y1
//Implementacion del metodo para calcular el parametro A
public float calcularA()
{
float a;
a = y2 - y1;
return a;
}
//Implementacion del metodo para calcular el parametro B
public float calcularB()
{
float b;
b = x2 - x1;
return b;
}
//Implementacion del metodo para calcular el parametro C
public float calcularC()
{
float c;
c = (-x1 * calcularA()) + (y1 * (x2 - x1));
return c;
}
//Implementacion de los metodos Setter y Getters de los atributos de la clase
public void setX1(float n)
{
x1 = n;
}
public float getX1()
{
return x1;
}
public void setY1(float n)
{
y1 = n;
}
public float getY1()
{
return y1;
}
public void setX2(float n)
{
x2 = n;
}
public float getX2()
{
return x2;
}
public void setY2(float n)
{
y2 = n;
}
public float getY2()
{
return y2;
}
}