Форум программистов, компьютерный форум CyberForum.ru

Пренадлежит ли точка треугольнику - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Сформировать список L, включив в него по одному разу элементы, которые входят одновременно в оба списка L1 и L2. http://www.cyberforum.ru/cpp-beginners/thread1055886.html
Ребят я запутался окончательно.Пытался сам разобраться,но увы только все хуже стало. задание: Сформировать список L, включив в него по одному разу элементы, которые входят одновременно в оба списка L1 и L2. Элементы я отсортировал,но как затереть одинаковые,не могу понять. #include <iostream> using namespace std; template<class TYPE> struct link
C++ Напечатать в алфавитном порядке все согласные буквы, входящие в текст. Помогите, пожалуйста, решить задачу в С++. Напечатать в алфавитном порядке все согласные буквы, входящие в текст. http://www.cyberforum.ru/cpp-beginners/thread1055882.html
Даны стороны двух треугольников. Найти сумму их площадей и периметров. C++
7 Помогите, пожалуйста, решить задачу в С++. Даны стороны двух треугольников. Найти сумму их площадей и периметров.
C++ Написать программу удаления из строки слова с заданным номером.
7. Помогите, пожалуйста, решить задачу в С++. Написать программу удаления из строки слова с заданным номером.
C++ В предложении заменить каждую букву многоточием. http://www.cyberforum.ru/cpp-beginners/thread1055877.html
7. Помогите, пожалуйста решить задачу в С++. В предложении заменить каждую букву многоточием.
C++ В квадратной матрице вычислить сумму элементов, принадлежащей главной диагонале. Помогите, пожалуйста, решить задачу в С++. В квадратной матрице вычислить сумму элементов, принадлежащей главной диагонале. подробнее

Показать сообщение отдельно
valeriikozlov
Эксперт C++
 Аватар для valeriikozlov
4660 / 2486 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
25.12.2013, 13:44     Пренадлежит ли точка треугольнику
Цитата Сообщение от SatanaXIII Посмотреть сообщение
Кстати по моему называется вырожденный треугольник.
Цитата Сообщение от Ilot Посмотреть сообщение
Point a = p1 - pO;//+1
тут неправильно. смотрим здесь:
C++
1
2
3
4
Point Point::operator- (Point &p)
{
  return Point (x - р.х, у - p. у);
}
так что не +1, а +2
Но давайте попорядку. Начнем с этого:
Цитата Сообщение от Ilot Посмотреть сообщение
Вам метод не универсален, так как не дает правильного ответа если точки лежат на одной прямой.
(кстати это не мой метод)
Здесь два случая: точка M не лежит на этой прямой - в этом случае будет правильный ответ. В случае если точка М лежит на этой прямой, то будет ответ неправильный. Но это не недостаток. В первом алгоритме отдельно расчитывается для трех отрезков: принадлежит ли точка М этим отрезкам или нет. Во втором варианте можно даже проще сделать эту проверку: например так - если площадь треугольника равна 0, и сумма площадей трех треугольников равна 0, то берем самый длинный отрезок и проверяем принадлежность точки М только ему, а не всем трем.
Цитата Сообщение от Ilot Посмотреть сообщение
Придется лепить костыли.
придется лепить один костыль, в отличие от трех таких же в первом методе.

Цитата Сообщение от Ilot Посмотреть сообщение
Все вычисления в ваше алгоритме придется выполнять полностью в отличае от второго метода.
это не показатель. Я могу например сделать так: расчитываю площадь основного треугольника S (7 операций), расчитываю площадь первого треугольника s1 (еще 7 операций). Сравниваю их сразу и если s1 уже больше S сразу выдаю ответ - не принадлежит. И могу утверждать что второй способ лучше первого , т.к. у него в лучшем случае всего 14 операций и одно сравнение.

Добавлено через 8 минут
кстати про этот случай:
Цитата Сообщение от Ilot Посмотреть сообщение
если точки лежат на одной прямой.
именно в этом случае в "суперском" первом методе происходит проверка на равенство вещественных чисел. А это значит что именно первый метод:
Цитата Сообщение от Ilot Посмотреть сообщение
может стать тот бомбой замедленного действия которая однажды опрокинет вашу программу и вам придется долго и нудно искать причину такого поведения.
 
Текущее время: 08:07. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru