-->
当前位置:首页 > 题库 > 正文内容

编程题:点线形系列4-凸四边形的计算

Luz3年前 (2022-04-19)题库734

[点线形系列4-四边形题目说明.pdf](~/a0811a0d-75e7-40a0-8bc4-67df62b2d9f1.pdf)
用户输入一组选项和数据,进行与四边形有关的计算。
以下四边形顶点的坐标要求按顺序依次输入,连续输入的两个顶点是相邻顶点,第一个和最后一个输入的顶点相邻。
选项包括:
1:输入四个点坐标,判断是否是四边形、平行四边形,判断结果输出true/false,结果之间以一个英文空格符分隔。
2:输入四个点坐标,判断是否是菱形、矩形、正方形,判断结果输出true/false,结果之间以一个英文空格符分隔。 若四个点坐标无法构成四边形,输出"not a quadrilateral"
3:输入四个点坐标,判断是凹四边形(false)还是凸四边形(true),输出四边形周长、面积,结果之间以一个英文空格符分隔。 若四个点坐标无法构成四边形,输出"not a quadrilateral"
4:输入六个点坐标,前两个点构成一条直线,后四个点构成一个四边形或三角形,输出直线与四边形(也可能是三角形)相交的交点数量。如果交点有两个,再按面积从小到大输出四边形(或三角形)被直线分割成两部分的面积(不换行)。若直线与四边形或三角形的一条边线重合,输出"The line is coincide with one of the lines"。若后四个点不符合四边形或三角形的输入,输出"not a quadrilateral or triangle"。
后四个点构成三角形的情况:假设三角形一条边上两个端点分别是x、y,边线中间有一点z,另一顶点s:
1)符合要求的输入:顶点重复或者z与xy都相邻,如x x y s、x z y s、x y x s、s x y y。此时去除冗余点,保留一个x、一个y。
2) 不符合要求的输入:z 不与xy都相邻,如z x y s、x z s y、x s z y
5:输入五个点坐标,输出第一个是否在后四个点所构成的四边形(限定为凸四边形,不考虑凹四边形)或三角形(判定方法见选项4)的内部(若是四边形输出in the quadrilateral/outof the quadrilateral,若是三角形输出in the triangle/outof the triangle)。如果点在多边形的某条边上,输出"on the triangle或者on the quadrilateral"。若后四个点不符合四边形或三角形,输出"not a quadrilateral or triangle"。


### 输入格式:

基本格式:选项+":"+坐标x+","+坐标y+" "+坐标x+","+坐标y。点的x、y坐标之间以英文","分隔,点与点之间以一个英文空格分隔。


### 输出格式:

基本输出格式见每种选项的描述。
异常情况输出:
如果不符合基本格式,输出"Wrong Format"。
如果符合基本格式,但输入点的数量不符合要求,输出"wrong number of points"。
注意:输出的数据若小数点后超过3位,只保留小数点后3位,多余部分采用四舍五入规则进到最低位。小数点后若不足3位,按原始位数显示,不必补齐。例如:1/3的结果按格式输出为 0.333,1.0按格式输出为1.0

选项1、2、3中,若四边形四个点中有重合点,输出"points coincide"。
选项4中,若前两个输入线的点重合,输出"points coincide"。

### 输入样例1:

选项1,点重合。例如:

in
1:-1,-1 -1,-1 1,2 1,-2


### 输出样例:

在这里给出相应的输出。例如:

out
points coincide


### 输入样例2:

不符合基本格式。例如:

in
1:-1,-1 1,2 -1,1 ++1,0


### 输出样例:

在这里给出相应的输出。例如:

out
Wrong Format


### 输入样例3:

选项1,输入点数量不对。例如:

in
1:-1,-1 -1,2


### 输出样例:

在这里给出相应的输出。例如:

out
wrong number of points


### 输入样例4:

选项1,正确输入判断。例如:

in
1:-1,-1 -1,1 1,2 1,-2


### 输出样例:

在这里给出相应的输出。例如:

out
true false


### 输入样例5:

选项2,输入点不构成四边形。例如:

in
2:10,10 1,1 0,0 1,20


### 输出样例:

在这里给出相应的输出。例如:

out
not a quadrilateral


### 输入样例6:

选项2,正方形。例如:

in
2:0,0 0,80 80,80 80,0


### 输出样例:

在这里给出相应的输出。例如:

out
true true true



### 输入样例7:

选项2。例如:

in
2:0,0 -10,80 0,160 -10,80


### 输出样例:

在这里给出相应的输出。例如:

out
not a quadrilateral

### 输入样例8:

选项3,凸四边形。例如:

in
3:-1,-1 -1,1 1,2 1,-2


### 输出样例:

在这里给出相应的输出。例如:

out
true 10.472 6.0


### 输入样例9:

选项3,。例如:

in
3:0,0 -10,100 0,99 10,100


### 输出样例:

在这里给出相应的输出。例如:

out
false 221.097 990.0


其余样例,详见附件。






答案:若无答案欢迎评论

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。