
04.06.2010, 14:29
|
 |
Новичок
|
|
Регистрация: 19.11.2009
Сообщения: 73
Репутация: 12
|
|
Код:
program Angles;
{$APPTYPE CONSOLE}
uses
SysUtils,Math;
type
Point = record
x: double;
y: double;
end;
var
a,b,c: Point; //точки
bc , ac , ab: double; //длины сторон
a_A, a_B, a_C: double;//углы (угол a_A напротив стороны bc и т.п.)
begin
// ввод координат вершин треугольника
writeln('vvedite koordinaty tochki A:');
write('x='); readln(a.x); write('y='); readln(a.y);
writeln('vvedite koordinaty tochki B:');
write('x='); readln(b.x); write('y='); readln(b.y);
writeln('vvedite koordinaty tochki C:');
write('x='); readln(c.x); write('y='); readln(c.y);
// вычисляем длины сторон треугольника
ab:=sqrt(sqr(b.x-a.x)+sqr(b.y-a.y));
ac:=sqrt(sqr(c.x-a.x)+sqr(c.y-a.y));
bc:=sqrt(sqr(c.x-b.x)+sqr(c.y-b.y));
// вычисляем углы: (теорема косинусов: cosA = ( c^2+b^2-a^2 ) / (2*c*b) ;)
a_A:=(sqr(ab)+sqr(ac)-sqr(bc))/(2*ab*ac);
a_A:=RadToDeg(ArcCos(a_A));
a_B:=(sqr(ab)+sqr(bc)-sqr(ac))/(2*ab*bc);
a_B:=RadToDeg(ArcCos(a_B));
a_C:=180-a_A-a_B;
//
writeln('ugol A: ',a_A:4:2);
writeln('ugol B: ',a_B:4:2);
writeln('ugol C: ',a_C:4:2);
readln;
end.

|