begin comment LIBRARY 1; integer SUM; procedure P1(S, R, I, B, RA, IA); string S; real R; integer I; boolean B; real array RA; integerarray IA; SUM ≔ SUM + R + I + (if B then 1 else 0) + RA[1] + IA[1]; procedure P2(BA, L, SW, PR, RPR, IPR, BPR); boolean array BA; label L; switch SW; procedure PR; real procedure RPR; integerprocedure IPR; boolean procedure BPR; begin PR; SUM ≔ SUM + RPR + IPR; if BPR then goto L; if BA[1] then goto SW[2] end; procedure P3(R, I, B, RA, IA, BA, L); value R, I, B, RA, IA, BA, L; real R; integer I; boolean B; real array RA; integerarray IA; boolean array BA; label L; begin SUM ≔ SUM + R + I + RA[1] + IA[1] + (if B then 1 else 0) + (if BA[1] then 1 else 0); if BA[1] then goto L end; real R; boolean B; real array RA[1 : 1]; integerarray IA[1 : 1]; boolean array BA[1 : 1]; integerprocedure IPR; IPR ≔ 2 × SUM; real procedure RPR; RPR ≔ 3 × SUM; boolean procedure BPR; BPR ≔ ¬ B; procedure PR; SUM ≔ 5 × SUM + 1; switch SS ≔ WORK, FAIL; SUM ≔ 0; IA[1] ≔ - 2; RA[1] ≔ 3·55; BA[1] ≔ false; B ≔ true; R ≔ 6·4; P1(RA, “AB”, “AB”, “AB”, “AB”, “AB” ); P1(SS, RA, RA, RA, SS, SS); P1(PR, SS, SS, SS, PR, PR); P1(SS[2], PR, PR, PR, SS[2], SS[2]); P1(true, SS[2], SS[2], SS[2], true, true); P1(R, false, false, R, R, R); P2( “AB”, “AB”, “AB”, “AB”, “AB”, “AB”, “AB” ); P2(RA, RA, RA, RA, RA, RA, RA); P2(SS, SS, SS[2], SS, SS, SS, SS); P2(PR, PR, PR, R, PR, PR, PR); P2(FAIL, SS, FAIL, FAIL, FAIL, FAIL, FAIL); P2(true, true, true, true, true, true, true); P2(R, R, R, R, R, R, R); P3( “AB”, “AB”, “AB”, “AB”, “AB”, “AB”, “AB” ); P3(RA, RA, RA, R, R, R, RA); P3(SS, SS, SS, SS, SS, SS, SS); P3(PR, PR, PR, PR, PR, PR, PR); P3(FAIL, FAIL, FAIL, FAIL, FAIL, FAIL, SS); P3(true, true, R, true, true, true, true); P3(true, true, R, R, R, R, R); WORK :; if false then FAIL : OUTREAL(99, - 1); end