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

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

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 06.01.2016, 04:54   #31
Poma][a
Новичок
Джуниор
 
Регистрация: 11.10.2011
Сообщений: 3,882
По умолчанию

Ну вот как-то так.. Переписывать мне лень
Код:
for (int i = 0; i < n; i++)
	{
		for (int j = i+1; j < n; j++)
		{
			line l = line(p[i], p[j]);
			for (int k = 0; k < n; k++)
			{
				if (k != i && k != j && fabs(l.a*p[k].x + l.b*p[k].y - l.c) < eps)
                                        {что-то творим}
			}
		}
	}
Poma][a вне форума Ответить с цитированием
Старый 06.01.2016, 15:49   #32
dimon_snake
Форумчанин
 
Регистрация: 05.11.2015
Сообщений: 167
По умолчанию

Не очень знаю с++, но что значит eps, fabs, и line l?
То есть в условие if идет проверка на неравность переменной, что бы x1 и x2 не равнялись x. А дальше, fabs(l.a*p[k].x + l.b*p[k].y - l.c) < eps, это проверка уравнения прямой?
Это вроде понятно.
А что значит line l = line(p[i],p[j]);
dimon_snake вне форума Ответить с цитированием
Старый 06.01.2016, 16:16   #33
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,289
По умолчанию

eps - переменная, обозначающая малую величину (имеющая малое значение).
fabs - функция взятия модуля числа (для вещественных чисел).
line l - переменная типа line.
line(p[i], p[j]) - конструктор класса line, принимающий 2 параметра.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 06.01.2016, 16:43   #34
dimon_snake
Форумчанин
 
Регистрация: 05.11.2015
Сообщений: 167
По умолчанию

Спасибо.
Значит, это
line l = line(p[i], p[j]);
оглашение x1 и x2(их индекса в массиве).
Тогда где в этом коде находится y1 и y2?
Можете это перевести на Паскаль?
fabs(l.a*p[k].x + l.b*p[k].y - l.c) < eps
dimon_snake вне форума Ответить с цитированием
Старый 06.01.2016, 17:16   #35
Poma][a
Новичок
Джуниор
 
Регистрация: 11.10.2011
Сообщений: 3,882
По умолчанию

Весь геом я всегда(почти всегда) писал структурами и функциями. Чем больше функций тем проще становится решать задачу..
Поэтому p[i], p[j] это элементы массива структур point - где уже есть x, y.
Та строчка -
fabs - модуль
l - прямая
p - точка.
А так.. Подставляет точку в уравнение прямой. Если 0 - радуемся. Если не 0 - не лежит на нашей прямой.
А вот fabs и eps просто проверяют с прогрешностью
Poma][a вне форума Ответить с цитированием
Старый 06.01.2016, 17:31   #36
dimon_snake
Форумчанин
 
Регистрация: 05.11.2015
Сообщений: 167
По умолчанию

А можно написать код без этих структур? Не учил еще такого, да еще и на С++.
dimon_snake вне форума Ответить с цитированием
Старый 06.01.2016, 17:37   #37
Poma][a
Новичок
Джуниор
 
Регистрация: 11.10.2011
Сообщений: 3,882
По умолчанию

Дак кто ж против. Правда это ужасно
Заведи массивы x, y. После первых двух циклов вычили a, b, c. Дальше подставляй точку и смотри
Poma][a вне форума Ответить с цитированием
Старый 06.01.2016, 18:05   #38
dimon_snake
Форумчанин
 
Регистрация: 05.11.2015
Сообщений: 167
По умолчанию

А как можно просто из массива с точками, которые лежат на одной прямой, убрать повторения?
Ибо при проверке на уравнение прямой у меня выходит повторяются два раза те же точки, но в другом порядке?
Просто убрать из массива точек, которые лежат на одной прямой, повторяющиеся?
dimon_snake вне форума Ответить с цитированием
Старый 06.01.2016, 21:01   #39
Poma][a
Новичок
Джуниор
 
Регистрация: 11.10.2011
Сообщений: 3,882
По умолчанию

дак можно или вычитать или делить..
Вычитать вроде проще..
Ну а можешь удалять
Сдигом.. Вроде сойдет.. По времени точно. И кажись эт правильно..
Но проще запоминать и проверять
Хоть в set засунуть
Poma][a вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Определить, лежат ли точки на одной прямой Паскаль anton.dasuik Помощь студентам 1 27.02.2013 22:52
Управление прямой вокруг точки Pascal ABC Danise Помощь студентам 1 10.01.2012 00:53
Выяснить лежат ли точки на одной прямой commander_spock Помощь студентам 10 20.10.2010 14:44
Определить Лежат ли точки на одной прямой домик Помощь студентам 10 11.04.2010 20:12
Определить, лежат ли обе точки относительно прямой в одной полуплоскости - задача на С++. Wia Помощь студентам 4 21.12.2008 02:06