Об игре
Новости
Войти
Регистрация
Рейтинг
Форум
11:45
4278
 online
Требуется авторизация
Вы не авторизованы
   Форумы-->Форум для внеигровых тем-->
1|2

АвторКто разбирается в Паскале
Нужно написать программу

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

Это лабораторка. 1-ый курс. Из нашей группы сделал один человек. Причём девушка =) У неё парень - программист

PS Заранее благодарю...
PSS Естественно награжу! 10к золотцом =) Чтобы избежать конфликтов - пишите решение сюда. Кто первый ПРАВИЛЬНО решит - получит награду. Если можно - выкладывайте .pas файл, а то с винды скопировать-вставить в паскаль - невозможно.
Выкладывайте файл на letitbit/deposit/ifolder/клановые сайты/свои сайты.... =)
Кто разбирается в Паскале
хороший физик был
Укажи по какому принципу должен создаваться входной файл. Формат задания прямых
+4

Такой пойдет?

Кол-во парных прямых n
Коэффициэнты прямой 1; Коэффициэнты парной различной прямой 1;
...
Коэффициэнты прямой n; Коэффициэнты парной различной прямой n;
Щас. Минутку
Блин, Надо еще Паскаль искать.
По идеи надо взять 2 цикла и перебором сравнить все прямые. Точнее просто смотреть какие не параллельны. Самая непаралельная=) и будет иметь больше всего точек пересечения)
Цель работы - решить задачу и отобразить решение графически на экране. Исходные данные прочитать из текст. файла.

Входной файл это просто файл с любым названием, в котором содержаться
коэффициенты уравнений каждой прямой. Кол-во прямых будет зависеть от кол-ва этих коэффицентов. Естественно всё-двумерное. То есть у точек только 2 координаты - х и у
Точнее просто смотреть какие не параллельны. Самая непаралельная=)
Согласен, только довести до ума я эту прогу не смог =(

Кстати я ей тоже сказал что самая непаралельная =)
Она мне ответила , что моя зачётка станет самой непаралельной в группе, если я и дальше буду нести такой бред )))))))))
Но она этот вариант не отвергла, просто её всбесила такая формулировка )))))))
Лень ставить и искать Паскаль)

Задаем два массива
a[..] - здесь будут хранится коэффициенты х
b[..] - здесь будут хранится коэффициенты y
Считываем их с файла. Может быть и третий коээффициент с - мы его игнорируем. Так проверять будем только на параллельность. Поставь проверку на всякий случай.

Ну и прогоняем эту прогу -
for i=1 to n begin
for l=2 to n begin
if a[i]/a[l]=b[i]/b[l] then c[i]:=c[i]+1;
end;
end;
k:=c[i];
for i=2 to n begin
if c[i]>k then k:=c[i];
end;

Write a[k],b[k];

В конце выводятся коээфициэнты прямой;
Орфография может страдать, давно Паскаль не юзал)
для Йопсель:
А если скину паскаль =)
11
Тогда чуть попозже, я его сам качну)
+12
Да и изначально k присваиваем значение c[1], а не c[i].
if a[i]/a[l]=b[i]/b[l] then c[i]:=c[i]+1;
и наоборот здесь знак неравенства нужен)
if a[i]/a[l]<>b[i]/b[l] then c[i]:=c[i]+1;
Параллельность - есть отношение эквивалентности, поэтому в цикле по прямым проходим и делим их на классы эквивалентности. Любая прямая будет пересекаться со всеми прямыми, не входящими в ее класс. Поэтому искомая прямая (имеющая наибольшее число пересечений) принадлежит классу, содержащему наименьшее число элементов. Алгоритм прост в общем :)
*сильно радуется, что топикстартер учится на очередного программера-неудачника, а не на врача или пилота гражданской авиации*
Всё ещё в силе! =)
Жду задачки =)
для Йопсель:
for i=1 to n begin
for l=2 to n begin
if a[i]/a[l]=b[i]/b[l]

много лишних проверок, но можно и таким неэффективным методом решить)
для Тайпан:
for i=1 to n-1 begin
for l=i+1 to n begin
if a[i]/a[l]=b[i]/b[l]


Так лучше?)
Производительность и кол-во потребляемой оперативки - не важно.
Так как это от нас не требуют, а компы там нормальные =) Не старые IBM =)
1|2
К списку тем
2007-2025, онлайн игры HeroesWM