begin comment library 1; integer i, case; boolean b; real x; integer procedure p(k, q); value k; integer k; integer procedure q; p := if k = 1 then q(i) else if k = 2 then q(b) else if k = 3 then q(x) else q(q(20)); integer procedure q1(i); value i; integer i; q1 := 100 + i; integer procedure q2(b); value b; boolean b; q2 := 200 + (if b then 1 else 0); integer procedure q3(x); value x; real x; q3 := 300 + x; procedure fail(m, n); value m, n; integer m, n; if m \= n then begin outreal(1, m); outreal(1, n); outreal(1, case) end else case := case + 1; i := 1; x := 10.4; case := 0; b := false; fail(p(1, q1), 101); fail(p(4, q1), 220); fail(p(2, q2), 200); fail(p(3, q3), 310); fail(p(4, q3), 620); outreal(1, case) end algol begin comment library 3; integer i, case; boolean b; real x; integer procedure p(k, q); value k; integer k; integer procedure q; p := if k = 1 then q(i) else if k = 2 then q else if k = 3 then q(x) else q(q(20)); integer procedure q1(i); value i; integer i; q1 := 100 + i; integer procedure q2; q2 := 200 + (if b then 1 else 0); integer procedure q3(x); value x; real x; q3 := 300 + x; procedure fail(m, n); value m, n; integer m, n; if m \= n then begin outreal(1, m); outreal(1, n); outreal(1, case) end else case := case + 1; i := 1; x := 10.4; case := 0; b := false; fail(p(1, q1), 101); fail(p(4, q1), 220); fail(p(2, q2), 200); fail(p(3, q3), 310); fail(p(4, q3), 620); outreal(1, case) end algol begin comment library 1; integer i, j, k, k1; real t1, t2; integer procedure ackermann(m, n); value m, n; integer m, n; ackermann := if m = 0 then n + 1 else if n = 0 then ackermann(m - 1, 1) else ackermann(m - 1, ackermann(m, n - 1)); k := 16; k1 := 1; for i := 1 step 1 until 6 do begin t1 := cputime; j := ackermann(3, i); t2 := cputime; if j \= k - 3 then begin outreal(1, i); outreal(1, j) end; outreal(1, t2 - t1); outreal(1, 3 * (t2 - t1) / (512 * k1 - 15 * k + 9 * i + 37) ); k1 := 4 * k1; k := 2 * k; end end algol begin comment library 1; integer n; n := 3; begin array a[1 : if n = 3 then 3 else - 100]; integer n; n := 2; outreal(1, n); end; outreal(1, n) end algol begin comment library 9; integer array eq[1 : 3]; integer i; real x, y; procedure inc(a, b); value a, b; real a, b; if a < b then eq[1] := eq[1] + 1 else if a = b then eq[2] := eq[2] + 1 else eq[3] := eq[3] + 1; for i := 1 step 1 until 3 do eq[i] := 0; for i := 2 step 1 until 100 do begin inreal(2, x); y := 1 / (i * i - 1); outreal(1, y); inc(x, y) end; for i := 1 step 1 until 3 do outreal(1, eq[i]); end algol begin comment library 1; real x, y; integer i, j; array a[1 : 10]; x := y := 1.0; i := j := 0; begin procedure p; begin x := 20; i := x + y; q(a[3], i + j) end; procedure q(l, k); value k; label l; integer k; if k = 0 then goto l; switch a := a1, a2, a3; integer procedure j; j := y; real i; real procedure y; y := x; integer x; a1 :; x := 10; q(a[2], y - x); a2 :; p; if i = 0 or j = 0 or x = 1.0 or y = 1.0 then outreal(1, 100); a3 :; end; if i = 0 and j = 0 and x = 1.0 and y = 1.0 then outreal(1, 0) end algol 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; integer array 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; integer procedure 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; integer array 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]; integer array ia[1 : 1]; boolean array ba[1 : 1]; integer procedure ipr; ipr := 2 * sum; real procedure rpr; rpr := 3 * sum; boolean procedure bpr; bpr := not 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( [ab], r, sum, b, ra, ia); if sum \= 9 then outreal(1, sum); p2(ba, ss[2], ss, pr, rpr, ipr, bpr); if sum \= 276 then outreal(1, sum); work :; outreal(1, 0); p3(4.6, - 200, true , ra, ia, ba, if true then ss[2] else fail); if sum \= 83 then outreal(1, sum); p1( [cd], rpr, ipr, bpr, ra, ia); if sum \= 500 then outreal(1, sum); p3(rpr, ipr, bpr, ra, ia, ba, fail); if sum \= 3002 then outreal(1, sum); if false then fail : outreal(1, - 1); end algol 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; integer array 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; integer procedure 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; integer array 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]; integer array ia[1 : 1]; boolean array ba[1 : 1]; integer procedure ipr; ipr := 2 * sum; real procedure rpr; rpr := 3 * sum; boolean procedure bpr; bpr := not 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(1, - 1); end algol begin integer i; real r; boolean b; array a1[1 : i + b], a2[2 : 4, 5 : 7]; switch s := if r * p0 < 0 then l else l2; procedure p0; r := i div r; procedure p1(f); real f; b := i + r; l :; b := i > s; b := b or p0; r := b + a1; l2 :; r := b and b; i := p1(r); goto b; i; p1(a2 / r); r[i] := 5; i := if b then s else r; p1(if b then b else i - i); r := b := b and b; for i := b step 1 until r do a1[s] := a2[2]; a1 := 0; if r then goto l; for p0 := 1, 2 do a2[b, i] := 0; begin array q[b : 1]; end; p1(i, r); p1; end algol begin comment library 1; integer i; integer array a[1 : 10]; i := 1; for a[i] := 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 do i := i + 1; for i := 1 step 1 until 10 do if a[i] \= i then outreal(1, i); outreal(1, 0) end kdf9