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

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

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 03.11.2013, 14:58   #1
клепэ
Новичок
Джуниор
 
Регистрация: 23.04.2010
Сообщений: 1
По умолчанию Задано множество прямых на плоскости (коэффициентами своих уравнений). Подсчитать количество точек пересечения этих прямых

Задано множество прямых на плоскости (коэффициентами своих уравнений). Подсчитать количество точек пересечения этих прямых. Помогите псевдокодом и кодом в C#))
клепэ вне форума Ответить с цитированием
Старый 03.11.2013, 22:07   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

а что, собственно, не получается?
в цикле по i от 1 до N-1
берём i-ю линию и проверяем на пересечение со всеми остальными оставшимися
(цикл по j от i+1 до N), если есть пересечение - счётчик увеличить на единицу.
выдать значение счётчика.

как определить пересечение линий Вы легко найдёте поиском...
Serge_Bliznykov вне форума Ответить с цитированием
Старый 03.11.2013, 23:13   #3
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,289
По умолчанию

Serge_Bliznykov, первым делом тоже пришел данный способ в голову, но потом...
А как насчет случая, когда три прямых пересекаются в 1 точке? Тогда такой цикл сработает неправильно. Начал думать, как обойти, но лень одолела
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 03.11.2013, 23:37   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от BDA
А как насчет случая, когда три прямых пересекаются в 1 точке? Тогда такой цикл сработает неправильно.
угу. точно. есть такой прокол в моём алгоритме.
(Хотя, конечно, это явно требует уточнения у автора задачи)

И, если пересечение более двух прямых в одной точке нужно считать за одну точку, то, имхо, есть простой вариант обойти эту проблему (ну, если не учитывать нюанс, см.ниже*). Нужно вычислять и сохранять координаты точек пересечения в динамической структуре (списке или массиве), перед сохранением поиском в данном списке проверять, была ли такая точка ранее.


* нюанс. Может возникнуть необходимость дать определение, какие точки являются совпадающими.Например, если две прямых пересекаются в точке (1.00500, 1.00500), а две другие пересекаются в точке (1,00450, 1.00501) - это одна точка пересечения или две разные?
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
На плоскости задано множество точек. Определить все тройки точек, которые являются вершинами прямоугольного треугольника Олечка12 Помощь студентам 11 22.04.2014 19:56
Вычисление количества различных точек пересечения двух прямых x3Braid Помощь студентам 1 11.06.2012 17:18
Задано множество прямых на плоскости darya17 C++ Builder 1 02.06.2011 06:28
Точка пересечения трех прямых на плоскости QuadroX Помощь студентам 21 16.05.2010 01:10