Задано случайное множество точек. Вычислить периметр четырехугольника - 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 вычисляется периметр четырехугольника, который, скорее всего, будет задан случайными точками. Список действий, выполняемых в коде:
- Запрос у пользователя количества точек (n).
- Создание двух массивов (x и y) для хранения координат точек.
- Инициализация переменных x1, y1, r1; x2, y2, r2; x3, y3, r3; p.
- Перебор всех точек.
- Для каждой точки пересчет радиуса-вектора относительно первой точки.
- Если новый радиус-вектор меньше текущего, обновление значений радиуса-вектора и координат точки.
- Пересчет радиуса-вектора относительно второй точки с условием, что точка не совпадает с первой и третьей точками.
- Если новый радиус-вектор меньше текущего и точка не совпадает с первой и второй точками, обновление значений радиуса-вектора и координат точки.
- Пересчет радиуса-вектора относительно третьей точки с условием, что точка не совпадает с первой, второй и третьей точками.
- Если новый радиус-вектор меньше текущего и точка не совпадает с первыми тремя точками, обновление значений радиуса-вектора и координат точки.
- Вычисление периметра четырехугольника по формуле: 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).
- Вывод на экран сообщения
Perimetr=
и значения переменной p.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д