问题 问答题

试题六:阅读以下说明和Java程序,填充程序中的空缺,将解答填入答题纸的对应栏内。

[说明]下面的程序用来计算并寻找平面坐标系中给定点中最近的点对(若存在多对,则输出其中的一对即可)。程序运行时,先输入点的个数和一组互异的点的坐标,通过计算每对点之间的距离,从而确定出距离最近的点对。例如,在图6-1所示的8个点中,点(1,1)与(2,0.5)是间距最近的点对。

 

[java代码]

 

答案

参考答案:

(1) GPoint[]

(2) new Gpoint()

(3) points.length 或numberOfPoints

(4) getDistance(points[i],points[j])

 (5) shortestDistance> tmpDistance

解析:

本题考查Java语言程序设计的能力,涉及类、对象、方法的定义和相关操作。要求考生根据给出的案例和执行过程说明,认真阅读理清程序思路,然后完成题 目。  先考察题目说明。计算平面或空间中点之间的距离是目前很多应用中需要的,如GPS计算等。本题目简化了点之间距离的要求,其主要任务是计算并寻找 平面坐标系中给定点中最近的点对(若存在多对,则输出其中的一对即可)。数轴上两点之间的距离等于相应两数差的绝对值,而平面坐标系中两点之间的距离等于 相应两点的横坐标差和纵坐标差的平方和的算数平方根。假设平面左边系中的两点P(x,y)和P(x,y),两者之间的距离。如题中图6-1所示的8个点中,点(1,1)和(2,0.5)之间的距离为 。   根据说明,点是一种类型,设计为类GPoint;寻找点之间的距离设计为类FindNearestPoints,整体主逻辑代码在其中的mam方法中 实现。类设计时,一般将属性设置为private,而对其的获取和更改等操作通过其中public方法进行。因此,在GPoint设计时,将x和y坐标设 计为private属性,将读取和设置x和y坐标的值设计相应的get和set方法;在设计寻找距离最近的点的类FindNearestPoints时, 其主要方法包括计算两个点之间的距离方法getDistance,将两个GPoint类的对象作为distance方法的参数传递。   FindNearestPoints中的mam方法执行控制流程,在程序运行时,先输入点的个数,创建相应大小的数组,再输入相应个数的一组互异的点的坐 标,将点保存在一个数组points中。Java中对象数组的创建方式为:  ClassName[] varName= new ClassName[numberOfArray];  或者:ClassName varName[]= new ClassName[numberOfArray];  然后输入相应个数的互异的点的坐标,存入点数组,然后通过计算每对点之间的距离,从而确定出距离 最近的点对。其计算方式是:预设定第一次参与运算的两个点之间的距离为最短距离,然后计算每一对点之间的距离,其计算过程为从第一个点开始依次和其后所有 的点之间调用两点之间距离计算函数计算其他点之间距离,每次计算和设定的最短距离进行比较,如果比当前最短距离短,则更新最短距离并记录相应的点。最后输 出所记录的最短距离和相应的点。  因此空(1)需要声明GPoint类型的对象数组,即为GPoint[];空(2)需要对数组中的每个对象进行初始 化,即new Gpoint();空(3)处判定是否所有与当前点还没有比较过的点之间的距离都计算完成,因为当前点和在数组前面的点的比较在前面计算时已经计算过,所 以从和后一个点计算直到数组的最后一个点计算完成,即j< points.length,即空(3)为points.length;空(4)处调用getDistance方法,计算当前循环的两个点之间的距离,即 getDistance(points[i], points[j]);空(5)处通过判定计算出的当前两个点之间的距离和当前最短距离,来判定是否需要更新当前最短距离,即 shortestDistance>tmpDistance。

判断题
判断题