! PROGRAM P52 ! ! ! Nested loops to access arrays ! IMPLICIT NONE INTEGER :: I,J,K,UNITS(12),NQ REAL :: SALES(12),SQ ! ! PRINT *, 'This is Program >> P52 - Nested loops for arrays' ! ! Tell program where data for READ * is coming from OPEN(UNIT=5, FILE='P52.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) I=0 L2: DO J=1,4 ! Four quarters NQ=0 SQ=0 L3: DO K=1,3 ! Each with three months I=I+1 ! Month pointer I goes from 1 to 12 NQ=NQ+UNITS(I) SQ=SQ+SALES(I) END DO L3 PRINT 25,J,NQ,SQ 25 FORMAT(' QUARTER',I2, & I7,' CARS $',F5.1,' M') END DO L2 STOP END PROGRAM P52DATA:
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 >> P52 - Nested loops for arrays QUARTER 1 1996 CARS $ 10.3 M QUARTER 2 2444 CARS $ 14.1 M QUARTER 3 2336 CARS $ 14.5 M QUARTER 4 2277 CARS $ 11.7 M
{$G256} {$P512} {$D+} PROGRAM p52 (input, output); VAR month : ARRAY[1..12] OF string[3]; units : ARRAY[1..12] OF INTEGER; sales : ARRAY[1..12] OF REAL; sq : REAL; i, j, nq, k : INTEGER; BEGIN FOR i := 1 TO 12 DO readln ( month[i], units[i], sales[i] ); i := 0; FOR j := 1 TO 4 DO BEGIN nq := 0; sq := 0; FOR k := 1 TO 3 DO BEGIN i := i + 1; nq := nq + units[i]; sq := sq + sales[i] END; { end for } writeln; writeln ( 'quarter', j:2, nq:7, ' cars $', sq:5:1, ' m' ); writeln END { end for } 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