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

66 lines
1.6 KiB
Ada
Raw Normal View History

package body vector is
procedure initialize(vec: in out T_Vecteur) is
begin
for i in 0..N-1 loop
vec(i) := 1.0/T_Element(N);
end loop;
end initialize;
procedure initialize(vec: in out T_Vecteur_Index) is
begin
for i in 0..N-1 loop
vec(i) := i;
end loop;
end initialize;
procedure put(vec: in T_Vecteur) is
begin
for i in 0..N-1 loop
put(vec(i)); new_line;
end loop;
end put;
procedure put(file: in out Ada.Text_IO.File_Type; vec: in T_Vecteur) is
begin
for i in 0..N-1 loop
put(file, vec(i), 1);
new_line(file);
end loop;
end put;
procedure put(file: in out Ada.Text_IO.File_Type; vec: in T_Vecteur_Index) is
begin
for i in 0..N-1 loop
put(file, vec(i), 1);
new_line(file);
end loop;
end put;
procedure sort_with_index_desc(vec: in out T_Vecteur; vec_index: out T_Vecteur_Index) is
tmp_Element: T_Element;
tmp_Natural: Natural;
max: Natural;
begin
for i in 0..N-2 loop
max := i;
for j in i+1..N-1 loop
if vec(max) < vec(j) then
max := j;
end if;
end loop;
if max /= i then
tmp_Element := vec(i);
vec(i) := vec(max);
vec(max) := tmp_Element;
tmp_Natural := vec_index(i);
vec_index(i) := vec_index(max);
vec_index(max) := tmp_Natural;
end if;
end loop;
end sort_with_index_desc;
end vector;