Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- {Найти (в градусах, минутах и секундах) все углы треугольника,
- вершины которого заданы координатами (x1, y1), (x2, y2), (x3, y3).}
- {s = ((x2 - x1)^2+(y2-y1)^2)^(1/2)
- где (x1,y1) и (x2, y2) - это координаты начала и конца отрезка
- cos (ang) = a/(s1*s2)
- где a - скалярное произведение векторов s1 и s2,
- а s1 и s2 - стороны треугольника.}
- var x1,y1,x2,y2,x3,y3:integer; a,b,c,s1,s2,s3:real;
- procedure work(x1,y1,x2,y2,x3,y3:integer; var a1:real; var b1:real; var c1:real);
- begin
- s1:=sqrt(abs(sqr(x2-x1)+sqr(y2-y1)));
- s2:=sqrt(abs(sqr(x3-x2)+sqr(y3-y2)));
- s3:=sqrt(abs(sqr(x1-x3)+sqr(y1-y3)));
- a:=arctan(SQRT(1-sqr(cos(s2*s2+s3*s3-s1*s1)/(2*s2*s3)))/cos((s2*s2+s3*s3-s1*s1)/(2*s2*s3)));
- b:=arctan(SQRT(1-sqr(cos(s1*s1+s3*s3-s2*s2)/(2*s1*s3)))/cos((s1*s1+s3*s3-s2*s2)/(2*s1*s3)));
- c:=arctan(SQRT(1-sqr(cos(s1*s1+s2*s2-s3*s3)/(2*s1*s2)))/cos((s1*s1+s3*s3-s2*s2)/(2*s1*s3)));
- end;
- begin
- write('Vvedi koordinaty 1:');
- readln(x1,y1);
- write('Vvedi koordinaty 2:');
- readln(x2,y2);
- write('Vvedi koordinaty 3:');
- readln(x3,y3);
- work(x1,y1,x2,y2,x3,y3,a,b,c);
- writeLN('Ugol a=',a:6:2,'; Ugol b=',b:6:2,'; Ugol c=',c:6:2);
- End.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement