Почувствуйте разницу!
Option Explicit
Rem 290.1. Даны декартовы координаты N точек на плоскости.
Rem Составить программы решения следующих задач.
Rem а) Найти две самые близкие друг к другу точки.
Rem б) Найти две самые удалённые друг от друга точки.
Rem в) Найти три точки, лежащие в вершинах треугольника
Rem с наибольшим периметром.
Rem г) Найти две ближайшие точки, отрезок между которыми может
Rem служить радиусом окружности, заключающей внутри себя все
Rem остальные точки. Указать, какая из них является центральной.
Private Sub C1_Click()
Rem Число точек
Dim N As Integer
N = 20
Rem Координаты точек
Dim x(20) As Integer, y(20) As Integer
Dim r(20, 20) As Single
Dim a As Integer, b As Integer, c As Integer, d As Integer
Dim g As String
Dim j As Single
Rem 1. Генерация точек
For a = 1 To N
x(a) = Rnd() * 100
y(a) = Rnd() * 100
g = "(" & x(a) & ", " & y(a) & ")"
Print g
Next
Rem 2. Расчёт расстояний между точками
For a = 1 To N
For b = 1 To N
c = x(a) - x(b)
d = y(a) - y(b)
r(a, b) = Sqr(c * c + d * d)
Next
Next
Rem 3. Поиск минимального расстояния между точками
c = 1
d = 2
j = r(1, 2)
For a = 1 To N
For b = a + 1 To N
If r(a, b) < j Then
c = a
d = b
j = r(a, b)
End If
Next
Next
g = "1. Минимум: r (" & c & ", " & d & ") = " & j & "."
Print g
Rem 4. Поиск максимального расстояния между точками
c = 1
d = 2
j = r(1, 2)
For a = 1 To N
For b = a + 1 To N
If r(a, b) > j Then
c = a
d = b
j = r(a, b)
End If
Next
Next
g = "2. Максимум: r (" & c & ", " & d & ") = " & j & "."
Print g
End Sub
Присоединяйтесь — мы покажем вам много интересного
Присоединяйтесь к ОК, чтобы подписаться на группу и комментировать публикации.
Комментарии 3