Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- !23456
- PROGRAM MAIN
- COMMON /TRDATA/ A, B, ALPH
- COMMON /SLAVE/ RMIN, CA, CB, PI
- PI = 3.14159265
- RMIN = -1.0
- CALL MENU
- PRINT*, '----------------------------'
- 1 READ *, ICOMMAND
- SELECT CASE (ICOMMAND)
- CASE (1)
- CALL ENTERNEWTRAINGLE
- CASE (2)
- CALL CALCULATEAREA
- CASE (3)
- CALL FINDSMALLESTANG
- CASE (4)
- CALL FINDSMALLESTCOS
- CASE (5)
- GOTO 2
- CASE DEFAULT
- PRINT *, 'UNEXPECTED COMMAND'
- END SELECT
- PRINT*, '----------------------------'
- GOTO 1
- 2 END
- C ***MENU***
- SUBROUTINE MENU
- PRINT *, '1) ENTER TRAINGLE'
- PRINT *, '2) CALCULATING THE AREA OF A TRAINGLE'
- PRINT *, '3) CALCULATION OF THE SMALLEST ANGLE IN DEGREES'
- PRINT *, '4) CALCULATION OF THE COSINE OF THE MINIMUM ANGLE'
- PRINT *, '5) END OF WORK'
- PRINT *, '6!) WRITE TRAINGLE'
- END
- C ***ENTER NEW TRAINGLE***
- SUBROUTINE ENTERNEWTRAINGLE
- COMMON /TRDATA/ A, B, ALPH
- COMMON /SLAVE/ RMIN, CA, CB, PI
- 3 PRINT *, 'ENTER FOLLOWING DATA:'
- PRINT *, 'A='
- READ *, A
- PRINT *, 'B='
- READ *, B
- PRINT *, 'ALPH=(GRADUES)'
- READ *, ALPH
- A = ABS(A)
- B = ABS(B)
- ALPH = ALPH/180*PI
- IF(A.LT.B.AND.ALPH.GT.ASIN(A/B)) THEN
- PRINT *, 'A TRAINGLE WITH THE GIVEN PARAMETERS DOES NOT EXIST!'
- GO TO 3
- ENDIF
- END
- C ***CALCULATE TRAINGLE AREA***
- SUBROUTINE CALCULATEAREA
- COMMON /TRDATA/ A, B, ALPH
- COMMON /SLAVE/ RMIN, CA, CB, PI
- CA = B*COS(ALPH)+(SQRT(A**2-(B*SIN(ALPH))**2))
- CB = B*COS(ALPH)-(SQRT(A**2-(B*SIN(ALPH))**2))
- IF (A.LT.B) THEN
- IF((A**2).GT.(B*SIN(ALPH))**2) THEN
- PRINT*, 'TRAINGLE MAY HAS THESE AREAS: '
- PRINT*,0.5*B*CA*SIN(ALPH)
- PRINT*,0.5*B*CB*SIN(ALPH)
- ELSE IF((A**2).EQ.(B*SIN(ALPH))**2) THEN
- PRINT 4, 0.5*B**2*SIN(2*ALPH)
- 4 FORMAT('TRAINGLE HAS AREA: ', F7.4)
- ENDIF
- ELSE
- GAMMA = PI - ALPH - ASIN(B/A * SIN(ALPH))
- PRINT 5, 0.5*A*B*SIN(GAMMA)
- 5 FORMAT('TRAINGLE HAS AREA: ', F7.4)
- ENDIF
- END
- C ***FIND SMALLEST ANGLE***
- SUBROUTINE FINDSMALLESTANG
- COMMON /TRDATA/ A, B, ALPH
- COMMON /SLAVE/ RMIN, CA, CB, PI
- IF(A.LT.B) THEN
- RMIN = A
- IF(B.LT.RMIN) RMIN = B
- IF(CA.LT.RMIN) RMIN = CA
- CA = RMIN
- PRINT 6, ASIN(CA / A * SIN(ALPH))*180/PI
- 6 FORMAT('SMALLEST ANGLE IS: ', F7.4)
- RMIN = A
- IF(B.LT.RMIN) RMIN = B
- IF(CB.LT.RMIN) RMIN = CB
- CB = RMIN
- PRINT 7, ASIN(CB / A * SIN(ALPH))*180/PI
- 7 FORMAT('ALSO IT CAN BE: ', F7.4)
- ELSE IF(A.EQ.B) THEN
- C = 2*B*COS(ALPH)
- RMIN = A
- IF(B.LT.RMIN) RMIN = B
- IF(C.LT.RMIN) RMIN = C
- PRINT 8, ASIN(RMIN/A * SIN(ALPH))*180/PI
- 8 FORMAT('SMALLEST ANGLE IS: ', F7.4)
- ELSE
- C = B/COS(ALPH)
- RMIN = A
- IF(B.LT.RMIN) RMIN = B
- IF(C.LT.RMIN) RMIN = C
- PRINT 9, ASIN(RMIN/A * SIN(ALPH))*180/PI
- 9 FORMAT('SMALLEST ANGLE IS: ', F7.4)
- ENDIF
- END
- C ***FIND COSINE OF SMALLEST ANGLE***
- SUBROUTINE FINDSMALLESTCOS
- COMMON /TRDATA/ A, B, ALPH
- COMMON /SLAVE/ RMIN, CA, CB, PI
- IF(A.LT.B) THEN
- PRINT 10,COS(ASIN(CA/A*SIN(ALPH))),COS(ASIN(CB/A *SIN(ALPH)))
- 10 FORMAT('COSINE OF THE SMALLEST ANGLE: ', F7.4, F7.4)
- ELSE
- PRINT 11, COS(ASIN(RMIN/A*SIN(ALPH)))
- 11 FORMAT('COSINE OF THE SMALLEST ANGLE: ', F7.4)
- ENDIF
- END
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement