Написать процедуру, определяющую между какими из пар точек самое большое расстояние - Visual Basic .NET
Формулировка задачи:
На плоскости заданы своими координатами n точек. Написать процедуру, определяющую между какими из пар точек самое большое расстояние. Указание: координаты точек занести в массив.
Совсем не догоняю,помогите пожалуйста.
Решение задачи: «Написать процедуру, определяющую между какими из пар точек самое большое расстояние»
textual
Листинг программы
Public Structure pInfo Public p1 As Integer Public p2 As Integer Public dm As Double Public Sub New(ByVal pp1 As Integer, ByVal pp2 As Integer, ByVal dd As Double) p1 = pp1 p2 = pp2 dm = dd End Sub End Structure Private Sub findMax Dim points() As Point = {New Point(10, 20), New Point(10, 50), New Point(30, 25), New Point(50, 70)} Dim mx As New List(Of pInfo) For i = 0 To points.Length - 2 For j = i + 1 To points.Length - 1 mx.Add(New pInfo(i, j, getDm0(points(i), points(j)))) Next Next Dim tm() As pInfo = (From t In mx Select t Where t.dm = mx.Max(Function(d) d.dm) Select t).ToArray MsgBox(tm(0).p1 & " - " & tm(0).p2 & vbCrLf & Math.Sqrt(tm(0).dm)) End Sub Private Function getDm0(ByVal p1 As Point, ByVal p2 As Point) As Double Dim d1 As Double = (p1.X - p2.X) ^ 2 Dim d2 As Double = (p1.Y - p2.Y) ^ 2 Return d1 + d2 End Function
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д