Advertisement
EgorYankovsky

PV_LAB1

Feb 11th, 2022 (edited)
1,225
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.        CALL CALCULATEAREA
  15.       CASE (3)
  16.        CALL FINDSMALLESTANG
  17.       CASE (4)
  18.        CALL FINDSMALLESTCOS
  19.       CASE (5)
  20.        GOTO 2
  21.       CASE DEFAULT
  22.        PRINT *, 'UNEXPECTED COMMAND'
  23.       END SELECT
  24.       PRINT*, '----------------------------'
  25.       GOTO 1
  26.     2 END
  27.        
  28.        
  29. C     ***MENU***
  30.  
  31.       SUBROUTINE MENU
  32.       PRINT *, '1) ENTER TRAINGLE'
  33.       PRINT *, '2) CALCULATING THE AREA OF A TRAINGLE'
  34.       PRINT *, '3) CALCULATION OF THE SMALLEST ANGLE IN DEGREES'
  35.       PRINT *, '4) CALCULATION OF THE COSINE OF THE MINIMUM ANGLE'
  36.       PRINT *, '5) END OF WORK'
  37.       PRINT *, '6!) WRITE TRAINGLE'
  38.       END
  39.      
  40.      
  41.      
  42. C     ***ENTER NEW TRAINGLE***
  43.  
  44.       SUBROUTINE ENTERNEWTRAINGLE
  45.       COMMON /TRDATA/ A, B, ALPH
  46.       COMMON /SLAVE/ RMIN, CA, CB, PI
  47.     3 PRINT *, 'ENTER FOLLOWING DATA:'
  48.       PRINT *, 'A='
  49.       READ *, A
  50.       PRINT *, 'B='
  51.       READ *, B
  52.       PRINT *, 'ALPH=(GRADUES)'
  53.       READ *, ALPH
  54.       A = ABS(A)
  55.       B = ABS(B)
  56.       ALPH = ALPH/180*PI
  57.       IF(A.LT.B.AND.ALPH.GT.ASIN(A/B)) THEN
  58.        PRINT *, 'A TRAINGLE WITH THE GIVEN PARAMETERS DOES NOT EXIST!'
  59.        GO TO 3
  60.       ENDIF
  61.       END
  62.      
  63.      
  64.      
  65. C     ***CALCULATE TRAINGLE AREA***
  66.      
  67.       SUBROUTINE CALCULATEAREA
  68.       COMMON /TRDATA/ A, B, ALPH
  69.       COMMON /SLAVE/ RMIN, CA, CB, PI
  70.       CA = B*COS(ALPH)+(SQRT(A**2-(B*SIN(ALPH))**2))
  71.       CB = B*COS(ALPH)-(SQRT(A**2-(B*SIN(ALPH))**2))
  72.       IF (A.LT.B) THEN
  73.         IF((A**2).GT.(B*SIN(ALPH))**2) THEN
  74.             PRINT*, 'TRAINGLE MAY HAS THESE AREAS: '
  75.             PRINT*,0.5*B*CA*SIN(ALPH)
  76.             PRINT*,0.5*B*CB*SIN(ALPH)
  77.         ELSE IF((A**2).EQ.(B*SIN(ALPH))**2) THEN
  78.             PRINT 4, 0.5*B**2*SIN(2*ALPH)
  79.     4       FORMAT('TRAINGLE HAS AREA: ', F7.4)
  80.         ENDIF
  81.       ELSE
  82.         GAMMA = PI - ALPH - ASIN(B/A * SIN(ALPH))
  83.         PRINT 5, 0.5*A*B*SIN(GAMMA)
  84.     5   FORMAT('TRAINGLE HAS AREA: ', F7.4)
  85.       ENDIF
  86.       END
  87.      
  88.      
  89.      
  90. C     ***FIND SMALLEST ANGLE***
  91.      
  92.       SUBROUTINE FINDSMALLESTANG
  93.       COMMON /TRDATA/ A, B, ALPH
  94.       COMMON /SLAVE/ RMIN, CA, CB, PI
  95.       IF(A.LT.B) THEN
  96.        RMIN = A
  97.        IF(B.LT.RMIN) RMIN = B
  98.        IF(CA.LT.RMIN) RMIN = CA
  99.        CA = RMIN
  100.        PRINT 6, ASIN(CA / A * SIN(ALPH))*180/PI
  101.     6  FORMAT('SMALLEST ANGLE IS: ', F7.4)
  102.        RMIN = A
  103.        IF(B.LT.RMIN) RMIN = B
  104.        IF(CB.LT.RMIN) RMIN = CB
  105.        CB = RMIN
  106.        PRINT 7, ASIN(CB / A * SIN(ALPH))*180/PI
  107.     7  FORMAT('ALSO IT CAN BE: ', F7.4)
  108.       ELSE IF(A.EQ.B) THEN
  109.         C = 2*B*COS(ALPH)
  110.         RMIN = A
  111.         IF(B.LT.RMIN) RMIN = B
  112.         IF(C.LT.RMIN) RMIN = C
  113.         PRINT 8, ASIN(RMIN/A * SIN(ALPH))*180/PI
  114.     8   FORMAT('SMALLEST ANGLE IS: ', F7.4)
  115.       ELSE
  116.         C = B/COS(ALPH)
  117.         RMIN = A
  118.         IF(B.LT.RMIN) RMIN = B
  119.         IF(C.LT.RMIN) RMIN = C
  120.         PRINT 9, ASIN(RMIN/A * SIN(ALPH))*180/PI
  121.     9   FORMAT('SMALLEST ANGLE IS: ', F7.4)  
  122.       ENDIF
  123.       END
  124.      
  125.      
  126.      
  127. C     ***FIND COSINE OF SMALLEST ANGLE***
  128.      
  129.       SUBROUTINE FINDSMALLESTCOS
  130.       COMMON /TRDATA/ A, B, ALPH
  131.       COMMON /SLAVE/ RMIN, CA, CB, PI
  132.       IF(A.LT.B) THEN
  133.         PRINT 10,COS(ASIN(CA/A*SIN(ALPH))),COS(ASIN(CB/A *SIN(ALPH)))
  134.    10   FORMAT('COSINE OF THE SMALLEST ANGLE: ', F7.4, F7.4)
  135.       ELSE
  136.         PRINT 11, COS(ASIN(RMIN/A*SIN(ALPH)))
  137.    11   FORMAT('COSINE OF THE SMALLEST ANGLE: ', F7.4)    
  138.       ENDIF
  139.       END
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement