! PROGRAM P53 ! IMPLICIT NONE INTEGER :: I,J,K,UNITS(12),UQ(4) REAL :: SALES(12),SQ(4) ! ! PRINT *, 'This is Program >> P53 - Four quarter in a year' ! ! Tell program where data for READ is coming from OPEN(UNIT=5, FILE='P53.DAT') ! UNIT=5 is the default input ! ! L1: DO I=1,12 READ 15,UNITS(I),SALES(I) END DO L1 15 FORMAT(I3,F5.1) ! ! FORM 4 QUARTER TOTALS ! I=0 L2: DO J=1,4 ! Four quarters UQ(J)=0 ! J points to each quarter in turn SQ(J)=0 L3: DO K=1,3 ! Each with three months I=I+1 ! Month pointer I goes from 1 to 12 UQ(J)=UQ(J)+UNITS(I) SQ(J)=SQ(J)+SALES(I) END DO L3 END DO L2 ! ! OUTPUT RESULTS ! PRINT 30,UQ ! Prints out complete array PRINT 31,SQ ! All four values printed 30 FORMAT(' CARS SOLD BY QUARTER ', 4I8) 31 FORMAT(' SALES BY QUARTER ', 4F8.1) STOP END PROGRAM P53DATA:
672 3.4 609 3.2 715 3.7 803 4.2 810 4.8 831 5.1 829 5.1 727 5.1 780 4.3 703 3.9 791 4.2 783 3.6OUTPUT:
+--------------------------------------------------+ | 32-bit Power for Lahey Computer Systems | | Phar Lap's 386|DOS-Extender(tm) Version 7.0 | | Copyright (C) 1986-94 Phar Lap Software, Inc. | | Available Memory = 14880 Kb | +--------------------------------------------------+ This is Program >> P53 - Four quarter in a year CARS SOLD BY QUARTER 1996 2444 2336 2277 SALES BY QUARTER 10.3 14.1 14.5 11.7
{$G256} {$P512} {$D+} PROGRAM p53 ( input, output ); VAR month : ARRAY[1..12] OF string[3]; units : ARRAY[1..12] OF INTEGER; uq : ARRAY[1..4] OF INTEGER; sales : ARRAY[1..12] OF REAL; dq : ARRAY[1..4] OF REAL; i, j, k : INTEGER; BEGIN FOR i := 1 TO 12 DO readln (month[i], units[i], sales[i]); { Form 4 quarter totals } i := 0; FOR j := 1 TO 4 DO BEGIN uq[j] := 0; dq[j] := 0; FOR k := 1 TO 3 DO BEGIN i := i + 1; uq[j] := uq[j] + units[i]; dq[j] := dq[j] + sales[i] END { end for } END; { end for } writeln ( ' cars sold by quarter ', uq[1]:5, uq[2]:5, uq[3]:5, uq[4]:5 ); writeln ( ' sales by quarter ', dq[1]:5, dq[2]:5, dq[3]:5, dq[4]:5 ) 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
Last modified: 22/07/97