Подсчитать количество точек множества, находящихся внутри этого треугольника - QBasic
Формулировка задачи:
Задано случайное множество точек. Найти две точки из заданного множества, расстояние между которыми самое большое и построить треугольник между этими точками и правым верхним углом экрана. Подсчитать количество точек множества, находящихся внутри этого треугольника
Подсчитать количество точек , находящихся внутри этого треугольника
Решение задачи: «Подсчитать количество точек множества, находящихся внутри этого треугольника»
textual
Листинг программы
DEFSNG E, R-S, X-Y DEFINT F, I-K OPTION BASE 1 e = .00001 DEF FNF (x1, y1, x2, y2, x3, y3) FNF = ABS((x2 - x1) * (y3 - y1) - (x3 - x1) * (y2 - y1)) / 2 END DEF DEF FNN (x1, y1, x2, y2, x3, y3, x4, y4) FNN = 0 s1 = FNF(x1, y1, x2, y2, x4, y4) s2 = FNF(x1, y1, x3, y3, x4, y4) s3 = FNF(x2, y2, x3, y3, x4, y4) s4 = FNF(x1, y1, x2, y2, x3, y3) IF ABS(s1 + s2 + s3 - s4) < e THEN FNN = 1 END DEF RANDOMIZE TIMER CLS INPUT "Vvedite N"; n DIM x(n) DIM y(n) FOR i = 1 TO n x(i) = 10 * RND y(i) = 10 * RND NEXT i r0 = 0 x1 = x(1) y1 = y(1) x2 = x(2) y2 = y(2) FOR i = 1 TO n - 1 FOR j = i + 1 TO n r = SQR((x(i) - x(j)) ^ 2 + (y(i) - y(j)) ^ 2) IF r0 < r THEN r0 = r x1 = x(i) y1 = y(i) x2 = x(j) y2 = y(j) END IF NEXT j NEXT i k = 0 FOR i = 1 TO n k = k + FNN(x1, y1, x2, y2, 10, 0, x(i), y(i)) NEXT i SCREEN 12 WINDOW SCREEN (-1, -1)-(11, 11) LINE (0, 0)-(10, 10), 13, B FOR i = 1 TO n PSET (x(i), y(i)), 15 NEXT i LINE (x1, y1)-(x2, y2), 11 LINE (x1, y1)-(10, 0), 11 LINE (x2, y2)-(10, 0), 11 PRINT "KOLICHESTVO TOCHEK ="; k - 2 END
Объяснение кода листинга программы
Код решает задачу подсчета количества точек внутри треугольника, используя метод Гаусса. Список действий:
- Ввод числа N, которое определяет количество точек для проверки.
- Создание массивов x и y для хранения координат точек.
- Инициализация переменных x1, y1, x2, y2, которые будут использоваться для вычисления площади треугольника.
- Поиск треугольника с наибольшей площадью среди всех возможных комбинаций точек.
- Вычисление значения функции FNN для каждой точки, используя найденные координаты треугольника.
- Суммирование значений FNN для всех точек.
- Отображение точек на экране и вывод количества точек внутри треугольника.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д