Задано случайное множество точек. Вычислить периметр четырехугольника - QBasic

Узнай цену своей работы

Формулировка задачи:

Задано случайное множество точек. Вычислить периметр четырехугольника вершины которого составляют начало координат и три точки из заданного множества точек, наиболее удаленные от начала координат. Долго мучаюсь и ничего не получается! Всем большое спасибо

Решение задачи: «Задано случайное множество точек. Вычислить периметр четырехугольника»

textual
Листинг программы
DEFSNG P, R, X-Y
DEFINT I-J, N
CLS
DO
INPUT "Vvedite kolichestvo tochek (N > 2)"; n
LOOP WHILE n < 3
DIM x(n)
DIM y(n)
RANDOMIZE TIMER
 
FOR i = 1 TO n
   x(i) = 20 * RND
   y(i) = 20 * RND
NEXT i
x1 = 0: y1 = 0: r1 = 0
x2 = 0: y2 = 0: r2 = 0
x3 = 0: y3 = 0: r3 = 0
 
FOR i = 1 TO n
   r = SQR(x(i) ^ 2 + y(i) ^ 2)
   IF r1 < r THEN
      r1 = r
      x1 = x(i)
      y1 = y(i)
   END IF
NEXT i
 
FOR i = 1 TO n
   r = SQR(x(i) ^ 2 + y(i) ^ 2)
   IF (r2 < r) AND (x1 <> x(i)) AND (y1 <> y(i)) THEN
      r2 = r
      x2 = x(i)
      y2 = y(i)
   END IF
NEXT i
 
FOR i = 1 TO n
   r = SQR(x(i) ^ 2 + y(i) ^ 2)
   IF (r3 < r) AND x1 <> x(i) AND x2 <> x(i) AND y1 <> y(i) AND y2 <> y(i) THEN
      r3 = r
      x3 = x(i)
      y3 = y(i)
   END IF
NEXT i
 
p = 0
p = p + SQR(x1 ^ 2 + y1 ^ 2) + SQR((x1 - x2) ^ 2 + (y1 - y2) ^ 2) + SQR((x2 - x3) ^ 2 + (y2 - y3) ^ 2) + SQR(x3 ^ 2 + y3 ^ 2)
PRINT "Perimetr="; p
END

Объяснение кода листинга программы

В этом коде на языке QBasic вычисляется периметр четырехугольника, который, скорее всего, будет задан случайными точками. Список действий, выполняемых в коде:

  1. Запрос у пользователя количества точек (n).
  2. Создание двух массивов (x и y) для хранения координат точек.
  3. Инициализация переменных x1, y1, r1; x2, y2, r2; x3, y3, r3; p.
  4. Перебор всех точек.
  5. Для каждой точки пересчет радиуса-вектора относительно первой точки.
  6. Если новый радиус-вектор меньше текущего, обновление значений радиуса-вектора и координат точки.
  7. Пересчет радиуса-вектора относительно второй точки с условием, что точка не совпадает с первой и третьей точками.
  8. Если новый радиус-вектор меньше текущего и точка не совпадает с первой и второй точками, обновление значений радиуса-вектора и координат точки.
  9. Пересчет радиуса-вектора относительно третьей точки с условием, что точка не совпадает с первой, второй и третьей точками.
  10. Если новый радиус-вектор меньше текущего и точка не совпадает с первыми тремя точками, обновление значений радиуса-вектора и координат точки.
  11. Вычисление периметра четырехугольника по формуле: p = sqrt(x1^2 + y1^2) + sqrt((x1 - x2)^2 + (y1 - y2)^2) + sqrt((x2 - x3)^2 + (y2 - y3)^2) + sqrt(x3^2 + y3^2).
  12. Вывод на экран сообщения Perimetr= и значения переменной p.

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


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

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

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