Mehdi Saada
2017-11-29 11:29:37 UTC
Je vous demanderai de temps en temps de l'aide quand je comprendrai pas le compilateur ou le manuel. Dans la vraie vie, je suis en deuxième année dd'histoire, et ayant testé la licence d'info, je suis pas près d'y retourner...
les specifications du paquetage:
generic
type Element_type is (<>);
type Indice_type is (<>);
type Tableau_type is array (Indice_type range <>) of Element_type;
package Tri_selection is
procedure tri (T: in out Tableau_type);
end Tri_selection;
$ gcc-6 -c tri_selection.ads
cannot generate code for file tri_selection.ads (package spec)
gnatmake: "tri_selection.ads" compilation error
je pensais que les spécifications pouvaient se compiler à part ?
Quant au corps, voilà le message:
***@debian:~/essai$ gnatmake tri_selection.adb
gcc-6 -c tri_selection.adb
tri_selection.adb:7:35: expected type "Indice_type" defined at tri_selection.ads:3
tri_selection.adb:7:35: found type "Element_type" defined at tri_selection.ads:2
tri_selection.adb:8:27: expected type "Indice_type" defined at tri_selection.ads:3
tri_selection.adb:8:27: found type "Element_type" defined at tri_selection.ads:2
tri_selection.adb:8:35: expected type "Indice_type" defined at tri_selection.ads:3
tri_selection.adb:8:35: found type "Element_type" defined at tri_selection.ads:2
tri_selection.adb:9:27: expected type "Indice_type" defined at tri_selection.ads:3
tri_selection.adb:9:27: found type "Element_type" defined at tri_selection.ads:2
tri_selection.adb:9:35: expected type "Indice_type" defined at tri_selection.ads:3
tri_selection.adb:9:35: found type "Element_type" defined at tri_selection.ads:2
tri_selection.adb:19:33: expected type "Element_type" defined at tri_selection.ads:2
tri_selection.adb:19:33: found type "Indice_type" defined at tri_selection.ads:3
gnatmake: "tri_selection.adb" compilation error
le code si jamais. J'ai corrigé les fautes de syntaxe bête (virgules au lieu de point-virgule, rien de plus), mais il reste les message plus haut.
package body Tri_selection is
temp : Element_type;
procedure tri (T: in out Tableau_type) is
procedure Swap (T: in out Tableau_type; A, B : in out Element_type) is
temp: Element_type;
begin
temp := T(A);
T(A) := T(B);
T(B) := T(A);
end Swap;
temp: Indice_type;
begin
for I in Tableau_type'Range loop
for J in I..Tableau_type'Last loop
if T(J) < T(Tableau_type'Last) then temp := J;
end if;
end loop;
Swap (T,temp,Tableau_type'Last);
end loop;
end tri;
end Tri_selection;
les specifications du paquetage:
generic
type Element_type is (<>);
type Indice_type is (<>);
type Tableau_type is array (Indice_type range <>) of Element_type;
package Tri_selection is
procedure tri (T: in out Tableau_type);
end Tri_selection;
$ gcc-6 -c tri_selection.ads
cannot generate code for file tri_selection.ads (package spec)
gnatmake: "tri_selection.ads" compilation error
je pensais que les spécifications pouvaient se compiler à part ?
Quant au corps, voilà le message:
***@debian:~/essai$ gnatmake tri_selection.adb
gcc-6 -c tri_selection.adb
tri_selection.adb:7:35: expected type "Indice_type" defined at tri_selection.ads:3
tri_selection.adb:7:35: found type "Element_type" defined at tri_selection.ads:2
tri_selection.adb:8:27: expected type "Indice_type" defined at tri_selection.ads:3
tri_selection.adb:8:27: found type "Element_type" defined at tri_selection.ads:2
tri_selection.adb:8:35: expected type "Indice_type" defined at tri_selection.ads:3
tri_selection.adb:8:35: found type "Element_type" defined at tri_selection.ads:2
tri_selection.adb:9:27: expected type "Indice_type" defined at tri_selection.ads:3
tri_selection.adb:9:27: found type "Element_type" defined at tri_selection.ads:2
tri_selection.adb:9:35: expected type "Indice_type" defined at tri_selection.ads:3
tri_selection.adb:9:35: found type "Element_type" defined at tri_selection.ads:2
tri_selection.adb:19:33: expected type "Element_type" defined at tri_selection.ads:2
tri_selection.adb:19:33: found type "Indice_type" defined at tri_selection.ads:3
gnatmake: "tri_selection.adb" compilation error
le code si jamais. J'ai corrigé les fautes de syntaxe bête (virgules au lieu de point-virgule, rien de plus), mais il reste les message plus haut.
package body Tri_selection is
temp : Element_type;
procedure tri (T: in out Tableau_type) is
procedure Swap (T: in out Tableau_type; A, B : in out Element_type) is
temp: Element_type;
begin
temp := T(A);
T(A) := T(B);
T(B) := T(A);
end Swap;
temp: Indice_type;
begin
for I in Tableau_type'Range loop
for J in I..Tableau_type'Last loop
if T(J) < T(Tableau_type'Last) then temp := J;
end if;
end loop;
Swap (T,temp,Tableau_type'Last);
end loop;
end tri;
end Tri_selection;