Написать процедуру, определяющую между какими из пар точек самое большое расстояние - 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

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

9   голосов , оценка 3.889 из 5
Похожие ответы