http://www.adaconcept.com/programs/ontozorendszeres_szimulacio/szimulacio-ontozorendszer-terv.ads
package Szimulacio.Ontozorendszer.Terv is
pragma Elaborate_Body; -- Elofordulhat, hogy elaboracios idoben is hasznaljak majd a csomagot
-- egyke csomag
subtype Reszletpont_Azonosito_Tipus is Integer range Reszletpontok'First - 1 .. Reszletpontok'Last; -- egyel tobb azonositot tartalamz, mint ahany reszletpont van (Emlekezteto: alulcsordulas / tulcsordulas) :)
subtype Valodi_Reszletpont_Azonosito_Tipus is Integer range Reszletpontok'First .. Reszletpontok'Last;
type Terv_Tipus is array(Valodi_Reszletpont_Azonosito_Tipus) of Reszletpont_Azonosito_Tipus;
type Cso_Csatlakozasok_Tomb_Tipus is array(Natural range <>) of Valodi_Reszletpont_Azonosito_Tipus;
function Cso_Csatlakozasok return Terv_Tipus;
function Cso_Csatlakozasok(VR : Valodi_Reszletpont_Azonosito_Tipus) return Cso_Csatlakozasok_Tomb_Tipus;
function Vizforrastol_Mert_Tavolsag(VR : Valodi_Reszletpont_Azonosito_Tipus) return Natural;
private
-- a Prim algoritmushoz
Nincs_Szulo : constant Reszletpont_Azonosito_Tipus := Reszletpont_Azonosito_Tipus'First; -- ezert kellett az egyel tobb reszletpont ("extremalis ertek")
--
Maximalis_Elsuly : constant := 1; -- "nem sulyozott a graf", csak a szomszedsagi kapcsolatok fontosak
Vegtelen_Elsuly : constant := Maximalis_Elsuly + 1;
type Elsuly_Tipus is new Natural range 0 .. Vegtelen_Elsuly;
subtype Valodi_Elsuly_Tipus is Elsuly_Tipus range 0 .. Maximalis_Elsuly;
--
Szomszedsagi_Matrix : array(Valodi_Reszletpont_Azonosito_Tipus, Valodi_Reszletpont_Azonosito_Tipus) of Valodi_Elsuly_Tipus := ( others => ( others => Elsuly_Tipus'First ));
Kesz_Tomb : array(Valodi_Reszletpont_Azonosito_Tipus) of Boolean;
D : array(Valodi_Reszletpont_Azonosito_Tipus) of Elsuly_Tipus;
P : Terv_Tipus;
procedure Szomszedsagi_Matrix_Inicializalasa(Szogpontok : Reszletpont_Tomb_Tipus);
function Gyoker(Szogpontok : Reszletpont_Tomb_Tipus) return Valodi_Reszletpont_Azonosito_Tipus;
procedure Prim(Start_Csucs : Valodi_Reszletpont_Azonosito_Tipus);
function Gyokertol_Mert_Tavolsag(VR : Valodi_Reszletpont_Azonosito_Tipus) return Natural;
end Szimulacio.Ontozorendszer.Terv;