首页 > 其他分享 >打卡第二十八天

打卡第二十八天

时间:2023-05-19 18:13:00浏览次数:41  
标签:return Point int double 第二十八 打卡 Line dist

计算点到直线的距离

一、

1.设计一个点类Point,它有2 个私有数据成员x和y,表示点的坐标

2.直线类Line,它有3 个私有数据成员a,b和c,表示直线方程ax+by+c= 0

3.构建友元函数dist,用于计算一个点到直线的距离

二、

三、

#include<iostream>
#include<cmath>
#include<iomanip>
using namespace std;
class Line;
class Point
{
int x,y;
public:
Point(int X=0,int Y=0)
{
x=X;y=Y;
}
int getx(){ return x; }
int gety(){ return y; }
friend double dist(Point &,Line &);
};
class Line
{
int a,b,c;
public:
Line(int A=1,int B=1,int C=1)
{
a=A,b=B;c=C;
}
int geta(){ return a; }
int getb(){ return b; }
int getc(){ return c; }
friend double dist(Point &,Line &);
};
double dist(Point &P,Line &L)
{
double s;
s=abs((L.a*P.x+L.b*P.y+L.c)/sqrt(L.a*L.a+L.b*L.b));
return s;
}
int main()
{
int A,B,a1,b1,c1;
cin>>A>>B;
cin>>a1>>b1>>c1;
Point P(A,B);
Line L(a1,b1,c1);
if (dist(P, L) == 0)
cout << "The distance is: 0";
else
cout << fixed << setprecision(2)<< "The distance is: " << dist(P, L);

}

四、

#include<iostream>
#include<cmath>
#include<iomanip>
using namespace std;
class Line;
class Point
{
int x,y;
public:
Point(int X=0,int Y=0)
{
x=X;y=Y;
}
int getx(){ return x; }
int gety(){ return y; }
friend double dist(Point &,Line &);
};
class Line
{
int a,b,c;
public:
Line(int A=1,int B=1,int C=1)
{
a=A,b=B;c=C;
}
int geta(){ return a; }
int getb(){ return b; }
int getc(){ return c; }
friend double dist(Point &,Line &);
};
double dist(Point &P,Line &L)
{
double s;
s=abs((L.a*P.x+L.b*P.y+L.c)/sqrt(L.a*L.a+L.b*L.b));
return s;
}
int main()
{
int A,B,a1,b1,c1;
cin>>A>>B;
cin>>a1>>b1>>c1;
Point P(A,B);
Line L(a1,b1,c1);
if (dist(P, L) == 0)
cout << "The distance is: 0";
else
cout << fixed << setprecision(2)<< "The distance is: " << dist(P, L);

}

 

标签:return,Point,int,double,第二十八,打卡,Line,dist
From: https://www.cnblogs.com/xscya/p/17415954.html

相关文章

  • 5.19打卡
    #include<iostream>usingnamespacestd;intgetpower(intx,inty){if(y<0)return0;elseif(y==0)return1;elseif(y==1)returnx;elsereturnx*getpower(x,y-1);}doublegetpower(d......
  • 建民打卡日记5.19
    一、问题描述月饼是中国人在中秋佳节时吃的一种传统食品,不同地区有许多不同风味的月饼。现给定所有种类月饼的库存量、总售价、以及市场的最大需求量,请你计算可以获得的最大收益是多少。注意:销售时允许取出一部分库存。样例给出的情形是这样的:假如我们有3种月饼,其库存量分别为......
  • 每日打卡,用到了set
    如果两个整数各位数字的和是一样的,则被称为是“朋友数”,而那个公共的和就是它们的“朋友证号”。例如123和51就是朋友数,因为1+2+3=5+1=6,而6就是它们的朋友证号。给定一些整数,要求你统计一下它们中有多少个不同的朋友证号。输入格式:输入第一行给出正整数N。随后一......
  • 每天打卡一小时 第三十天 贪心算法
     #include<bits/stdc++.h>usingnamespacestd;intfindContentChildren(vector<int>&children,vector<int>&cookies);intmain(){intn;cin>>n;vector<int>children(n);for(inti=0;i<n;i++)......
  • 编程打卡:面向对象程序设计测试
    #include<iostream>#include<iomanip>#include<string>#include<bitset>usingnamespacestd;intmain(){intx;cin>>oct>>x;cout<<dec<<x<<endl;cout<<setw(20)&l......
  • 打卡
    1.问题:输出所有的“水仙花数”。所谓“水仙花数”是指一个3位数,其各位数字立方之和等于该数本身。例如,153是一个水仙花数,因为153=1³+5³+3³。2.思路:水仙花数的解题思路是把给出的某个三位数的个位、十位、百位分别拆分,并求其立方和。3.程序流程图: 4.代码实现:#include<ios......
  • 5.18打卡
    一、实验内容定义一个Dog类,包括体重和年龄两个数据成员及其成员函数,声明一个实例dog1,体重5,年龄10,使用I/O流把dog1的状态写入磁盘文件。再声明一个实例dog2,通过读取文件dog1的状态赋给dog2。分别用文本方式和二进制方式操作文件。二、实验代码#include<bits/stdc++.h>usingna......
  • 5-18打卡
    递归写爬楼梯#include<stdio.h>//定义一个函数,用来打印每次爬的台阶数voidprint_steps(intsteps[],intn){printf("一种可能的方法是:");for(inti=0;i<n;i++){printf("%d",steps[i]);}printf("\n");}//定义一个递......
  • 每日打卡
    把真分数分解为埃及分数问题描述:古埃及人用的分数都是分子为一的分数,将真分数拆分成埃及分数问题分析:1如果分子为1直接输出2.分母是分子的倍数,化简后输出3.如果不能消去的话可以分出一个a/b+1和c出来代码:#include<stdio.h>intmain(){ longinta,b,c; printf("请输入a......
  • c++打卡练习(33)
    求一个真分数的埃及分数表示埃及分数是指只使用1作为分子的分数,例如8/11=1/2+1/5+1/55+1/110;流程图:伪代码:源代码:#include<iostream>usingnamespacestd;intmain(){ inta,b,c,i,j; cout<<"请输入一个真分数"<<endl; cin>>a; getchar(); cin>>b; if(a>b){ cout<<......