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

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

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

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

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

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 19.12.2008, 18:05   #1
ILILIIypuk
 
Регистрация: 12.11.2008
Сообщений: 2
Радость ПОМОГИТЕ РЕАЛИЗОВАТЬ ПРОЦЕДУРКУ!!!

Есть массивы (2 штуки - задают координаты точек на плоскости). Есть формула если (y3-y2)/(x3-x2)=(y2-y1)/(x2-x1) то эти три точки лежат на одной прямой. Мне нужно проверить данные массивы на выполнение этой формулы и если она вдруг выполнится то изменить координату одной из точек, для которой она выполнилась....т.е проверить все тройки точек и если надо исправить координаты!

нужно проверить все точки плоскости так чтобы никакие 3 не лежали на одной прямой... Но пойдет вариант и такой : на прямой не должны лежать СЛЕДУЮЩИЕ ДРУГ ЗА ДРУГОМ три точки!

Пожалуйсто помогите...

Вот мой вариант
Код:
procedure PROV(X,y:mas); {проверка}
var a,b,i,s : integer;
f,k:real;
begin
s:=0;
for i:=1 to n-2 do {перебор точек}
for a:=(i+1) to n-1 do
for b:=(a+1) to n do
begin
f:=(y[i]-y[a])/(x-x[a]);
{проверяю формулу}
k:=(y[a]-y[i])/(x[a]-x);

if f = k then

s:=a;
break; {как оборвать сразу 3 цикла?}

end;
x:=x+5; {вот тут бред какой-то... как поменять координату средней точки 
+ повторять эти циклы пока s<>0?}
end;
Но тут много глюков и ваще по-моему это фигня! Прошу напишити ваш работающий алгоритм=)

Последний раз редактировалось rpy3uH; 19.12.2008 в 19:21.
ILILIIypuk вне форума
Старый 19.12.2008, 18:55   #2
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,526
По умолчанию

Код:
procedure PROV(X,y:mas); {проверка}
var a,b,i,s : integer;
neud: boolean;
f,k:real;
begin
s:=0;
neud:=false;
for i:=1 to n-2 do begin{перебор точек}
for a:=(i+1) to n-1 do begin
for b:=(a+1) to n do
begin
f:=(y[i]-y[a])/(x-x[a]);
{проверяю формулу}
k:=(y[a]-y[i])/(x[a]-x);
if f = k then 
  neud:=true; //s:=a;
if neud then break; //break; {как оборвать сразу 3 цикла?}
end;
if neud then break; 
end;
if neud then break; 
end;
//x:=x+5; {вот тут бред какой-то... как поменять координату средней точки
+ повторять эти циклы пока s<>0?}
end;
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума
Старый 19.12.2008, 20:52   #3
Квэнди
Старожил
 
Аватар для Квэнди
 
Регистрация: 13.12.2006
Сообщений: 3,859
По умолчанию

автору предупреждение за кроспост и капслок.
тема закрыта
ICQ не для вопросов, а для предложений. Для вопросов используйте форум
IRC канал клуба программистов|Мои статьи
Квэнди вне форума
Закрытая тема


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите, пожалуйста, реализовать. Horknee Паскаль, Turbo Pascal, PascalABC.NET 6 26.10.2008 16:21
Помогите реализовать плейлист IGREK Общие вопросы Delphi 2 04.06.2008 09:08
Помогите реализовать ReacXX Общие вопросы Delphi 3 26.05.2008 08:56
Помогите реализовать VenMaster Общие вопросы Delphi 8 24.04.2008 23:45
Помогите реализовать данную задачу ==Spider== Работа с сетью в Delphi 2 15.12.2007 11:25