program main
implicit none
real A, B, Alpha, Betta, Gamma, degToRad, RadToDeg, PI
real area_triangle
real min_ang
real cos_min_ang
integer ch
common /Global/ Alpha, A, B
common /angles/ Betta, Gamma
common /degree/degToRad, RadToDeg
common /const/PI
PI = 3.1415926
degToRad = PI/180
RadToDeg = 180/PI
10 write (*,*) '1 Entering a new triangle'
write (*,*) '2 Calculated a area triangle'
write (*,*) '3 Calculated the minimum angle in degree'
write (*,*) '4 Calculating the cosine of the minimum angle'
write (*,*) '5 Exit'
read (*,*) ch
goto (1,2,3,4,5), ch
write (*,*) 'wrong argument'
goto 10
1 call input_p
goto 10
2 print *, 'Triangle area is: ', area_triangle()
goto 10
3 print *, 'Minimum angle: ', min_ang()
goto 10
4 print *, 'Cosine of the minimum angle: ', cos_min_ang()
goto 10
5 stop
end
subroutine input_p
real A, B, Alpha, PI, degToRad, RadToDeg
common /degree/degToRad, RadToDeg
common /const/PI
common /Global/ Alpha, A, B
write (*,*) 'input A'
read (*,*) A
write (*,*) 'input B'
Read (*,*) B
write (*,*) 'input Alpha'
Read (*,*) Alpha
Alpha = Alpha*degToRad
return
end
real function area_triangle()
real PI
real A, B
real Alpha, Betta, Gamma
real temp
common /const/PI
common /Global/ Alpha, A, B
common /angles/ Betta, Gamma
write (*,*) 'proba'
temp=sin(Alpha)
print *, 'proba',temp
temp=temp*B/A
print *, '', temp
print *, '', B/A*temp
if(abs(temp).LE.1) then
Betta = Asin(temp)
Gamma = PI - Alpha - Betta
area_triangle = A*B*sin(Gamma)/2
else
write (*,*) 'incorrect valiabel'
endif
return
end
real function min_ang()
real Alpha, Betta, Gamma, degToRad, RadToDeg
real A, B
common /Global/ Alpha, A, B
common /angles/ Betta, Gamma
common /degree/degToRad, RadToDeg
real PI
common / const/ PI
if(Alpha.LT.Betta) then
if(Alpha.LT.Gamma) then
min_ang = Alpha/degToRad
else if(Gamma.LE.Alpha) then
min_ang = gamma*RadToDeg
endif
else if(Betta.LE.Alpha) then
if(Betta.LT.Gamma)then
min_ang=Betta*RadToDeg
else if(Gamma.LE.Betta) then
min_ang=gamma*RadToDeg
endif
endif
return
end
real function cos_min_ang()
real min_ang
real PI, degToRad, RadToDeg
common / degree / degToRad, RadToDeg
common / const/ PI
cos_min_ang=cos(min_ang()*degToRad)
return
end