http://www.adaconcept.com/programs/ontozorendszeres_szimulacio/szimulacio-kert.ads
package Szimulacio.Kert is
-- Itt nem hasznalunk Elaborate_Body pragmat, hiszen a valosagban nem tudhatjuk egy csomag irasakor, hogy a muveleteit majd meghivjak e elaboracios idoben vagy nem
Kert_Szelesseg : constant Positive := 20;
Kert_Hosszusag : constant Positive := 10;
type Terv_Elemek_Tipus is (F, V, C, S);
-- ^ ^ ^ ^
-- fu vizforras csovezetek szorofej
-- figyeljuk meg, hogy mennyire fontos, hogy a kovetkezo atnevezesek es a Terv_Elemek_Tipus deklaracioja / definicioja kozott ne fedjuk el a tipus tipusertekeit
function Fu return Terv_Elemek_Tipus renames F;
function Vizforras return Terv_Elemek_Tipus renames V;
function Csovezetek return Terv_Elemek_Tipus renames C;
function Szorofej return Terv_Elemek_Tipus renames S;
subtype Kert_Szelesseg_Tipus is Positive range 1 .. Kert_Szelesseg;
subtype Kert_Hosszusag_Tipus is Positive range 1 .. Kert_Hosszusag;
-- NAGYON FONTOS!!!
-- a Reszletpontok szamozasa a Terv -et olvasva balrol jobbra, fentrol lefele 1 -tol egyesevel egymas utan tortenik majd!
-- Most nem olvasunk fajlbol, hogy a kod modositasa kozben meg lehessen figyelni a forditasi fuggosegeket, es meg sok mast is.
-- Ez alapjan epitjuk majd fel a feszitofat, ami a csovek csatlakozasait hatarozza meg.
Terv : constant array(Kert_Hosszusag_Tipus range <>, Kert_Szelesseg_Tipus range <>) of Terv_Elemek_Tipus :=
((F,F,F,F,F,F,F,F,F,F, F,F,F,F,F,F,F,F,F,F),
(F,F,F,F,F,F,F,F,F,F, F,F,F,F,F,F,F,F,F,F),
(F,F,S,F,F,F,F,F,F,C, C,C,S,F,F,F,F,F,F,F),
(F,F,C,F,F,F,F,F,F,C, F,F,F,F,F,F,F,F,F,F),
(F,F,C,F,F,F,F,F,F,C, F,F,F,F,F,F,F,F,F,F),
(F,F,C,F,F,F,F,F,F,C, F,F,F,F,F,F,F,F,F,F),
(F,F,S,F,F,F,F,F,F,C, F,F,F,F,F,F,F,S,F,F),
(F,F,C,F,F,F,F,F,F,C, F,F,F,F,F,F,F,C,F,F),
(V,C,C,C,C,C,C,C,C,C, C,C,C,C,C,C,C,C,F,F),
(F,F,F,F,F,F,F,F,F,F, F,F,F,F,F,F,F,F,F,F));
function Nem_Fu_Terv_Elemek_Szama_A_Terven return Natural;
function Szorofejek_Szama_A_Terven return Natural;
private
Terv_Elemek_Darabszamai : array(Terv_Elemek_Tipus) of Natural := ( others => 0 );
end Szimulacio.Kert;