• 自考新教材-p90_5(3)


    源程序:

    #include <iostream>
    #include <math.h>
    using namespace std;
    class Point
    {
    private:
    float x, y;
    public:
    Point(float a, float b);
    float getX();
    float getY();
    void print();
    };
    Point::Point(float a, float b)
    {
    x = a;
    y = b;
    }
    float Point::getX()
    {
    return x;
    }
    float Point::getY()
    {
    return y;
    }
    void Point::print()
    {
    cout << "(" << "," << y << ")" << endl;
    }
    class Line
    {
    private:
    Point p1, p2;
    public:
    Line(Point &, Point &);
    friend float distance(Line &p, Point &q);

    double xielv()
    {
    return abs((p1.getY() - p2.getY())) / abs((p1.getX() - p2.getX()));
    }
    };
    Line::Line(Point &_p1, Point &_p2) :p1(_p1), p2(_p2)
    {
    //p1 = _p1;
    //p2 = _p2;
    }

    float distance(Line &p, Point &q)
    {
    float x1 = p.p1.getX();
    float y1 = p.p1.getY();
    float x2 = p.p2.getX();
    float y2 = p.p2.getY();
    float x = q.getX();
    float y = q.getY();
    return ((x - x1)*(y2 - y1) - (x2 - x1)*(y - y1)) / sqrt((x2 - x1)*(x2 - x1) + (y2 - y1)*(y2 - y1));
    }
    int main()
    {
    Point p1(2, 5);
    Point p2(7, 9);
    Point p(0, 0);
    Line L(p1, p2);
    cout << "直线的斜率为:"<<L.xielv() << endl;
    cout << "点p到直线的距离为:"<<distance(L, p) << endl;
    system("pause");
    return 1;
    }

    运行结果:

  • 相关阅读:
    DP 水题 最长不下降子序列
    数的划分
    水题------纪念品分组
    NY95 众数问题
    NY86 找球号(一)
    C3-Zexal的矩阵链乘
    C3-Zexal的多路流水线调度
    C4-Zexal的食物链
    C4-排列
    C3-炮弹杀伤力
  • 原文地址:https://www.cnblogs.com/duanqibo/p/12269779.html
Copyright © 2020-2023  润新知