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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 22.03.2009, 11:20   #1
HoLToFF
Пользователь
 
Регистрация: 22.03.2009
Сообщений: 58
По умолчанию Рекурсия с возратом. Консольное приложение.

Доброго времени суток, о великие Программисты

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

Среда разработки -Turbo Pascal/Delphi
Изначально задача имела такой вид:
Рекурсия с возвратом.
Найти минимальное множество прямых, на которых можно разместить все точки заданного множества.
Сделать в консоли.

Но потом было решено задачу упростить и свести к такой:
Найти 2 прямые, проходящие через точку i, на которых размещаются наибольшее количество точек заданного множества.
Сделать в консоли.
Уравнение прямой взять как ах+ву=0
Вывести 2 массива, первый массив - точки, лежащие на одной прямой, второй - точки, лежащие на второй прямой.
Точки заданного множества вводятся пользователем. Можно решить с помощью массива записей.

Желательно сделать любой вариант.

Очень на вас надеюсь, с наилучшими пожеланиями

Последний раз редактировалось HoLToFF; 22.03.2009 в 20:35.
HoLToFF вне форума Ответить с цитированием
Старый 23.03.2009, 08:10   #2
XuTpbIu
Злобстер
Форумчанин
 
Аватар для XuTpbIu
 
Регистрация: 19.03.2009
Сообщений: 134
По умолчанию

Ну поскольку тебя попросили сделать, то думаю дословно текст тебе писать не надо. Опишу только общий алгоритм:
Берём двойной цикл по всем точкам, и смотрим сколько точек лежат на прямой между выбранными. В памяти держим 2 структуры вида:
Код:
var
  MaxPointsOnTheLine = record
    Max: Integer;
    Points: TPoint;
  end;
Далее будет так:
Код:
if PointsOnCurrentLine.Max > MaxPointsOnTheLine1.Max then
begin
  MaxPointsOnTheLine1.Max := PointsOnCurrentLine
  {блаблабла тут переприсваиваем координаты точек}
end
else
  if PointsOnCurrentLine.Max > MaxPointsOnTheLine2.Max then
  begin
    MaxPointsOnTheLine2.Max := PointsOnCurrentLine
    {блаблабла тут переприсваиваем координаты точек}
  end;
Вот. У нас получится 2 стурктуры содержащие 2 точки и кол-во точек лежащих на линии, проходящие через них. Остальное дело техники.
От знаний ещё никто не умирал, но рисковать не стоит.
XuTpbIu вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
консольное приложение user_jasser Общие вопросы Delphi 3 17.10.2008 12:17
C++! Консольное приложение!!! TrueTeapot Помощь студентам 2 03.10.2008 06:32
Консольное приложение Arkuz Общие вопросы Delphi 3 25.09.2008 23:59
Консольное приложение a_priori Общие вопросы Delphi 6 12.03.2008 08:33
Консольное приложение MAcK Общие вопросы Delphi 2 03.12.2006 18:28