Вычисление треугольника с заданной стороной, прилежащим и противолежащим углами (Лабораторная работа № 1), страница 2

              print *,ugl_v

       goto 7

4      if(cos_v.LT.0) call Rmin_cos()

             print *,cos_v

       goto 7

*_попытка считать пустоту

90     print *,"Treugol'nik eshhjo ne zadan!!!"

        goto 7

5      end

*_вводим новый треугольничек     

      subroutine vvod()

             common /treug/a, alfa, beta, pi, s_v, cos_v, ugl_v

       logical fl

       print *,"\nVvod novogo treugol'nika:"

*_ложь-значит, есть ошибка!

111     fl=.true.

       print *,"Vvedite storonu A:"

        read *,a

       print *,"Vvedite ugol Alfa(protevolezhashhij A):"

        read *,alfa

       print *,"Vvedite ugol Beta:"

        read *,beta

       if(a.LE.0.OR.alfa.LE.0.OR.beta.LE.0.OR.

     * (alfa+beta).GE.180) fl=.false.

       if(fl) return

       print *,"Oshibka!!! Poprobujte vvesti drugie dannye!"

       goto 111

      end

*_вычисление площади

      subroutine Rploshad()

             common /treug/a, alfa, beta, pi, s_v, cos_v, ugl_v

             print *,"!"

       s_v=a**2*sin((alfa+beta)*pi)*sin(beta*pi)/(2*sin(alfa*pi))

            end

*_вычисление минимального угла

      subroutine Rmin_ugl()

             common /treug/a, alfa, beta, pi, s_v, cos_v, ugl_v

             print *,"!"

         ugl_v=180-alfa-beta

        if(ugl_v.GT.alfa) ugl_v=alfa

        if(ugl_v.GT.beta) ugl_v=beta

      end

*_вычисление косинуса минимального угла

      subroutine Rmin_cos()

             common /treug/a, alfa, beta, pi, s_v, cos_v, ugl_v

             print *,"!"

        if(ugl_v.LT.0) call Rmin_ugl()

             cos_v=cos(ugl_v*pi)

            end

5.Набор тестов:

I. Ввод нового треугольник -> A=10, =30, =-30 

        Ошибка в исходный данных!

II. Ввод нового треугольник -> A=0, =30, =30 

        Ошибка в исходный данных!

III. Косинус минимального угла

            Ошибка! Треугольник еще не введен!

VI. Ввод нового треугольник -> A=10, =30, =60 

            S= 86.60254                   min= 30.00000                      cos(min)=0.8660254

   (выч. S=586,602540                                                          cos (min)=0,86602540)

V. Ввод нового треугольник -> A=10, =60, =30 

            S= 28.86751                   min= 30.00000                       cos(min)=0.8660254

   (выч. S28,8675134                                                                                      cos (min)=0,86602540)

VI. Ввод нового треугольник -> A=0.0001, =0.00001, =0.00009

          S=7.8539815E-14             min=9.9999997E-06              cos(min)= 1.000000

   (выч. S7.8539816 *10        min=                                  cos (min)=0,999999999999)

VII. Ввод нового треугольник -> A=79.5341, =89.999, =89.999

          S= 0.1104202                    min=1.9989014E-03               cos(min)= 1.000000

   (выч. S0.1104038                    min=0.002                                 cos (min)=0,9999999993)

VIII. Ввод нового треугольник -> A=79.5341, =89.999, =89.999

          S= 0.1104202                    min=1.9989014E-03                 cos(min)= 1.000000

   (выч. S0.1104038                    min=0.002                                    cos (min)=0,9999999993)

IX. Ввод нового треугольник -> A=0.02, =75, =75

          S= 9.9999997E-05            min= 30.00000                          cos(min)= 0.8660254

   (выч. S=0.25*A=0.0001          min=30                                          cos (min)=0,86602540)

X. Ввод нового треугольник -> A=12.3456, =128.901, =24.444

          S= 18.17839                     min= 24.44400                          cos(min)= 0.9103662

   (выч. S=18.1789925                  min= 24.444                                  cos (min)=0.9103662)

XI. Ввод нового треугольник -> A=321.123, =179.9, = 0.01

          S= 8.099092                     min= 9.9999998E-03                           cos(min)= 1.000000

   (выч. S=8.0990251                    min= 0.01                                                 cos (min)=0,9999999847)