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

  FORUM HardWare.fr
  Programmation
  Ada

  lsite chainée en ADA avec allocation static des objets dans un tableau

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

lsite chainée en ADA avec allocation static des objets dans un tableau

n°2179188
sam_cha
Posté le 07-03-2013 à 13:54:40  profilanswer
 

Je souhaiterai créer un liste chainée en ADA avec la particularité de faire des allocation statique et non dynamique des objets.
En effet ayant une runtime ADA ne permettant pas de faire d'allocation dynamique je suis obligé de faire les allocations dans un tableau.
Cepandant dans ce cas la je narrive pas a gerer ma liste chainée.
Que doige mettre dans mon tableau uniquement les elements a chainé ou aussi un index de position dans la liste chainée?
Merci d'avance pour vos réponse

mood
Publicité
Posté le 07-03-2013 à 13:54:40  profilanswer
 

n°2179191
Profil sup​primé
Posté le 07-03-2013 à 14:10:40  answer
 

A priori non, dans le tableau on met que les éléments.
Mais c'est pas un simple tableau.

n°2179193
sam_cha
Posté le 07-03-2013 à 14:31:08  profilanswer
 

Du coup mon tableau ne contenant que mes elements c'est ma chaine qui va gérer le tableau.
g doit creer un record qui sera ma chaine et qui contiendra mon tablean et le pointeur vers un element?

n°2179195
sam_cha
Posté le 07-03-2013 à 14:39:07  profilanswer
 

voila un extrait de ma specification :  
   
   type maillon_T is private;
   type list_buffer_T is private;
   type list_T is access maillon_T;
   Empty_List : constant list_T := null;
   type list_chainee is new list_T;  
 
   type etat_elt_T is (Libre, Utilise);
       
   type maillon_T is record
      Value : etat_elt_T;
      Next : list_T;
      State: etat_elt_T := Libre;
   end record;  
   
   type list_buffer_T is array (1 .. List_Depth) of maillon_T;
 
   Buffer : list_buffer_T;

n°2179199
Profil sup​primé
Posté le 07-03-2013 à 14:51:36  answer
 

Ben si t'as pas droit à l'allocation dynamique pourquoi tu utilise des access.
Ou alors, je comprend pas.

n°2179200
sam_cha
Posté le 07-03-2013 à 15:03:00  profilanswer
 

en fait la runtime ADA m'interdit de faire des allocations :
pragma Restrictions (No Allocator);
 
Je pensais jsute au allocation de memoire pour les objets...mais tu as raison j'ai meme pas le droit de faire des access je crois.
Bon là je suis perdu alors.

n°2179209
Profil sup​primé
Posté le 07-03-2013 à 16:06:00  answer
 

Code :
  1. --------------------------------------------------------------                                                                                                
  2. --                                                          --                                                                                                
  3. --            MODULE DE STRUCTURES DE DONNEES               --                                                                                                
  4. --                                                          --                                                                                                
  5. --             PAQUETAGE DES LISTES CONTIGUES               --                                                                                                
  6. --                                                          --                                                                                                
  7. -- preconditions                                            --                                                                                                
  8. --    Inserer(Dans, En, Val): 1 <= En <= Longueur(Dans) + 1 --                                                                                                
  9. --    Supprimer (Dans, En), Ieme (Dans, En),                --                                                                                                
  10. --    Changer_Ieme (Dans, En, Val), Tronquer (Dans, En):    --                                                                                                
  11. --        1 <= En <= Longueur (Dans)                        --                                                                                                
  12. -- contrainte d'implantation                                --                                                                                                
  13. --    Inserer (Dans, En, Val), Prolonger (Dans, Val):       --                                                                                                
  14. --        Longueur (Dans) < Dans.Taille_Max                 --                                                                                                
  15. -- proprietes fonctionnelles                                --                                                                                                
  16. --    longueur (l) =                                        --                                                                                                
  17. --        si l = creation alors 0                           --                                                                                                
  18. --        sinsi l = inserer(l', k, e) alors longueur(l')+1  --                                                                                                
  19. --        sinon soit l = supprimer(l', k); longueur(l')-1   --                                                                                                
  20. --        fsi                                               --                                                                                                
  21. --    ieme(insSer(l, k, e), i) =                           --                                                                                                
  22. --        si 1 <= i < k alors ieme(l, i)                     --                                                                                              
  23. --        sinsi i = k alors e                               --                                                                                                
  24. --        sinon ieme(l, i - 1)                              --                                                                                                
  25. --        fsi                                               --                                                                                                
  26. --    ieme(supprimer(l, k), i) =                            --                                                                                                
  27. --        si 1 <= i < k alors ieme(l, i)                     --                                                                                              
  28. --        sinon ieme(l, i + 1)                              --                                                                                                
  29. --        fsi                                               --                                                                                                
  30. --    changer_ieme (l, k, e) = inserer(supprimer(l,k),k,e)  --                                                                                                
  31. --    prolonger (l, e) = inserer(l, longueur(l), e)         --                                                                                                
  32. --    tronquer (l, k) =                                     --                                                                                                
  33. --        si longueur(l) = k alors l                        --                                                                                                
  34. --        sinon tronquer(supprimer(l,k),k) fsi              --                                                                                                
  35. --                                                          --                                                                                                
  36. -- Auteur: Christian CARREZ,                                --                                                                                                
  37. -- Institution: CNAM 292 rue Saint Martin, 75141 Paris 03   --                                                                                                
  38. -- Derniere modification: 1 juillet 1997                    --                                                                                                
  39. --------------------------------------------------------------


 
 
Si ça peut t'aider voici une spécification ça s'appelle un liste contihue. C'est tiré de Structure de Données. j'ai pas l'isbn.

n°2179210
Profil sup​primé
Posté le 07-03-2013 à 16:07:39  answer
 

Ou pas,hein ?


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

  lsite chainée en ADA avec allocation static des objets dans un tableau

 

Sujets relatifs
HTML tableau colspanbrobleme: tableau de structure
Récupérer une "colonne" d'un tableauWord VB et calcul sur des objets insérés
Suppression des doublons dans un tableau des chaines des caractèresProbleme : Tableau de pointeurs sur structure
Liste simplement chainéeExercice java débutant Trie tableau
couleur tableau fct result valeur colonne csvAide VBA, Somme de chaque ligne d'un tableau
Plus de sujets relatifs à : lsite chainée en ADA avec allocation static des objets dans un tableau


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