CCCPaste
      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/ Betta, A, B
      common /angles/ Alpha, 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
      implicit none
      real A, B, Betta, PI, degToRad, RadToDeg
      common /degree/degToRad, RadToDeg
      common /const/PI
      common /Global/ Betta, A, B
      write (*,*) 'input A'
      read (*,*) A
      write (*,*) 'input B'
      Read (*,*) B
      write (*,*) 'input Betta'
      Read (*,*) Betta
      Betta = Betta*degToRad
      return
      end
 
      real function area_triangle()
      implicit none
      real PI
      real A, B 
      real Alpha, Betta, Gamma
      real temp
      common /const/PI
      common /Global/ Betta, A, B
      common /angles/ Alpha, Gamma
      temp=sin(Betta)*A/B
      if(abs(temp).LE.1) then
            Alpha = Asin(temp)
            Gamma = PI - Alpha - Betta
            area_triangle = A*B*sin(Gamma)/2
      else
            area_triangle = 0
      endif
      return
      end
      
      real function min_ang()
      implicit none
      real Alpha, Betta, Gamma, degToRad, RadToDeg
      real A, B
      common /Global/ Betta, A, B
      common /angles/ Alpha, 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()
      implicit none
      real min_ang
      real PI, degToRad, RadToDeg
      common / degree / degToRad, RadToDeg
      common / const/ PI
      cos_min_ang=cos(min_ang()*degToRad)
      return
      end