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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 09.01.2011, 18:53   #1
Иоанн IV Грозный
 
Регистрация: 09.01.2011
Сообщений: 6
По умолчанию Прямые

Задача:определить точку пересечения прямых.Прога у меня не до конца работает,помогите найти ошибки
Код:
program Project2;

{$APPTYPE CONSOLE}

uses
  SysUtils;
Type TPoint=record
x,y:real;
end;
TLine=record
a,b,c:real;
end;
Var p1,p2,p3,p4,p:TPoint;
l1,l2:TLine;

  { TODO -oUser -cConsole Main : Insert code here }
Procedure PointToLine(const a,b:TPoint; Var l:TLine);
begin
l.a:=b.y-a.y;
l.b:=a.x-b.x;
l.c:=-(a.x*l.a+a.y*l.b);
end;
begin
Writeln('vvedite koordinaty tochki p1');
Readln(p1.x);
Readln(p1.y);
Writeln('vvedite koordinaty tochki p2');
Readln(p2.x);
Readln(p2.y);
Writeln('vvedite koordinaty tochki p3');
Readln(p3.x);
Readln(p3.y);
Writeln('vvedite koordinaty tochki p4');
Readln(p4.x);
Readln(p4.y);

PointToLine(p1,p2,l1);
PointToLine(p3,p4,l2);
If l1.a*l2.b-l1.b*l2.a=0 then Write('pryamie parallelni')
Else begin
p.x:= -(l1.c*l2.b-l2.c*l1.b)/(l1.a*l2.b-l2.a*l1.b);
p.y:=(l2.a*l1.c-l1.a*l2.c)/(l1.a*l2.b-l2.a*l1.b);
Writeln('pryamie peresekayutsya');
Writeln('tochka peresecheniya:');
Readln(p.x);
Readln(p.y);
end;
Readln;
end.

Последний раз редактировалось Stilet; 09.01.2011 в 19:23.
Иоанн IV Грозный вне форума Ответить с цитированием
Старый 09.01.2011, 19:09   #2
k0tone
Пользователь
 
Аватар для k0tone
 
Регистрация: 09.11.2010
Сообщений: 99
По умолчанию

Пользуйтесь на здоровье:
Код:
program Project2;

Type TPoint=record
x,y:real;
end;
TLine=record
a,b,c:real;
end;
Var p1,p2,p3,p4,p:TPoint;
l1,l2:TLine;

Procedure PointToLine(const a,b:TPoint; Var l:TLine);
begin
l.a:=b.y-a.y;
l.b:=a.x-b.x;
l.c:=-(a.x*l.a+a.y*l.b);
end;
begin
Writeln('vvedite koordinaty tochki p1');
Readln(p1.x);
Readln(p1.y);
Writeln('vvedite koordinaty tochki p2');
Readln(p2.x);
Readln(p2.y);
Writeln('vvedite koordinaty tochki p3');
Readln(p3.x);
Readln(p3.y);
Writeln('vvedite koordinaty tochki p4');
Readln(p4.x);
Readln(p4.y);

PointToLine(p1,p2,l1);
PointToLine(p3,p4,l2);
If l1.a*l2.b-l1.b*l2.a=0 then Write('pryamie parallelni')
Else begin
p.x:= -(l1.c*l2.b-l2.c*l1.b)/(l1.a*l2.b-l2.a*l1.b);
p.y:=(l2.a*l1.c-l1.a*l2.c)/(l1.a*l2.b-l2.a*l1.b);
Writeln('pryamie peresekayutsya');
Writeln('tochka peresecheniya: x=',p.x:3:3,'   y=',p.y:3:3);
end;
Readln;
end.
Если я вам помог - нажмите на весы пот аватаркой!
k0tone вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Прямые ссылки на видео osbi PHP 2 11.07.2010 08:38
Прямые на плоскости Spark3r Общие вопросы C/C++ 10 18.01.2010 01:16
как нарисовать прямые strateg66 Помощь студентам 0 20.11.2009 00:01
Задача про 3 прямые meds Паскаль, Turbo Pascal, PascalABC.NET 5 17.11.2008 12:24