#include<iostream>
#include<cmath>
using namespace std;

class line
{
    int m;
    int c;
public:
    line(){m=0,c=0;};
    line(int x,int y);
    void perpendicular(int a, int b);
    float perpendicularDistance(line A);
    void intersectionPoint(int p,int q);

};

line::line(int x,int y)
{
    m=x;
    c=y;
    cout<< "y= "<<m<<"x+"<<c<<endl;
}

void line::perpendicular(int a, int b)
{
    float m1=-(1/a);             //m1=slope of the perpendicular line
    float k=(m*b)+a;        //k=constant of the perpendicular line
cout<<"y= "<<m1<<"x+"<<k<<endl;
}

float line::perpendicularDistance(line A)
{
    int a,b;
    cin>>a;
    cin>>b;

    float X=(m*a);
    float Y=b;
    float distance=(-X+Y-c)/(sqrt(m*m+1*1));

    return abs(distance);
}

void  line::intersectionPoint(int p,int q)
{
    int x1,y1;

    x1=(-q+c)/(-m+p);
    y1=((c*p)-(q*m))/(-c+p);

    cout<< "("<<x1<< ","<<y1<< ")\n";
}


int main()
{
    int x,y;
    cout<< "enter value of m & c\n";
    cin>>x;
    cin>>y;
    cout<< "Equation: ";
    line A(x,y);

    cout << endl<< "For Perpendicular Distance enter (x,y)"<<endl;
    cout<<"Distance= "<<A.perpendicularDistance(A)<<" Units"<<endl;

    int a,b;
    cout<< endl<<"For Perpendicular Equation enter (a,b)"<<endl;
    cin>>a;
    cin>>b;
    cout<< "Perpendicular Equation: ";
    A.perpendicular(a,b);
    cout<< "\nFor Intersection Point enter another lines m & c"<<endl;

    int p,q;
    cin>>p;
    cin>>q;
    cout<< "Equation: ";
    line B(p,q);

    cout<< "Intersection Point is: ";
    A.intersectionPoint(p,q);


return 0;
}


