Forum |  HardWare.fr | News | Articles | PC | Prix | S'identifier | S'inscrire | Aide Recherche
2102 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
jovalise
Par l'anneau de l'i.a.
Posté le 26-12-2007 à 15:43:18  profilanswer
 

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


Message édité par jovalise le 26-12-2007 à 15:49:56

---------------
Là où l'Homme ne pourra aller, Ada ira. Nouveau: Le net de jovalise
n°1663087
jovalise
Par l'anneau de l'i.a.
Posté le 26-12-2007 à 15:52:48  profilanswer
 

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


---------------
Là où l'Homme ne pourra aller, Ada ira. Nouveau: Le net de jovalise
n°1663318
lebest
Posté le 27-12-2007 à 12:27:38  profilanswer
 
n°1663449
jovalise
Par l'anneau de l'i.a.
Posté le 27-12-2007 à 17:43:03  profilanswer
 

lebest a écrit :

Mais encore?


Vérifie le reste de ton code.


---------------
Là où l'Homme ne pourra aller, Ada ira. Nouveau: Le net de jovalise
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
jovalise
Par l'anneau de l'i.a.
Posté le 27-12-2007 à 19:56:43  profilanswer
 

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.  


---------------
Là où l'Homme ne pourra aller, Ada ira. Nouveau: Le net de jovalise

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


Hit-Parade
Copyright © 1997-2012 Hardware.fr SARL / Groupe LDLC / LesNumeriques.com / Version anglaise du site: BeHardware