0 / 0 / 0
Регистрация: 07.12.2015
Сообщений: 3

Определить три точки, являющиеся вершинами треугольника, для которого разность точек вне его и внутри является

07.12.2015, 16:50. Показов 1273. Ответов 7

Студворк — интернет-сервис помощи студентам
Умоляю,помогите кто чем может(( Не получается решить задачу в visual basic: В одномерном массиве с четным количеством элементов (2N) находятся координаты N точек плоскости. Они располагаются в следующем порядке: x1, у1, х2, у2, x3, y3 и т.д. Определить три точки, являющиеся вершинами треугольника, для которого разность точек вне его и внутри является минимальной.
Нет,я не лентяйка, которая сидит и ждет решения на блюдечке и не обращалась бы ни к кому, если бы не такая ситуация(курсовая работа готова,кроме этой задачи,сижу над ней неделю и не выходит ничего,а сроки сдачи уже подходят).Пожалуйста,Если вы что-то знаете по этому поводу,прошу,помогите.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
07.12.2015, 16:50
Ответы с готовыми решениями:

Определить 3 точки, являющиеся вершинами треугольника, для которых разность точек вне е го и внутри является минимальной.
В одномерном массиве с четным количеством элементов(2n) находятся координаты n точек плоскости.Они распологаются в следующем порядке:x1...

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

Определить 3 точки, являющиеся вершинами треугольника
В одномерном массиве с чётным количеством элементов(2N) находится координаты N точек плоскости. Они располагаются в следующем порядке: x1,...

7
15155 / 6428 / 1731
Регистрация: 24.09.2011
Сообщений: 9,999
07.12.2015, 20:31
Цитата Сообщение от ulyana2608 Посмотреть сообщение
сижу над ней неделю и не выходит ничего
Цитата Сообщение от https://www.cyberforum.ru/announcement.php?a=3
Как можно более полно описывайте суть проблемы или вопроса, что было сделано для ее решения и какие результаты получены.
За неделю, наверно, хоть какие-нибудь наработки появились? Не обязательно код, но алгоритм решения? Как бы Вы решали эту задачу вручную (точки на листе бумаги)?
0
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38148 / 21084 / 4305
Регистрация: 12.02.2012
Сообщений: 34,658
Записей в блоге: 14
07.12.2015, 21:37
Примерно так:

Visual Basic
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
Private Coord(1 To 2000) As Double
 
Function Area(n1 As Integer, n2 As Integer, n3 As Integer) As Double
         x1# = Coord(2 * (n1 - 1) + 1)
         y1# = Coord(2 * (n1 - 1) + 2)
         x2# = Coord(2 * (n2 - 1) + 1)
         y2# = Coord(2 * (n2 - 1) + 2)
         x3# = Coord(2 * (n3 - 1) + 1)
         y3# = Coord(2 * (n3 - 1) + 2)
         Area = Abs(0.5 * ((x1# - x3#) * (y2# - y3#) - (x2# - x3#) * (y1# - y3#)))
End Function
 
Sub Search(n As Integer)
 
    Min% = n
    p1% = 0
    p2% = 0
    p3% = 0
 
    For i1% = 1 To n - 2
    
        For i2% = i1% + 1 To n - 1
        
            For i3% = i2% + 1 To n
            
                '::: Проверка, образуют ли точки i1,i2,i3 треугольник
                
                A# = Area(i1%, i2, i3)
                
                If A# > 0 Then '::: Да
                
                   in_point% = 0
                   
                   out_point% = 0
                   
                   For j% = 1 To n  '::: Перебираем все остальные точки
                   
                       If (j% <> i1%) And (j% <> i2%) And (j% <> i3%) Then
                   
                          A1# = Area(j%, i2%, i3%)
                          A2# = Area(i1%, j%, i3%)
                          A3# = Area(i1%, i2%, j%)
                   
                          '::: Точка внутри или вовне
                   
                          If A1# + A2# + A3# > A# Then
                             out_point% = out_point% + 1
                          Else
                             in_point% = in_point% + 1
                          End If
                   
                       End If
                
                   Next j%
                   
                   diff% = Abs(in_point% - out_point%)
                   
                   If diff% < Min% Then
                      Min% = diff%
                      p1% = i1%
                      p2% = i2%
                      p3% = i3%
                   End If
                                   
                End If
                        
            Next i3%
            
        Next i2%
        
    Next i1%
 
    Debug.Print p1%; " "; p2%; " "; p3%
    
End Sub
Массив Coord нужно заполнить и вызвать Search. Не проверял работу...
1
0 / 0 / 0
Регистрация: 07.12.2015
Сообщений: 3
08.12.2015, 17:07  [ТС]
Казанский, В том и дело,что я даже не представляю алгоритма. Есть начало,да :
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
Private Sub Кнопка2_Click() 
Dim a() As Integer, i As Integer, j As Integer, K As Integer, N As Integer
N = InputBox(" введите кол-во элементов ") 
m = 2 * N 
 
ReDim a(m) 
Randomize 
str = " " 
For i = 1 To m 
a(i) = Int(10 * Rnd + 1) + Int(-10 * Rnd + 1) 
str = str & a(i) & " " 
Next 
MsgBox ("Элементы массива : " & str)
Далее я стала искать методы определения положения точек(вне,внутри,либо на стороне треугольника),нашла такую формулу :
"Математическая часть - векторное и псевдоскалярное произведения.
Реализация - считаются произведения (1, 2, 3 - вершины треугольника, 0 - точка):
(x1 - x0) * (y2 - y1) - (x2 - x1) * (y1 - y0)
(x2 - x0) * (y3 - y2) - (x3 - x2) * (y2 - y0)
(x3 - x0) * (y1 - y3) - (x1 - x3) * (y3 - y0)"
далее пытаюсь работать с этим ,но он неправильно выдает...
Вы понимаете,если бы были хорошие наброски,я бы скорее уже догнала,если я сюда написала,значит мало в этом смыслю. Преподаватель очень странный,не объясняет как делать,мы просто на занятии переписываем предоставленный им код.Согласитесь,не лучший метод научить студентов работать с программой. А курсовую сдать надо. С другими задачами я разобралась,но так как раньше никогда не работала с бэсиком,для меня это очень трудно.И да,когда уже поняла,что мне не под силу и решила к нему подойти,он только и смог мне сказать "ну что вы,простейшая задача,простейшая,три цикла разности создадите,а потом минимальное число будете искать" и отчалил.Я не учусь на программиста какого-то и вообще в этой области меня не будет.Какие три цикла?О чем он вообще?
0
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38148 / 21084 / 4305
Регистрация: 12.02.2012
Сообщений: 34,658
Записей в блоге: 14
08.12.2015, 19:58
ulyana2608, даже правильные слова сказал преподаватель... Действительно три цикла. См. строки 20, 22, 24 моего кода. А вот задавать координаты случайными не советую (трудно будет проверять). Задай сначала несколько точек, посмотри, что должно получиться, а потом проверь, как это вычислит программа.
0
0 / 0 / 0
Регистрация: 07.12.2015
Сообщений: 3
08.12.2015, 22:13  [ТС]
Catstail, я и со случайными проверяла,это не проблема,вроде. В вашем коде недоработка,я вот смотрю что не так,но все равно спасибо. Преподаватель мне сказал также через минимальное число,не представляю как.
0
 Аватар для Alex77755
11525 / 3812 / 683
Регистрация: 13.02.2009
Сообщений: 11,229
09.12.2015, 02:52
Может по площади треугольников? Вынести в отдельную функцию
Для треугольника годится следующий тест:
ABC - треугольник, O - точка
Проверяем равенство на площади:
ABC = ABO + BCO + CAO
0
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38148 / 21084 / 4305
Регистрация: 12.02.2012
Сообщений: 34,658
Записей в блоге: 14
09.12.2015, 09:46
Цитата Сообщение от ulyana2608 Посмотреть сообщение
В вашем коде недоработка
- да неужели? И где?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
09.12.2015, 09:46
Помогаю со студенческими работами здесь

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

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

Определить найдутся среди точек заданного множества точки являющиеся вершинами правильной пирамиды
У меня такая тема попалась: Определить найдутся среди точек заданного множества точки являющиеся вершинами правильной пирамиды если...

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

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


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

Новые блоги и статьи
Новая зверюга
volvo 07.11.2025
Подарок на Хеллоуин, и теперь у нас кроме Tuxedo Cat есть еще и щенок далматинца: Хочу еще Симбу взять, очень нравится. . .
Инференс ML моделей в Java: TensorFlow, DL4J и DJL
Javaican 05.11.2025
Python захватил мир машинного обучения - это факт. Но когда дело доходит до продакшена, ситуация не так однозначна. Помню проект в крупном банке три года назад: команда data science натренировала. . .
Mapped types (отображённые типы) в TypeScript
Reangularity 03.11.2025
Mapped types работают как конвейер - берут существующую структуру и производят новую по заданным правилам. Меняют модификаторы свойств, трансформируют значения, фильтруют ключи. Один раз описал. . .
Адаптивная случайность в Unity: динамические вероятности для улучшения игрового дизайна
GameUnited 02.11.2025
Мой знакомый геймдизайнер потерял двадцать процентов активной аудитории за неделю. А виновником оказался обычный генератор псевдослучайных чисел. Казалось бы - добавил в карточную игру случайное. . .
Протоколы в Python
py-thonny 31.10.2025
Традиционная утиная типизация работает просто: попробовал вызвать метод, получилось - отлично, не получилось - упал с ошибкой в рантайме. Протоколы добавляют сюда проверку на этапе статического. . .
C++26: Read-copy-update (RCU)
bytestream 30.10.2025
Прошло почти двадцать лет с тех пор, как производители процессоров отказались от гонки мегагерц и перешли на многоядерность. И знаете что? Мы до сих пор спотыкаемся о те же грабли. Каждый раз, когда. . .
Изображения webp на старых x32 ОС Windows XP и Windows 7
Argus19 30.10.2025
Изображения webp на старых x32 ОС Windows XP и Windows 7 Чтобы решить задачу, использовал интернет: поисковики Google и Yandex, а также подсказки Deep Seek. Как оказалось, чтобы создать. . .
Passkey в ASP.NET Core identity
stackOverflow 29.10.2025
Пароли мертвы. Нет, серьезно - я повторяю это уже лет пять, но теперь впервые за это время чувствую, что это не просто красивые слова. В . NET 10 команда Microsoft внедрила поддержку Passkey прямо в. . .
Последние результаты исследования от команды MCM (октябрь 2025 г.)
Programma_Boinc 29.10.2025
Последние результаты исследования от команды MCM (октябрь 2025 г. ) Поскольку мы продолжаем изучать гены, которые играют ведущую роль в развитии рака, в рамках проекта "Картирование раковых. . .
Мысли в слух
kumehtar 29.10.2025
Обнаружил, что мысли лучше писать короткими фразами. Таким образом внимание читателя успевает охватить всю фразу сразу, за один раз, не соскакивая и не прерываясь. А если писать это длинным текстом,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru