Форум программистов, компьютерный форум, киберфорум
QBasic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.88/8: Рейтинг темы: голосов - 8, средняя оценка - 4.88
0 / 0 / 0
Регистрация: 22.12.2021
Сообщений: 6

Подсчитать количество точек множества, находящихся внутри этого треугольника

22.12.2021, 21:02. Показов 1736. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Задано случайное множество точек. Найти и построить треугольник самой большой площади с вершинами в заданных точках. Подсчитать количество точек множества, находящихся внутри этого треугольника.(нужна помощь с этой частью)

Добавлено через 1 час 19 минут
Проблема именно в (Подсчитать количество точек множества, находящихся внутри этого треугольника). Не выходит, сделайте подсказку, может получится.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
22.12.2021, 21:02
Ответы с готовыми решениями:

Подсчитать количество точек множества, находящихся внутри этого треугольника
Задано случайное множество точек. Найти две точки из заданного множества, расстояние между которыми самое большое и построить треугольник...

Из множества точек выбрать такие три точки А, В, С, чтобы внутри треугольника АВС содержалось максимальное количество точек этого множества
Из заданного множества точек на плоскости выбрать такие три точки А, В, С, чтобы внутри треугольника АВС содержалось максимальное...

Подсчитать количество точек с целочисленными координатами, лежащих внутри этого треугольника...
Целые точки Ограничение времени 1 секунда Ограничение памяти 64Mb Ввод стандартный ввод или input.txt Вывод стандартный вывод или...

8
0 / 0 / 0
Регистрация: 22.12.2021
Сообщений: 6
23.12.2021, 12:27  [ТС]
Почему-то Def невоспринимает
0
Кормпилятор
 Аватар для Quiet Snow
5044 / 1718 / 409
Регистрация: 25.04.2010
Сообщений: 4,827
Записей в блоге: 2
23.12.2021, 15:29
Цитата Сообщение от artem2956 Посмотреть сообщение
Подсчитать количество точек множества, находящихся внутри этого треугольника
Попробуй теорему расстояния от точки до прямой. Линейная алгебра.

Цитата Сообщение от artem2956 Посмотреть сообщение
Def невоспринимает
Делай как человек, есть процедура - SUB, есть функция - FUNCTION. Тебе нужна FUNCTION.
DEF FN больше для упрощёнки, у тебя не тот случай.
0
0 / 0 / 0
Регистрация: 22.12.2021
Сообщений: 6
23.12.2021, 22:54  [ТС]
QBasic/QuickBASIC
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
CLS
RANDOMIZE TIMER
SCREEN 12
10 INPUT "Kilkist tochok n="; n
IF n < 0 THEN 10
IF n <> INT(n) THEN 10
DIM x(1 TO n)
DIM y(1 TO n)
Xmin = 0
Xmax = 1000
Ymin = 0
Ymax = 1000
VIEW (20, 20)-(450, 450), , 2
WINDOW (Xmin, Ymin)-(Xmax, Ymax)
FOR i = 1 TO n
    x(i) = INT(Xmin + RND * (Xmax - Xmin))
    y(i) = INT(Ymin + RND * (Ymax - Ymin))
    PSET (x(i), y(i)), 3
NEXT
 
smax = 0
FOR i = 1 TO n
    FOR j = 1 TO n
        FOR k = 1 TO n
            s = ABS((x(i) - x(j)) * (y(i) + y(j)) + (x(j) - x(k)) * (y(j) + y(k)) + (x(k) - x(i)) * (y(k) + y(i))) / 2
            IF smax < s THEN
                smax = s
                X1 = x(i): Y1 = y(i)
                X2 = x(j): Y2 = y(j)
                X3 = x(k): Y3 = y(k)
            END IF
        NEXT k
    NEXT j
NEXT i
PRINT "Smax="; smax / 2
 
LINE (X1, Y1)-(X2, Y2), 12
LINE (X2, Y2)-(X3, Y3), 14
LINE (X3, Y3)-(X1, Y1), 10
 
k = 0
FOR i = 1 TO n
    k = k + s(X1, Y1, X2, Y2, X3, Y3, x(i), y(i))
NEXT i
 
PRINT "KOLICHESTVO TOCHEK ="; k - 2
 
END
Сделал так, сказали туфта ,нужно через площадь 4-рех треугольников ,что-бы найти количество точек внутри ,теперь сижу и думаю

Добавлено через 2 минуты
Спасибо за помощь , возможно есть советы по сообщению которое я скинул.

Добавлено через 5 часов 15 минут
QBasic/QuickBASIC
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
CLS
RANDOMIZE TIMER
SCREEN 12
10 INPUT "Kilkist tochok n="; n
IF n < 0 THEN 10
IF n <> INT(n) THEN 10
DIM x(1 TO n)
DIM y(1 TO n)
Xmin = 0
Xmax = 1000
Ymin = 0
Ymax = 1000
VIEW (20, 20)-(450, 450), , 2
WINDOW (Xmin, Ymin)-(Xmax, Ymax)
FOR i = 1 TO n
    x(i) = INT(Xmin + RND * (Xmax - Xmin))
    y(i) = INT(Ymin + RND * (Ymax - Ymin))
    PSET (x(i), y(i)), 3
NEXT
 
smax = 0
a = 0
FOR i = 1 TO n
    FOR j = 1 TO n
        FOR k = 1 TO n
            FOR h = 1 TO n
 
                a1 = SQR((x(i) - x(j)) ^ 2 + (y(i) - y(j)) ^ 2)
                b1 = SQR((x(j) - x(k)) ^ 2 + (y(j) - y(k)) ^ 2)
                c1 = SQR((x(k) - x(i)) ^ 2 + (y(k) - y(i)) ^ 2)
                p12 = a1 + b1 + c1
                p1 = p12 / 2
                s1 = SQR(p1 * (p1 - a1) * (p1 - b1) * (p1 - c1))
                IF smax < s1 THEN
                    smax = s1
                    X1 = x(i): Y1 = y(i)
                    X2 = x(j): Y2 = y(j)
                    X3 = x(k): Y3 = y(k)
 
 
                    a2 = SQR((x(i) - x(j)) ^ 2 + (y(i) - y(j)) ^ 2)
                    b2 = SQR((x(j) - x(h)) ^ 2 + (y(j) - y(h)) ^ 2)
                    c2 = SQR((x(h) - x(i)) ^ 2 + (y(h) - y(i)) ^ 2)
                    p22 = a2 + b2 + c2
                    p2 = p22 / 2
                    s2 = SQR(p2 * (p2 - a2) * (p2 - b2) * (p2 - c2))
 
                    a3 = SQR((x(i) - x(h)) ^ 2 + (y(i) - y(h)) ^ 2)
                    b3 = SQR((x(h) - x(k)) ^ 2 + (y(h) - y(k)) ^ 2)
                    c3 = SQR((x(k) - x(i)) ^ 2 + (y(k) - y(i)) ^ 2)
                    p32 = a3 + b3 + c3
                    p3 = p32 / 2
                    s3 = SQR(p3 * (p3 - a3) * (p3 - b3) * (p3 - c3))
 
                    a4 = SQR((x(h) - x(j)) ^ 2 + (y(h) - y(j)) ^ 2)
                    b4 = SQR((x(j) - x(k)) ^ 2 + (y(j) - y(k)) ^ 2)
                    c4 = SQR((x(k) - x(h)) ^ 2 + (y(k) - y(h)) ^ 2)
                    p42 = a4 + b4 + c4
                    p4 = p42 / 2
                    s4 = SQR(p4 * (p4 - a4) * (p4 - b4) * (p4 - c4))
 
                    X4 = x(h): Y4 = y(h)
                    IF ABS(s2 + s3 + s4) = s1 THEN a = a + 1
 
                END IF
            NEXT h
        NEXT k
    NEXT j
NEXT i
 
PRINT "KILKIS TOCHOK ="; a
 
PRINT "Smax="; smax / 2
 
LINE (X1, Y1)-(X2, Y2), 12
LINE (X2, Y2)-(X3, Y3), 14
LINE (X3, Y3)-(X1, Y1), 10
 
END
Вот переделал ,но оно неправильно считает в чем проблема?
0
Кормпилятор
 Аватар для Quiet Snow
5044 / 1718 / 409
Регистрация: 25.04.2010
Сообщений: 4,827
Записей в блоге: 2
24.12.2021, 17:30
сказали туфта
Всмысле туфта? Тебе дали задачу, если ты её решил - то это не туфта, а решение поставленной задачи.
Код твой не смотрел если чё, сейчас в инактиве и на геометрию не настроен, но константы я бы на твоём месте
в экран вписал, 12-й режим 640x480. Без VIEW и WINDOW.

Школа\ВУЗ? Если вуз, то я в ахуе.

Добавлено через 13 минут
Это чё за задача вообще, кто тебе её дал? Следы ведут к mccme.
Думаешь за тебя будут решать олимпиадники? А совесть есть?
Обычные рядовые преподы такое не дают.
0
0 / 0 / 0
Регистрация: 22.12.2021
Сообщений: 6
24.12.2021, 22:51  [ТС]
Та если бы не давали ,Да это вуз "КПИ", причем информатика только 1 семестр да еще и зачет, а не экзамен .Так и живем . Но спасибо за помощь и подсказки. Далее сам разберусь.
0
Кормпилятор
 Аватар для Quiet Snow
5044 / 1718 / 409
Регистрация: 25.04.2010
Сообщений: 4,827
Записей в блоге: 2
25.12.2021, 05:53
Цитата Сообщение от artem2956 Посмотреть сообщение
,Да это вуз "КПИ"
В нормальном ВУЗ-е преподы принимают любые верные решения. Это только в школе они
"действуют по плану". Это сокрушаюсь по поводу "площадь 4-рех треугольников", это тупо головоломка,
но наверное есть литература в которой это хоть как-то объясняется. Тупо решить задачу можно через
озвученный метод и формулу площади треугольника. Решение хуже от этого не станет.
Грубо говоря у тебя может быть 2 функции
1) в параметры уходят координаты треугольника. Возвращает площадь.
2) в параметры уходят координаты треугольника. Возвращает кол-во точек.
Заправляешь их в тройной цикл.

В тройном цикле не увидел условия неуникальности. Частично это можно сделать условием
чтобы точки i, j, k не совпадали, полностью же - только заполнять массив и проверять совпадения,
но смысла судя по условию задачи в полной проверке особого нет, проще отщёлкать дубликаты
по формулам, чем отсеивать. Частичную проверку сделать можно т.к. совпадающие вершины тупо
не дадут треугольник(нулевая площадь) и проверять их смысла нет.
Можно ещё сделать функцию в которую уходят координаты отрезка и точка, а возвращает положение
точки относительно отрезка, чтобы использовать её во второй функции и привести в порядок код.
Это учебная задача, тут можно.
0
COM‐пропагандист
 Аватар для Замабувараев
936 / 785 / 149
Регистрация: 18.12.2014
Сообщений: 2,256
Записей в блоге: 4
25.12.2021, 06:29
Цитата Сообщение от Quiet Snow Посмотреть сообщение
В нормальном ВУЗ-е преподы принимают любые верные решения
Нет, не любые.
У меня, например, не принимали решения с оформлением не по правилам. Например, без форматирования, с несколькими операторами на одной строке, с переменными типа a, b, c, d, e, f, g, h, с транслитерацией имён в коде.

А вообще на любой работе за код оформленный не по стилю корпорации, сразу же делают предупреждение, а на второй раз — увольняют.
0
Кормпилятор
 Аватар для Quiet Snow
5044 / 1718 / 409
Регистрация: 25.04.2010
Сообщений: 4,827
Записей в блоге: 2
25.12.2021, 10:38
Цитата Сообщение от Замабувараев Посмотреть сообщение
Нет, не любые.
Ключевое слово в нормальном, где нормальные преподы, которые понимают что главное сделанная задача,
а не то как она сделана. Если человек может сделать задачу - это уже о многом говорит, остальное условности.

Добавлено через 27 минут
Цитата Сообщение от Замабувараев Посмотреть сообщение
с переменными типа a, b, c, d, e, f, g
Для студ задач:
i, j, k - классические именования счётчиков, n - размерность. Тут проблем нет.
a, b, c, d, e, f, g - да, действительно хреново, тут работает закономерность: чем больше таких переменных
тем тяжелее колупаться.

И о формировании кодстайла у зелёных студиков речи не идёт. И объясню почему,
чтобы кодстайл сформировать нужно много лет потратить, написать проектов 5 минимум, неплохих таких.
Тут важен личный стиль, который если говно - то никакой корпоративный не поможет.
И там важны совершенно другие аспекты. Чтобы написанный код потом люди смогли
прочитать, чтобы была документация, дабы не только прочитать, а ещё и понять.
Если мне дадут 2 кода, один без транслитерации и без документации, а второй с транслитерацией
и с документацией, то однозначно выберу второй вариант без мельчайших раздумий и
большинство адекватных программистов сделают тоже самое. Потому что разбор кода
это не только прочитать, а ещё и разобрать алгоритм. Имена переменных вообще зависят больше от
документации, если идёт транслит, то это означает, что оно либо не обдумывалось либо автор просто
забил на данный аспект для собственного удобства. Да и вообще главное написать, рефакторить
можно в любое время, это пресловутый "мастеринг", "finalize". Подбор коротких, ёмких и красивых
имён переменных это непростая задача, если у человека есть словарный запас и он быстро
это может делать во время кодирования - значит молодец, остальным "гугл транслейтерам"
я бы рекомендовал на это не отвлекаться во избежание опростоволошивания.

Цитата Сообщение от Замабувараев Посмотреть сообщение
А вообще на любой работе за код оформленный не по стилю корпорации, сразу же делают предупреждение, а на второй раз — увольняют.
За всех бы говорить не стал по поводу одинаковости предписаний. Если компания международная
то это одно, если это какая-то частная контора - там может быть всё что угодно.
Главное как поставлен рабочий процесс.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
25.12.2021, 10:38
Помогаю со студенческими работами здесь

Из заданного множества точек на плоскости выбрать три разные точки А В С так, чтобы внутри треугольника АВС содержалось максимальное количество точек.
Помогите написать программный модуль для решения задачи. Из заданного множества точек на плоскости выбрать три разные точки А В С так,...

как на построенном треугольнике в IMAGE,подсчитать количество точек,находящихся снаружи треугольника?
Ребят как на построенном треугольнике в IMAGE,подсчитать количество точек,находящихся снаружи треугольника?Чтобы вывел эти точки на...

Подсчитать количество точек с целочисленными координатами внутри треугольника
Помогите решить, а то я совсем запутался Равнобедренный треугольник задан на плоскости основанием и высотой, опущенной на...

Выбрать из множества три разные точки так, чтобы внутри треугольника содержалось максимальное количество точек
Задача такова : Из заданного множества точек на плоскости выбрать три разные точки А В С так, чтобы внутри треугольника АВС содержалось...

Подсчитать число точек находящихся внутри круга радиусом R с центром в точке с координатами (1, 1). Координаты точек заданы массивами (X1,X2, , Xn),
помогите решить, пожалуйста! Подсчитать число точек находящихся внутри круга радиусом R с центром в точке с координатами (1, 1)....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! */ #include <iostream> #include <stack> #include <cctype>. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru