c------------------------------------------------------------------------------------------------------------------------------------
subroutine ugol(x1,y1,x2,y2,x3,y3,c,d)
common /rez/s,a,cosa
cosa=((x1-x2)*(x3-x2)+(y1-y2)*(y3-y2))/(c*d)
end
c------------------------------------------------------------------------------------------------------------------------------------
c основная процедура вычисления косинуса угла:сравнением длин сторон треугольника
c находится наименьший угол и для него вызывается вспомогательная процедура
c------------------------------------------------------------------------------------------------------------------------------------
subroutine cos
common /tre/x1,x2,x3,y1,y2,y3
common /rez/s,a,cosa
b=sqrt((x1-x3)**2+(y1-y3)**2)
c=sqrt((x3-x2)**2+(y3-y2)**2)
d=sqrt((x1-x2)**2+(y1-y2)**2)
if (b.lt.c)then
if(b.lt.d) then
call ugol(x1,y1,x2,y2,x3,y3,c,d)
else
call ugol(x1,y1,x3,y3,x2,y2,b,c)
end if
else
if (c.lt.d)then
call ugol(x3,y3,x1,y1,x2,y2,d,b)
else
call ugol(x1,y1,x3,y3,x2,y2,b,c)
end if
end if
end
c------------------------------------------------------------------------------------------------------------------------------------
c процедура вычисления наименьшего угла использует функции арккосинуса и основную
c процедуру вычисления косинуса искомого угла, значение угла вычисляется в градусах
c------------------------------------------------------------------------------------------------------------------------------------
subroutine minugol
common /rez/s,a,cosa
parameter(pi=3.1415927)
a=acos(cosa)
a=((a*180)/pi)
print *,a
end
c------------------------------------------------------------------------------------------------------------------------------------
c основная программа
c--------------------------------------------------------------------------------------------------------------------------------------
program main
common /tre/x1,x2,x3,y1,y2,y3
common /rez/s,a,cosa
i=0
j=0
c------------------------------------------------------------------------------------------------------------------------------------
c меню пользователя
c------------------------------------------------------------------------------------------------------------------------------------
while(i.lt.5)do
print *,'Menu: 1-Enter the new triangle;'
print *, '2-the square;'
print *, '3-the minimal corner;'
print *, '4-the cosinus of the minimal corner;'
print *, '5-the output;'
read *,i
select case(i)
case(1)
call vvod (j)
case(4)
if (j.eq.2)then
print *,cosa
else
if(j.eq.1)then
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.