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;