http://www.adaconcept.com/programs/kiirok_csomag.adb
with ada.Text_IO;
use ada.Text_IO;
package body kiirok_csomag is
procedure Initialize (it:in out IdezetTipus) is
begin
Kepernyo.Kiir("konstruktor indul");
Kepernyo.sortores;
it.idezet:=it.i;
Kepernyo.Kiir(it.idezet.all);
Kepernyo.sortores;
for i in it.idezet.all'range loop --| minden taszk megkapja a sajat karakteret, es (annak) a poziciojat
it.taszkok(i):=new KarakterKiiro(it.idezet.all(i),i); --|
end loop; --|
Kepernyo.Kiir("konstruktor vege");
Kepernyo.sortores;
end Initialize;
procedure Finalize (it:in out IdezetTipus) is
kilephet:boolean;
begin
Kepernyo.Kiir("A DESTRUKTOR MOST INDULNA");
loop
kilephet:=true;
for i in 1..it.ihossz loop
if not it.taszkok(i)'terminated then
--Kepernyo.Kiir("*******************************************");
kilephet:=false;
end if;
end loop;
exit when kilephet;
end loop;
Kepernyo.Kiir("destruktor indul");
Kepernyo.sortores;
--Kepernyo.Kiir(it.idezet.all);
StringetFelszabadit(it.idezet);
--Kepernyo.Kiir(it.idezet.all); --ez mar nem letezik!!!
for i in 1..it.ihossz loop
TaszkotFelszabadit(it.taszkok(i));
end loop;
Kepernyo.Kiir("destruktor vege");
Kepernyo.sortores;
end Finalize;
protected body varakozasgeneralo is
procedure inicializal is
begin
Ada.Numerics.Float_Random.Reset(g);
inicializalva:=true;
end inicializal;
entry general(varakozasiido:out duration) when inicializalva is --orfelteteles belepesi pont
begin
varakozasiido:=duration(Ada.Numerics.Float_Random.random(g));
end general;
end varakozasgeneralo;
task body KarakterKiiro is
varakozasiido:duration;
begin
Varakozasgeneralo.general(varakozasiido);
delay 2*varakozasiido; --varunk valamennyi ideig, mielott barmit is csinalnank
Kepernyo.Kiir(ch,poz);
end KarakterKiiro;
protected body Kepernyo is
procedure Kiir (ki : string) is
begin
put(ki);
end Kiir;
procedure Kiir (ki : character;oszlop:natural) is
begin
set_col(Positive_Count(oszlop));
put(natural'image(oszlop)&":" & ki);
--put(ki);
end Kiir;
procedure sortores is
begin
new_line;
end;
end Kepernyo;
begin
varakozasgeneralo.inicializal; --mielott barmi is tortenhetne inicializaljuk a veletlenszam generalonkat...
end kiirok_csomag;