! ! =====> Program - P54.F90 ! CHARACTER (LEN=3) :: MONTH(12) INTEGER UNITS(12),UQ(4) REAL SALES(12),DQ(4) ! ! PRINT *, 'This is Program >> P54 - Array Max, Min, Average' ! ! Tell program where data for READ * is coming from OPEN(UNIT=5, FILE='P54.DAT') ! UNIT=5 is the default input ! ! L1: DO I=1,12 READ 202,MONTH(I),UNITS(I),SALES(I) END DO L1 202 FORMAT(A3,I7,F5.1) ! NCARS=UNITS(1) TOTALS=SALES(1) SBIG=TOTALS ! Set biggest to the first one SMIN=TOTALS ! Set smallest to the first one MINS=1 MAXS=1 ! ! Loop through the arrays and find max and min ! and totals L2: DO I=2,12 NCARS=NCARS+UNITS(I) TOTALS=TOTALS+SALES(I) IF(SALES(I) > SBIG)THEN SBIG=SALES(I) MAXS=I ! Remember position of biggest ELSE IF(SALES(I) < SMIN)THEN SMIN=SALES(I) MINS=I ! Remember position of smallest ENDIF END DO L2 ! ! Form the totals by quarter ! I=0 L3: DO J=1,4 UQ(J)=0 DQ(J)=0 L4: DO K=1,3 I=I+1 UQ(J)=UQ(J)+UNITS(I) DQ(J)=DQ(J)+SALES(I) END DO L4 END DO L3 ! ! OUTPUT ORIGINAL DATA + RESULTS ! PRINT 501 501 FORMAT(//'MONTH UNIT', & ' SALES M$'/) L4: DO K=1,12 PRINT 503,MONTH(K),UNITS(K),SALES(K) END DO L4 503 FORMAT(3X,A3,I6,F6.1) PRINT 504,NCARS,TOTALS 504 FORMAT(/' TOTALS',I5,F6.1) NAVE=NCARS/12 TAVE=TOTALS/12.0 PRINT 505,NAVE,TAVE 505 FORMAT(/' AVE.',I7,F6.1) PRINT 506,SBIG,SMIN ! Biggest and smallest values and PRINT 507,MONTH(MAXS),MONTH(MINS) ! corresponding months 506 FORMAT(/'BEST/WORST-',2F7.1) 507 FORMAT(/'OCCURED IN ',2(4X,A3)) PRINT 530,UQ PRINT 531,DQ 530 FORMAT(/'CARS SOLD BY QUARTER',4I8) 531 FORMAT('SALES BY QUARTER ',4F8.1) STOP END DATA: JAN 672 3.4 FEB 609 3.2 MAR 715 3.7 APR 803 4.2 MAY 810 4.8 JUN 831 5.1 JUL 829 5.1 AUG 727 5.1 SEP 780 4.3 OCT 703 3.9 NOV 791 4.2 DEC 783 3.6 OUTPUT: Program entered This is Program >> P54 - Array Max, Min, Average MONTH UNIT SALES M$ JAN 672 3.4 FEB 609 3.2 MAR 715 3.7 APR 803 4.2 MAY 810 4.8 JUN 831 5.1 JUL 829 5.1 AUG 727 5.1 SEP 780 4.3 OCT 703 3.9 NOV 791 4.2 DEC 783 3.6 TOTALS 9053 50.6 AVE. 754 4.2 BEST/WORST- 5.1 3.2 OCCURED IN JUN FEB CARS SOLD BY QUARTER 1996 2444 2336 2277 SALES BY QUARTER 10.3 14.1 14.5 11.7 Fortran-90 STOP
Page builder: Charles Boivin
Last modified: 11/07/95