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

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

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

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

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

textual
Листинг программы
  1. DEFSNG P, R, X-Y
  2. DEFINT I-J, N
  3. CLS
  4. DO
  5. INPUT "Vvedite kolichestvo tochek (N > 2)"; n
  6. LOOP WHILE n < 3
  7. DIM x(n)
  8. DIM y(n)
  9. RANDOMIZE TIMER
  10.  
  11. FOR i = 1 TO n
  12.    x(i) = 20 * RND
  13.    y(i) = 20 * RND
  14. NEXT i
  15. x1 = 0: y1 = 0: r1 = 0
  16. x2 = 0: y2 = 0: r2 = 0
  17. x3 = 0: y3 = 0: r3 = 0
  18.  
  19. FOR i = 1 TO n
  20.    r = SQR(x(i) ^ 2 + y(i) ^ 2)
  21.    IF r1 < r THEN
  22.       r1 = r
  23.       x1 = x(i)
  24.       y1 = y(i)
  25.    END IF
  26. NEXT i
  27.  
  28. FOR i = 1 TO n
  29.    r = SQR(x(i) ^ 2 + y(i) ^ 2)
  30.    IF (r2 < r) AND (x1 <> x(i)) AND (y1 <> y(i)) THEN
  31.       r2 = r
  32.       x2 = x(i)
  33.       y2 = y(i)
  34.    END IF
  35. NEXT i
  36.  
  37. FOR i = 1 TO n
  38.    r = SQR(x(i) ^ 2 + y(i) ^ 2)
  39.    IF (r3 < r) AND x1 <> x(i) AND x2 <> x(i) AND y1 <> y(i) AND y2 <> y(i) THEN
  40.       r3 = r
  41.       x3 = x(i)
  42.       y3 = y(i)
  43.    END IF
  44. NEXT i
  45.  
  46. p = 0
  47. 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)
  48. PRINT "Perimetr="; p
  49. 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

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы