%BEGIN %INTEGERARRAY LAB,CON,LIB(1:63) %INTEGERARRAY SNP,IND,TOTA(1:63) %INTEGERARRAY MAJ,INDX(1:63) %REALARRAY PC(1:63) %OWNREAL P1,P2 %OWNINTEGER I,J,K,L,C,B,S,NUM,TOT,INDEX %ROUTINE READ LINE %INTEGER I %CYCLE READSYMBOL(I); PRINTSYMBOL(I) %EXIT %IF I=NL %REPEAT %END %INTEGERFN READ CAND %INTEGER I,J,K READSYMBOL(I) %IF I='*' %THEN SKIPSYMBOL %AND %RESULT = 0 READ(J) %UNLESS I = 'P' %IF I#'M' %AND I#'P' %START TOT = TOT+J INDEX = INDEX+1 %FINISH %IF I='L' %THEN LAB(NUM)=J %AND K = 1 %IF I='C' %THEN CON(NUM)=J %AND K = 2 %IF I='B' %THEN LIB(NUM)=J %AND K = 3 %IF I='S' %THEN SNP(NUM)=J %AND K = 4 %IF I='I' %THEN IND(NUM)=J %AND K = 5 %IF INDEX =1 %THEN INDX(NUM)=K %IF I='M' %THEN MAJ(NUM)=J %IF I='P' %START READ(PC(NUM)) %FINISH SKIPSYMBOL %RESULT = 1 %END %ROUTINE PRINT INFO(%INTEGERARRAYNAME X, %INTEGER INDEX) PRINTSTRING(" !") %UNLESS INDEX = 1 %IF INDEX = INDX(NUM) %THEN PRINTSTRING(" *") %ELSE %C SPACES(2) WRITE(X(NUM),4); %IF INDEX#6 %START PRINT((X(NUM)*100)/TOT, 2, 1) PRINTSYMBOL('%') %FINISH %END %CYCLE I = 1, 1, 63 LAB(I)=0; CON(I)=0; LIB(I)=0;SNP(I)=0;IND(I)=0 TOTA(I)=0;MAJ(I)=0;INDX(I)=0 PC(I)=0 %REPEAT SELECT INPUT(1); SELECT OUTPUT(2) PRINTSTRING(" LAB CON LIB SNP IND") PRINTSTRING(" TOTAL MAJ TURN ") %CYCLE %IF NEXTSYMBOL = '*' %THEN NEWLINES(5) %AND %EXIT NEWLINES(2); READ LINE INDEX=0;TOT=0; NUM = NUM+1 %CYCLE I = READ CAND; %EXIT %IF I = 0 %REPEAT TOTA(NUM)=TOT PRINTINFO(LAB,1); PRINTINFO(CON,2); PRINTINFO(LIB,3) PRINTINFO(SNP,4); PRINTINFO(IND,5); PRINTINFO(TOTA,6) PRINTINFO(MAJ,7) PRINT(PC(NUM), 5,1); PRINTSYMBOL('%') J=0 %REPEAT %CYCLE I = 1, 1, 62 L = L+LAB(I); C = C+CON(I) B = B+LIB(I); S = S+SNP(I) K = K+IND(I) %REPEAT LAB(63) = L; CON(63) = C; LIB(63) = B SNP(63) = S; IND(63) = K NUM=63 TOT = L+C+B+S+K; TOTA(63)=TOT PRINTINFO(LAB,1);PRINTINFO(CON,2) PRINTINFO(LIB,3); PRINTINFO(SNP,4); PRINTINFO(IND,5) PRINTINFO(TOTA,6) NEWLINES(5) J = 0; K=0 %CYCLE I = 1, 1, 62 %IF INDX(I) = 1 %THEN P1=P1+PC(I) %AND K=K+1 %IF INDX(I) = 2 %THEN P2=P2+PC(I) %AND J=J+1 %REPEAT PRINTSTRING(" Average turnout in LAB seats was:") PRINT(P1/K, 2, 1); PRINTSTRING("% Average turnout in CON seats was:") PRINT(P2/J, 2, 1); PRINTSTRING("% ") B=0;S=0;TOT=0;K=0 J=0;L=0 NEWLINES(3) %CYCLE I = 1, 1, 62 %IF LIB(I)#0 %START B=B+LIB(I); TOT=TOT+TOTA(I); J=J+1 %FINISH %IF SNP(I)#0 %START S=S+SNP(I); K =K+TOTA(I); L=L+1 %FINISH %REPEAT PRINTSTRING("Average LIB vote in seats they stood in:") PRINT(B/J, 2, 0); PRINT((B*100)/TOT, 5, 1); PRINTSTRING("% Average SNP vote in seats they stood in:") PRINT(S/L, 2, 0); PRINT((S*100)/K, 5, 1); PRINTSTRING("% ") %ENDOFPROGRAM