! PROGRAM P55 ! IMPLICIT NONE CHARACTER (LEN=3) :: MONTH(12) CHARACTER (LEN=1) :: S(30) INTEGER :: I,K,JJ,UNITS(12) REAL :: SALES(12) ! ! PRINT *, 'This is Program >> P55 - Print a simple Histogram' ! ! Tell program where data for READ is coming from OPEN(UNIT=5, FILE='P55.DAT') ! UNIT=5 is the default input ! ! L1: DO I=1, 12 READ 15,MONTH(I),UNITS(I),SALES(I) END DO L1 15 FORMAT(A3,I7,F5.1) ! L2: DO I=1,30 S(I)='*' END DO L2 ! PRINT 100 100 FORMAT('1MONTH UNITS SOLD'/) L3: DO I=1,12 JJ=(UNITS(I)-590)/10 PRINT 30,MONTH(I),(S(K),K=1,JJ) 30 FORMAT(' ',A3,' ',30A1) END DO L3 ! PRINT 101 101 FORMAT(/' MONTH SALES'/) L4: DO I=1,12 JJ=SALES(I)*5 PRINT 30,MONTH(I),(S(K),K=1,JJ) END DO L4 ! STOP END PROGRAM P55DATA:
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.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 >> P55 - Print a simple Histogram MONTH UNITS SOLD JAN ******** FEB * MAR ************ APR ********************* MAY ********************** JUN ************************ JUL *********************** AUG ************* SEP ******************* OCT *********** NOV ******************** DEC ******************* MONTH SALES JAN ***************** FEB **************** MAR ****************** APR ******************** MAY ************************ JUN ************************* JUL ************************* AUG ************************* SEP ********************* OCT ******************* NOV ******************** DEC *****************
{$G256} {$P512} {$D+} PROGRAM p55 (input, output); VAR month : ARRAY[1..12] OF string[3]; s : ARRAY[1..30] OF STRING[1]; units : ARRAY[1..12] OF INTEGER; sales : ARRAY[1..12] OF REAL; i, jj, k : INTEGER; BEGIN FOR i := 1 TO 12 DO readln ( month[i], units[i], sales[i] ); FOR i := 1 TO 30 DO s[i] := '*'; writeln ( ^l ); writeln ( 'month units sold' ); FOR i := 1 TO 12 DO BEGIN jj := (units[i] - 590) DIV 10; write ( ' ':2, month[i], ' ':2 ); FOR k := 1 TO jj DO write ( s[k] ); writeln END; { end for } writeln ( ^l ); writeln ( 'month sales' ); FOR i := 1 TO 12 DO BEGIN jj := trunc (sales[i] * 5.0); write ( ' ':2, month[i], ' ':2 ); FOR k := 1 TO jj DO write ( s[k] ); 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: 08/07/97