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