with ada.numerics.discrete_random, ada.text_io;
use ada.text_io;
procedure kecske is
package boolrand is new ada.numerics.discrete_random(boolean);
use boolrand;
task kecske1;
task kecske2 is
entry tol(p : in out integer);
end kecske2;
task body kecske1 is
p : integer := 0;
begin
while p in -3..3 loop
kecske2.tol(p);
end loop;
if p = 4 then
put_line("Kecske1: atertem");
else
put_line("Kecske2: a masik jott at");
end if;
end kecske1;
task body kecske2 is
poz : integer := 0;
g : generator;
begin
reset(g);
while poz in -3..3 loop
accept tol(p : in out integer) do
if random(g) then
poz := poz + 1;
p := p + 1;
put_line("Kecskek pozicioja: " & integer'image(poz));
else
poz := poz - 1;
p := p - 1;
put_line("Kecskek pozicioja: " & integer'image(poz));
end if;
end tol;
end loop;
if poz = -4 then
put_line("Kecske2: atertem");
else
put_line("Kecske1: a masik jott at");
end if;
end kecske2;
begin
null;
end kecske;
VISSZA