Показать сообщение отдельно
Старый 16.05.2012, 17:36   #2 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от Juliet Посмотреть сообщение
Помогите пожалуйста с написанием программы на Паскале)

Разработка программы «Треугольник и точка»
Дана точка А(х, у). Определить, принадлежит ли она треугольнику с вершинами в точках (х1,у1), (х2, у2), (х3,у3). Сделать рисунок.
Извольте. Правда, сколь я припоминаю, у Вас АВС, и потому с графикой помочь не могу, ну а само решение - вот (обозначения приведены на рисунке):
Код:
Var
 x1,x2,x3,y1,y2,y3,x,y,a,b,c,c1,c2,c3:Real;
 Sum:Integer;

Function ArcCos(z:Real):Real;
begin
 if Round(z*10000000)=10000000 then ArcCos:=0 else
 if Round(z*10000000)=-10000000 then ArcCos:=Pi else
    ArcCos:=(Pi/2)-ArcTan(z/SQRT(1-z*z));
end;

Function RadGr(t:Real):Real;
begin
  RadGr:=(t/Pi)*180;
end;

Function Angle(d1,d2,d3:Real):Real;
begin
 Angle:=ArcCos((Sqr(d1)+Sqr(d2)-Sqr(d3))/(d1*d2*2));
end;

Begin
 Write('x1 = ');
 Readln(x1);
 Write('y1 = ');
 Readln(y1);
 Write('x2 = ');
 Readln(x2);
 Write('y2 = ');
 Readln(y2);
 Write('x3 = ');
 Readln(x3);
 Write('y3 = ');
 Readln(y3);
 a:=Sqrt(Sqr(x2-x3)+Sqr(y2-y3));
 b:=Sqrt(Sqr(x1-x3)+Sqr(y1-y3));
 c:=Sqrt(Sqr(x1-x2)+Sqr(y1-y2));
 Writeln('Point:');
 Write('x = ');
 Readln(x);
 Write('y = ');
 Readln(y);
 Writeln;
 c1:=Sqrt(Sqr(x-x1)+Sqr(y-y1));
 c2:=Sqrt(Sqr(x-x2)+Sqr(y-y2));
 c3:=Sqrt(Sqr(x-x3)+Sqr(y-y3));
 Sum:=Round(RadGr(Angle(c1,c2,c)+Angle(c2,c3,a)+Angle(c1,c3,b)));
 Writeln(Sum=360);
 Readln;
End.
Изображения
 
Vladimir_S вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070