Автор | Кто разбирается в Паскале |
Нужно написать программу
На плоскости задано множество попарно различных прямых (коэффициентами своих уравнений). Указать среди них ту прямую, которая имеет максимальное число пересечений с остальными прямыми.
Надо чтобы программа считывала коефиценты с файла, и выводила график с этими двумя прямыми...
Это лабораторка. 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 =) |