Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.10.2023, 13:36   #1
marylxl
Новичок
Джуниор
 
Регистрация: 15.10.2023
Сообщений: 1
По умолчанию Решить задачу на с#

Помогите пожалуйста решить задачу, буду очень благодарна

Даны действительные числа x1,x2,x3,y1,y2,y3. Принадлежит ли начало координат треугольнику с вершинами (x1,y1),(x2,y2),(x3,y3)?
marylxl вне форума Ответить с цитированием
Старый 15.10.2023, 16:27   #2
digitalis
Старожил
 
Аватар для digitalis
 
Регистрация: 04.02.2011
Сообщений: 4,550
По умолчанию

https://infofaq.ru/tochka-vnutri-treugolnika.html
Выбрать нужный вариант и намалюкать код - это уже сделай сам.
Подсказываю: написать реализацию формулы Герона в виде подпрограммы и вызвать её 4 раза.
digitalis вне форума Ответить с цитированием
Старый 15.10.2023, 20:44   #3
сфинкс
Форумчанин
 
Аватар для сфинкс
 
Регистрация: 17.06.2012
Сообщений: 957
По умолчанию

Если решаете через функции

может помочь сообщение где создана простая функция C#

https://www.programmersforum.ru/show...63#post1859763

Даже с проверкой онлайн

В смысле нарциссизм? В том сообщении половина программы

И там буквально осталось ввести данные
и решить сумму всей площади и суммы отдельных площадей
Случайные и Массивы https://programmersforum.ru/showthread.php?t=344371 Учим C# & basic & excel & python https://programmersforum.ru/showthre...=327446&page=5 ничего нерекомендую

Последний раз редактировалось сфинкс; 16.10.2023 в 03:14.
сфинкс вне форума Ответить с цитированием
Старый 15.10.2023, 22:24   #4
ViktorR
Старожил
 
Регистрация: 23.10.2010
Сообщений: 2,309
По умолчанию

Предлагаю решить через векторное умножение.

Пусть у вас есть отрезок AB с координатами точек A(Ax, Ay) и B(Bx, By).
Тогда, для любой точки C(Cx, Cy) можем написать функцию, которая возвращает значение:
Код:
v = (Bx - Ax)*(Cy - By) - (By - Ay)*(Cx - Bx)
Если v > 0 - точка С слева от отрезка AB
Если v < 0 - точка С справа от отрезка AB
Если v = 0 - точка C находится на линии вектора AB.

Т.о., надо выполнить три вычисления (для каждой из сторон треугольника).
Если знак v не менялся, то точка внутри треугольника, в противном случае - вне.
Если v = 0 для одного из трёх векторов, то надо проверить, что точка C находится на отрезке:
координата Cx находится между концами отрезка.

PS:
Тут важно последовательно перебирать вершины, например: AB, BC, CA.
Конечно, предложение от digitalis не менее актуально и возможно будет иметь более простое решение.

Пост от сфинкс - это просто нарциссизм.
Как-то так, ...
ViktorR на форуме Ответить с цитированием
Старый 16.10.2023, 11:27   #5
digitalis
Старожил
 
Аватар для digitalis
 
Регистрация: 04.02.2011
Сообщений: 4,550
По умолчанию

Все эти наши рассуждения хороши, но молодцу деушке надобен готовый работающий код, не зря она указала С#, а не "подскажите метод решения". Написал бы, но С# - это не моё.
Ещё подскажу: внутри Герона вдобавок Пифагор прорезается.

Последний раз редактировалось digitalis; 16.10.2023 в 17:04.
digitalis вне форума Ответить с цитированием
Старый 17.10.2023, 15:44   #6
zvygin1964
Старожил
 
Аватар для zvygin1964
 
Регистрация: 19.06.2013
Сообщений: 2,463
По умолчанию

Цитата:
Сообщение от marylxl Посмотреть сообщение
Помогите
Сколько рублей ?
Репутация: полный "0"
zvygin1964 вне форума Ответить с цитированием
Старый 17.10.2023, 22:41   #7
digitalis
Старожил
 
Аватар для digitalis
 
Регистрация: 04.02.2011
Сообщений: 4,550
По умолчанию

Гусары с женщинов денег не берут!
digitalis вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите решить задачу на с#,уже час ломаю голову,не могу решить. KeyJW Помощь студентам 1 09.11.2022 22:15
решить задачу USovA Помощь студентам 2 02.11.2018 09:32
Помогите решить задачу,пожалуйста!!!вторую часть не могу решить. Родион Афанасьев Паскаль, Turbo Pascal, PascalABC.NET 1 03.03.2018 19:44
решить задачу Максимова Фриланс 4 17.09.2017 21:46
Как решить задачу? Annneet Общие вопросы C/C++ 1 18.10.2011 19:19