CCCPaste

38441e6798bb2

      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