![]() |
|
#1
|
|||
|
|||
![]() Найти внутренние углы (в градусах) треугольника АВС, заданного координатами
своих вершин на плоскости. __________________________________________________ _________________ Задали такое задание. С геометрической стороны решил, но как засунуть это в делфи ума не приложу, Делферы помогите несчастному с этой задачей((( |
#2
|
||||
|
||||
![]() ну создаешь тип точки, что-то вроде
Код:
type TPoint = record x,y: double; end; Код:
A,B,C: TPoint; обращаться к координатам точек: Код:
A.x:= что-то там //или B.y:= что-то там //или p.x:=A.x+C.x; //и тд и тп Последний раз редактировалось SerginhoLD, 04.06.2010 в 01:34. |
#3
|
||||
|
||||
![]() Код:
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. ![]() Последний раз редактировалось SerginhoLD, 04.06.2010 в 16:01. |