projet-programmation-impera.../src/vector.ads

81 lines
2.2 KiB
Ada
Raw Normal View History

with Ada.Text_IO; use Ada.Text_IO;
package Vector is
generic
Capacite: Positive;
package Entier is
type T_Vecteur is array (0..Capacite-1) of Natural;
procedure initialize(vec: in out T_Vecteur; value: in Natural);
procedure identity(vec: in out T_Vecteur);
procedure flip(vec: in out T_Vecteur);
procedure put(vec: in T_Vecteur);
procedure put(file: in out Ada.Text_IO.File_Type; vec: in T_Vecteur);
procedure quicksort(vec: in out T_Vecteur; low: Natural := 0; high: Natural := Capacite-1);
end Entier;
generic
type T_Digit is digits <>;
Capacite: Positive;
with package Vector_Entier is new Vector.Entier(Capacite => Capacite);
package Digit is
-- on permet l'affichage direct des T_Digit
package Text_T_Element is
new Ada.Text_IO.Float_IO(Num => T_Digit);
use Text_T_Element;
type T_Vecteur is array (0..Capacite-1) of T_Digit;
procedure initialize(vec: in out T_Vecteur; value: in T_Digit);
function sum(vec: in T_Vecteur) return T_Digit;
procedure flip(vec: in out T_Vecteur);
procedure put(vec: in T_Vecteur);
procedure put(file: in out Ada.Text_IO.File_Type; vec: in T_Vecteur);
procedure quicksort(vec: in out T_Vecteur; low: Natural := 0; high: Natural := Capacite-1);
procedure quicksort(vec: in out T_Vecteur; vec_index: in out Vector_Entier.T_Vecteur;
low: Natural := 0; high: Natural := Capacite-1);
end Digit;
generic
Capacite: Positive;
package Link is
type T_Link is record
from: Natural;
to: Natural;
end record;
type T_Vecteur is array (0..Capacite-1) of T_Link;
function create_network(file: in out Ada.Text_IO.File_Type; N_links: in Positive; naif: in Boolean) return T_Vecteur;
procedure put(vec: in T_Vecteur);
procedure is_sorted_and_uniq(vec: in T_Vecteur; dupe: out Natural; sorted: out Boolean);
function "<"(left, right: in T_Link) return Boolean;
procedure quicksort(vec: in out T_Vecteur; low: Natural := 0; high: Natural := Capacite-1);
end Link;
end Vector;