Ajout d'une variable dynamique de type pointeur
Bon, voilà, je vous présente mon problème : je suis en première année d'école d'ingénieurs et jai un programme à realiser (gestion d'une compagnie d'assurances :? ). Jusqu'à présent, on s'était contenté d'étudier les variables dynamiques de type pointeur de manière théorique et, au début, ça allait. Mais là j'ai un gros problème avec elles.
J'ai créé une liste ordonnée (récupérée dans un fichier texte) et je voudrais lui chaîner un nouvel élément. Pour ceci, j'ai créé une procédure mais ça ne marche pas (lors de l'exécution, ma fenêtre se referme brusquement).
Voici la syntaxe de cette procédure, si quelqu'un pouvait bien m'expliquer mon erreur, merci d'avance.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
| ---------------declaration des types employes( ca peut etre utile)----------
interface
//Définition de type
type
T_donnee = record
nom:string; //nom du societaire
coeff_malus:real; //coefficient malus du societaire
cotisation_base:real; //cotisation de base du societaire
end;
T_ptr_societaire=^T_societaire;
T_societaire = record
info_societaire : T_donnee;
psuiv: T_ptr_societaire;
end;
--------------------------declaration du ssp----------------------------
PROCEDURE AJOUT_VD_LO(pnouvLO:T_ptr_societaire;var pdebLO:T_ptr_societaire);
var
pcour:T_ptr_societaire; //type de mon pointeur
trouve:boolean;
begin
trouve:=false;
pcour:=pdebLO;
while (not trouve) and (pcour<>nil) do
if pnouvLO^.info_societaire.nom<pcour^.info_societaire.nom
then
trouve:=true
else
begin
pcour:=pcour^.psuiv;
if pcour^.info_societaire.nom=pnouvLO^.info_societaire.nom
then
//ne rein faire
else
begin
pcour^.psuiv:=pcour;
pcour^.info_societaire:=pnouvLO^.info_societaire;
end;
end; |