Salut
Déjà, j'ai détecté une erreur là dedans :
1 2 3 4 5 6 7 8 9 10 11 12
| function top_min_insertion(var tete_top:pointeur_ligne_top;val:integer):pointeur_ligne_top;
var objet_top_min : pointeur_ligne_top;
begin
objet_top_min := tete_top;
while (objet_top_min^.compteur < val) do
begin
objet_top_min := objet_top_min.suivant;
end;
result := objet_top_min;
end; |
J'écrirais plutôt ceci
objet_top_min := objet_top_min^.suivant;
ensuite il faudrais tester, si on arrive pas en bout de liste dans le while
1 2
| while ((objet_top_min^.compteur < val) and (objet_top_min^.suivant<>nil)) do
objet_top_min := objet_top_min^.suivant; |
Déclare ta grosse fonction comme ceci (ce sera plus concis) :
procedure top_tri_insertion(var tete_top,fin_top:pointeur_ligne_top);
Dans ta grosse procédure, tu écris :
objet_top_min := top_min_insertion(tete_top,fin_top,tmp^.compteur);
là, tu passe trois paramètres, alors que ta fonction n'en prend que deux...
Evite d'utiliser des variables qui ont le même nom que certaines fonctions standard, en particulier val, qui, normalement est une fonction qui convertit une chaine de caractères en nombre
Je regarde le reste
Partager