http://www.adaconcept.com/programs/ontozorendszeres_szimulacio/szimulacio-kert.adb
with Hiba_Kezelo;
package body Szimulacio.Kert is
function Nem_Fu_Terv_Elemek_Szama_A_Terven return Natural is
begin
return Terv_Elemek_Darabszamai(Vizforras) +
Terv_Elemek_Darabszamai(Csovezetek) +
Terv_Elemek_Darabszamai(Szorofej);
end Nem_Fu_Terv_Elemek_Szama_A_Terven;
function Szorofejek_Szama_A_Terven return Natural is
begin
return Terv_Elemek_Darabszamai(Szorofej);
end Szorofejek_Szama_A_Terven;
begin
-- elaboracios idoben, ha tehetjuk keruljuk az alprogramok hivasat, igy pontosabb forditasi hibauzeneteket kaphatunk
Terv_Elemek_Darabszamainak_Meghatarozasa:
begin
for i in Terv'Range(1) loop
for j in Terv'Range(2) loop
Terv_Elemek_Darabszamai(Terv(i,j)) := Terv_Elemek_Darabszamai(Terv(i,j)) + 1;
end loop;
end loop;
end Terv_Elemek_Darabszamainak_Meghatarozasa;
A_Terv_Ellenorzese:
begin
-- a terven pontosan egy vizforras szerepelhet
if Terv_Elemek_Darabszamai(Vizforras) /= 1 then
Hiba_Kezelo.Program_Leallitas("A terven nem pontosan egy darab vizforras talalhato!"); -- Elaboracios idoben nekunk kell figyelnunk ra, nehogy olyan kivetel keletkezzen, amely elkeruli a Hiba_Kezelo -t. (bar ez nem minden esetben lehetseges)
end if;
end A_Terv_Ellenorzese;
end Szimulacio.Kert;