Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
819 connectés 

  FORUM HardWare.fr
  Programmation
  Ada

  [ADA - débutant] Concaténer 2 listes

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[ADA - débutant] Concaténer 2 listes

n°1663074
lebest
Posté le 26-12-2007 à 15:08:14  profilanswer
 

Bonjour,

 

Voici la procédure que j'ai écrite pour mettre bout à bout 2 listes d'entiers L et L2. En sortie, je veux que L contienne la concaténation de L et L2

 

Je défini avant un type cellule

Code :
  1. type Cellule ;
  2.   type Liste is access Cellule ;
  3.  
  4.   type Cellule is record --on définit ici le type cellule qui sera utilisé par la suite
  5.      Val: Natural ;
  6.      Suiv: Liste ;
  7.   end record ;
 

Puis voici le code de ma procédure

Code :
  1. procedure Abouter(L:in out Liste ; L2: in Liste) is --permet de concaténer deux listes
  2.         Pcour:Liste:=L;                                     --en sortie : L:=L@L2
  3.         temp:Liste;                                    
  4.      begin
  5.         while Pcour/=null loop
  6.            Temp:=Pcour;
  7.            Pcour:=Pcour.Suiv;
  8.         end loop; --ici, temp vaut le dernier pointeur non nul de la liste L
  9.         Temp.suiv:=L2; -- c'est ici que j'obtiens un "access checked failed" car manifestement le fait que Temp.suiv vaut null ne plait pas
  10.      end Abouter;
 

Merci pour votre aide


Message édité par lebest le 26-12-2007 à 17:00:38
mood
Publicité
Posté le 26-12-2007 à 15:08:14  profilanswer
 

n°1663083
Profil sup​primé
Posté le 26-12-2007 à 15:43:18  answer
 

edit : je disais une bétise grosse comme mon cerveau.


Message édité par Profil supprimé le 26-12-2007 à 15:49:56
n°1663087
Profil sup​primé
Posté le 26-12-2007 à 15:52:48  answer
 

A mon avis, la vérité viens d'ailleurs.

n°1663318
lebest
Posté le 27-12-2007 à 12:27:38  profilanswer
 
n°1663449
Profil sup​primé
Posté le 27-12-2007 à 17:43:03  answer
 

lebest a écrit :

Mais encore?


Vérifie le reste de ton code.

n°1663465
lebest
Posté le 27-12-2007 à 19:34:32  profilanswer
 

C'est donc que cette procédure est exacte?

 

Pourtant quand je modifie temp.suiv:=L2 en temp:=L2 je n'obtiens plus de "access check failed"... (mais bien sûr la concaténation devient inexacte, il manque le dernier élément de L)

Message cité 1 fois
Message édité par lebest le 27-12-2007 à 19:35:05
n°1663471
Profil sup​primé
Posté le 27-12-2007 à 19:56:43  answer
 

lebest a écrit :

C'est donc que cette procédure est exacte?
 
Pourtant quand je modifie temp.suiv:=L2 en temp:=L2 je n'obtiens plus de "access check failed"... (mais bien sûr la concaténation devient inexacte, il manque le dernier élément de L)


 
SI ça lève cette erreur c'est que temps = null.
Il doit n'y avoir qu'un élément dans ta liste.
Montre tes ajouts dans la liste L pour voir.  


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Ada

  [ADA - débutant] Concaténer 2 listes

 

Sujets relatifs
[RESOLU]Afficher le poids des fichiers listés automatiquement en PHP[debutant] Programme perso de mastermind, qu'en pensez-vous?
[Oracle - Débutant] Exporter le résultat d'une requête dans un fichierDébutant html - Insertion d'image & navigateurs
html / php problème débutantProbleme boucle (debutant) Urgennttttttt
quelques questions d'un débutant.définir un polynome à l'aide de la fonction "atoi" avec des listes
Aide pour débutant[Resolu ]Incrementation [ debutanT ]
Plus de sujets relatifs à : [ADA - débutant] Concaténer 2 listes


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR