%EXTERNALROUTINE SURVEY(%STRING (255) S) !! %CONSTINTEGER NDATE = 7, JUNCTS = 17 %CONSTINTEGER SP1 = 7, SP2 = 12, SP3 = 13, SP4=16 !! %INTEGERARRAY X,Y,Z,P(1:NDATE,1:JUNCTS) %STRING (50) %ARRAY NAMES(1:JUNCTS) !! %INTEGER I, J !! %CONSTSTRING (10) %ARRAY DATES(1:NDATE) = %C "10 MAY 78", "12 MAY 78", "20 JUN 78", "28 SEP 78", "05 OCT 78", "14 FEB 79", "27 JUN 79" !! %EXTERNALROUTINESPEC PROMPT(%STRING(18) S) %EXTERNALROUTINESPEC DEFINE(%STRING (255) S) !! %STRING (255) T,U !! %ROUTINE READ LINE(%STRINGNAME S) %INTEGER I S = "" %CYCLE READSYMBOL(I); %RETURN %IF I = NL S = S.TOSTRING(I) %REPEAT %END !! %ROUTINE READ TABLE(%INTEGERARRAYNAME X, %STRING(255) S) %INTEGER I,J, SUM PROMPT(S) %CYCLE I = 1, 1, JUNCTS-1 %CYCLE J = 1, 1, NDATE READ(X(J, I)) %REPEAT %REPEAT %CYCLE I = 1, 1, NDATE SUM = 0 %CYCLE J = 1, 1, JUNCTS-1 SUM = SUM+X(I, J) %REPEAT X(I, JUNCTS) = SUM %REPEAT %END !! %ROUTINE TABLE(%INTEGERARRAYNAME X) %INTEGER I, J, N !! %ROUTINE ROW %INTEGER I %CYCLE I = 1, 1, 126; PRINTSYMBOL('-'); %REPEAT NEWLINE %END !! NEWLINE ROW SPACES(30) %CYCLE I = 1, 1, NDATE PRINTSTRING(DATES(I)); PRINTSTRING(" ! ") %REPEAT NEWLINE ROW %CYCLE I = 1, 1, JUNCTS PRINTSTRING(NAMES(I)) SPACES(32-4-LENGTH(NAMES(I))) %CYCLE J = 1, 1, NDATE SPACES(4) N = X(J, I) %IF N = 0 %THEN PRINTSTRING(" - ") %ELSE %C WRITE(N ,3) PRINTSTRING(" !") %REPEAT NEWLINE ROW %IF I=SP1 %OR I=SP2 %OR I=SP3 %OR I=SP4 %THEN %C NEWLINE %AND ROW %REPEAT %END !! %ROUTINE PERC(%INTEGERARRAYNAME X, Y, Z) %INTEGER I, J %CYCLE I = 1, 1, JUNCTS; %CYCLE J = 1, 1, NDATE %IF X(J, I)=0 %THEN Z(J, I)=0 %ELSE %C Z(J, I) = INT PT(Y(J, I)*100/X(J, I)) %REPEAT; %REPEAT %END !! %UNLESS S->T.("/").U %START PRINTSTRING("PARAMETERS ARE 'IN/OUT' ") %STOP %FINISH DEFINE("ST1,".T) DEFINE("ST2,".U) SELECT INPUT(1); SELECT OUTPUT(2) !! PROMPT("JUNCT NAME?") %CYCLE I = 1, 1, JUNCTS READLINE(NAMES(I)) %REPEAT !! !! READ TABLE(X, 'TOTAL:') READ TABLE(Y, "PEAK:") READ TABLE(P, "9-10") !! NEWPAGE PRINTSTRING("TABLE OF TOTAL COUNTS FOR EACH JUNCTION FOR THE") PRINTSTRING(" PERIOD 7.30 - 10.00 ") TABLE(X) NEWPAGE PRINTSTRING("TABLE OF TOTAL COUNTS FOR EACH JUNCTION FOR THE") PRINTSTRING(" PEAK HOUR 8.00-9.00 AM ") TABLE(Y) NEWPAGE PRINTSTRING("PERCENTAGE OF PEAK HOUR 8.00-9.00 TO TOTAL ") PERC(X, Y, Z) TABLE(Z) NEWPAGE PRINTSTRING("TABLE OF TOTAL COUNTS FOR EACH JUNCTION FOR THE") PRINTSTRING(" PERIOD 9.00-10.00 ") TABLE(P) PERC(X, P, Z) NEWPAGE PRINTSTRING("PERCENTAGE OF 9.00-10.00 TO TOTAL ") TABLE(Z) NEWPAGE %END %ENDOFFILE