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