Advertisement
EgorYankovsky

FINALE?

Feb 14th, 2022 (edited)
1,205
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. !23456    
  2.       PROGRAM MAIN
  3.       COMMON /TRDATA/ A, B, ALPH
  4.       COMMON /SLAVE/ RMIN, CA, CB, PI
  5.       PI = 3.14159265
  6.       RMIN = -1.0
  7.       CALL MENU
  8.       PRINT*, '----------------------------'
  9.     1 READ *, ICOMMAND
  10.       SELECT CASE (ICOMMAND)
  11.       CASE (1)
  12.        CALL ENTERNEWTRAINGLE
  13.       CASE (2)
  14.        !CA = B*COS(ALPH)+(SQRT(A**2-(B*SIN(ALPH))**2))
  15.        !CB = B*COS(ALPH)-(SQRT(A**2-(B*SIN(ALPH))**2))
  16.        CALL CALCULATEAREA
  17.       CASE (3)
  18.        CALL FINDSMALLESTANG
  19.       CASE (4)
  20.        CALL FINDSMALLESTCOS
  21.       CASE (5)
  22.        GOTO 2
  23.       CASE (6)
  24.        CALL WRILETRAINGLE
  25.       CASE DEFAULT
  26.        PRINT *, 'UNEXPECTED COMMAND'
  27.       END SELECT
  28.       PRINT*, '----------------------------'
  29.       GOTO 1
  30.     2 END
  31.        
  32.        
  33. C     ***MENU***
  34.  
  35.       SUBROUTINE MENU
  36.       PRINT *, '1) ENTER TRAINGLE'
  37.       PRINT *, '2) CALCULATING THE AREA OF A TRAINGLE'
  38.       PRINT *, '3) CALCULATION OF THE SMALLEST ANGLE IN DEGREES'
  39.       PRINT *, '4) CALCULATION OF THE COSINE OF THE MINIMUM ANGLE'
  40.       PRINT *, '5) END OF WORK'
  41.       PRINT *, '6!) WRITE TRAINGLE'
  42.       END
  43.      
  44.      
  45.      
  46. C     ***ENTER NEW TRAINGLE***
  47.  
  48.       SUBROUTINE ENTERNEWTRAINGLE
  49.       COMMON /TRDATA/ A, B, ALPH
  50.       COMMON /SLAVE/ RMIN, CA, CB, PI
  51.    14 PRINT *, 'ENTER FOLLOWING DATA:'
  52.       PRINT *, 'A='
  53.       READ *, A
  54.       PRINT *, 'B='
  55.       READ *, B
  56.       PRINT *, 'ALPH=(GRADUES)'
  57.       READ *, ALPH
  58.       A = ABS(A)
  59.       B = ABS(B)
  60.       ALPH = ALPH/180*PI
  61.       IF(ALPH.GT.ASIN(A/B)) THEN
  62.        PRINT *, 'A TRAINGLE WITH THE GIVEN PARAMETERS DOES NOT EXIST!'
  63.        GO TO 14
  64.       ENDIF
  65.       END
  66.      
  67.      
  68.      
  69. C     ***CALCULATE TRAINGLE AREA***
  70.      
  71.       SUBROUTINE CALCULATEAREA
  72.       COMMON /TRDATA/ A, B, ALPH
  73.       COMMON /SLAVE/ RMIN, CA, CB, PI
  74.       CA = B*COS(ALPH)+(SQRT(A**2-(B*SIN(ALPH))**2))
  75.       CB = B*COS(ALPH)-(SQRT(A**2-(B*SIN(ALPH))**2))
  76.       IF((A**2).GT.(B*SIN(ALPH))**2) THEN
  77.         PRINT*, 'TRAINGLE MAY HAS THESE AREAS: '
  78.         PRINT*,0.5*B*CA*SIN(ALPH)
  79.         PRINT*,0.5*B*CB*SIN(ALPH)
  80.       ELSE IF((A**2).EQ.(B*SIN(ALPH))**2) THEN
  81.         PRINT 8, 0.5*B**2*SIN(2*ALPH)
  82.     8   FORMAT('TRAINGLE HAS AREA: ', F7.4)
  83.       ENDIF
  84.       END
  85.      
  86.      
  87.      
  88. C     ***FIND SMALLEST ANGLE***
  89.      
  90.       SUBROUTINE FINDSMALLESTANG
  91.       COMMON /TRDATA/ A, B, ALPH
  92.       COMMON /SLAVE/ RMIN, CA, CB, PI
  93.       IF(ALPH.LT.ASIN(A/B)) THEN
  94.        RMIN = A
  95.        IF(B.LT.RMIN) RMIN = B
  96.        IF(CA.LT.RMIN) RMIN = CA
  97.        CA = RMIN
  98.        PRINT 9, ASIN(CA / A * SIN(ALPH))*180/PI
  99.     9  FORMAT('SMALLEST ANGLE IS: ', F7.4)
  100.        RMIN = A
  101.        IF(B.LT.RMIN) RMIN = B
  102.        IF(CB.LT.RMIN) RMIN = CB
  103.        CB = RMIN
  104.        PRINT 99, ASIN(CB / A * SIN(ALPH))*180/PI
  105.    99  FORMAT('ALSO IT CAN BE: ', F7.4)
  106.       ENDIF
  107.       END
  108.      
  109.      
  110.      
  111. C     ***FIND COSINE OF SMALLEST ANGLE***
  112.      
  113.       SUBROUTINE FINDSMALLESTCOS
  114.       COMMON /TRDATA/ A, B, ALPH
  115.       COMMON /SLAVE/ RMIN, CA, CB, PI
  116.       PRINT 10,COS(ASIN(CA/A*SIN(ALPH))),COS(ASIN(CB/A *SIN(ALPH)))
  117.    10 FORMAT('COSINE OF THE SMALLEST ANGLE: ', F7.4, F7.4)  
  118.       END
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement