Advertisement
Guest User

Untitled

a guest
Feb 14th, 2019
102
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.       PROGRAM TRIANG      
  2.       COMMON/TRIANGLE/A,ANGLEA,ANGLEB
  3.       COMMON/CALCULATION/ANGLEC,MINANGLE
  4.       COMMON/FORCHECK/FLAG
  5.       CALL FUNCTION
  6.       END
  7.      
  8.       SUBROUTINE FUNCTION
  9.       INTEGER NUMBER
  10.       PRINT*, 'PLEASE, USE THE INSTRUCTIONS:'
  11.       PRINT*, 'TYPE "1" FOR CREATING A NEW TRIANGLE'
  12.       PRINT*, 'TYPE "2" FOR CALCULATION OF THE AREA OF THE TRIANGLE'
  13.       PRINT*, 'TYPE "3" FOR CALCULATION OF THE MIN ANGLE'
  14.       PRINT*, 'TYPE "4" FOR CALCULATION OF THE COSINUS OF THE MIN ANGLE'
  15.       PRINT*, 'TYPE "5" FOR EXIT'
  16.       READ*, NUMBER
  17.       IF(NUMBER.EQ.1) CALL CREATE
  18.       IF(NUMBER.EQ.2) CALL AREATRIANGLE
  19.       IF(NUMBER.EQ.3) CALL MIN
  20.       IF(NUMBER.EQ.4) CALL COSMIN
  21.       IF(NUMBER.EQ.5) RETURN
  22.       CALL FUNCTION
  23.       END
  24.      
  25.       SUBROUTINE CREATE
  26.       COMMON/TRIANGLE/A,ANGLEA,ANGLEB
  27.       COMMON/FORCHECK/FLAG
  28.       PRINT*, 'TYPE THE SIDE OF THE TRIANGLE'
  29.       READ*,A      
  30.       PRINT*, 'TYPE THE NEIGHBOR ANGLE'
  31.       READ*,ANGLEA      
  32.       PRINT*, 'TYPE THE OPPOSITE ANGLE'
  33.       READ*,ANGLEB
  34.       CALL FINDERR
  35.       IF(FLAG.EQ.1)THEN
  36.       RETURN
  37.       ELSE      
  38.       PRINT*,'YOU TYPED ',A,ANGLEA,ANGLEB
  39.       ENDIF
  40.       END
  41.      
  42.       SUBROUTINE AREATRIANGLE
  43.       COMMON/TRIANGLE/A,ANGLEA,ANGLEB
  44.       COMMON/CALCULATION/ANGLEC,MINANGLE
  45.       COMMON/FORCHECK/FLAG
  46.       REAL*4 SQ
  47.       IF(FLAG.EQ.1)RETURN
  48.       CALL CALCULMIN
  49.       SQ=A**2/2*SIN(ANGLEA)*SIN(ANGLEB)/SIN(ANGLEC)
  50.       SQ=ABS(SQ)
  51.       PRINT*,'THE AREA OF THE TRIANGLE IS ',SQ
  52.       END
  53.      
  54.       SUBROUTINE MIN
  55.       COMMON/CALCULATION/ANGLEC,MINANGLE
  56.       COMMON/FORCHECK/FLAG
  57.       IF(FLAG.EQ.1)RETURN
  58.       CALL CALCULMIN
  59.       PRINT*,'THE MIN ANGLE IS ',MINANGLE
  60.       END
  61.      
  62.       SUBROUTINE CALCULMIN
  63.       COMMON/TRIANGLE/A,ANGLEA,ANGLEB  
  64.       COMMON/CALCULATION/ANGLEC,MINANGLE
  65.       ANGLEC=180-ANGLEA-ANGLEB
  66.       IF(ANGLEA.LE.ANGLEB)THEN
  67.       MINANGLE=ANGLEA
  68.       ELSE
  69.       MINANGLE=ANGLEB
  70.       ENDIF
  71.       IF(ANGLEC.LE.MINANGLE)THEN
  72.       MINANGLE=ANGLEC
  73.       ENDIF
  74.       END
  75.      
  76.       SUBROUTINE COSMIN    
  77.       COMMON/CALCULATION/ANGLEC,MINANGLE
  78.       COMMON/FORCHECK/FLAG
  79.       REAL*4 COSMINANG
  80.       IF(FLAG.EQ.1)RETURN
  81.       CALL CALCULMIN
  82.       COSMINANG=MINANGLE
  83.       PRINT*, 'THE COSINUS OF THE MIN ANGLE IS ',COS(COSMINANG)
  84.       RETURN
  85.       END
  86.  
  87.  
  88.       SUBROUTINE FINDERR
  89.       COMMON/FORCHECK/FLAG
  90.       CALL CHECK
  91.       IF(FLAG.EQ.1)CALL ERROR
  92.       RETURN
  93.       END
  94.      
  95.       SUBROUTINE CHECK      
  96.       COMMON/TRIANGLE/A,ANGLEA,ANGLEB  
  97.       COMMON/FORCHECK/FLAG
  98.       IF(ANGLEA.LE.0.OR.ANGLEA.GE.180)THEN
  99.       FLAG=1
  100.       RETURN
  101.       ENDIF
  102.       IF(ANGLEB.LE.0.OR.ANGLEB.GE.180)THEN
  103.       FLAG=1
  104.       RETURN
  105.       ENDIF
  106.       IF(ANGLEA+ANGLEB.GE.180)THEN
  107.       FLAG=1
  108.       RETURN
  109.       ENDIF
  110.       IF(A.LE.0)THEN
  111.       FLAG=1
  112.       RETURN
  113.       ENDIF
  114.       FLAG=0
  115.       RETURN
  116.       END
  117.      
  118.       SUBROUTINE ERROR
  119.       PRINT*, 'WRONG DATA, PLEASE, CHECK THE STATES'
  120.       RETURN
  121.       END
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement