IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Ada Discussion :

Pile de STRINGS [ADA]


Sujet :

Ada

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2008
    Messages : 7
    Points : 6
    Points
    6
    Par défaut Pile de STRINGS [ADA]
    Salut à tous,

    voilà j'ai un problème avec un exercice que j'ai à faire pour l'école. Je dois créer un package permettant de gérer des piles de chaîne de caractères. Jusque là, rien d'exceptionnel ! Mais ou ca se complique, c'est que on a certaine contraintes.

    J'explique: on a la spécification du package forcée (aucune modification autorisée sur cette spec). La spécification (ou la partie qui nous interesse) est la suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
            type T_Info is ...;
     
    	type T_Elément; 
    	type T_Lien is access T_Elément;
    	type T_Elément is record 
    		Info    : T_Info;
    		Suivant : T_Lien; 
    	end record; 
     
    	type T_Pile_Dynamique is record 
    		Sommet : T_Lien;
    	end record;

    voilà comme vous le voyez, c'est quelques types permettant de gérer des piles. La seule chose, encore une fois, est de faire des piles de <souligne>strings</souligne> (pas d'unbounded). Ces chaînes seront du type T_Info. Ce type, c'est à nous de le définir ! et c'est la qu'est la difficulté. En effet, impossible d'utiliser simplement des strings (pas de types non contraints dans un article en ada). Ok, on pourrait se dire : Simplement des pointeurs sur strings !

    mais la spécifications de nos procédures sont de ce genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    procedure Empiler (Pile : in out T_Pile_Dynamique; Info : in T_Info);
    L'utilisateur du package devrait simplement pouvoir entrer une chaîne de caractère et elle s'empilerait ! Mais comme je l'ai dit, pas possible de faire de T_Info un type string simple! Il faudrait pouvoir transformer les chaînes que l'utilisateur entre en pointeur pointant sur cette chaîne ! C'est la seule solution que je vois, mais j'ai aucune idée comment faire ca.

    Si vous voyez une autre solution, merci d'avance !

  2. #2
    Membre averti Avatar de Blackknight
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2009
    Messages
    214
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2009
    Messages : 214
    Points : 383
    Points
    383
    Par défaut
    Tu ne peux pas utiliser le type Unbounded_String ?

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Inscrit en
    Septembre 2006
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2006
    Messages : 1
    Points : 1
    Points
    1
    Par défaut
    salut blackknight, non malheureusement il n'est pas permis d'utiliser d'unbounded string, on doit faire sans (je suis dans le même cas).

  4. #4
    Membre averti Avatar de Blackknight
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2009
    Messages
    214
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2009
    Messages : 214
    Points : 383
    Points
    383
    Par défaut
    As quoi as-tu exactement le droit ?
    Y a-t-il des contraintes particulières ? Les chaines doivent-elles être dynamiques obligatoirement ou peuvent-elles être de taille fixe ?
    As-tu le droit de placer un discriminant ?
    As-tu le droit de faire une fonction de création de ton T_Info ? Une sorte de constructeur

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 58
    Points : 76
    Points
    76
    Par défaut Utiliser des string aliased
    Pourquoi ne pas simplement imposer que les chaînes de caractères à empiler soient déclarées aliased et d'empiler en fait les adresses de ces chaînes (ou des copies de celles-ci dans le heap) via un pointeur ?

  6. #6
    Membre averti Avatar de Blackknight
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2009
    Messages
    214
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2009
    Messages : 214
    Points : 383
    Points
    383
    Par défaut
    Effectivement, ça marchera bien et c'est certainement là l'idée.
    M'enfin, j'aime plus jouer avec les pointeurs depuis le C++

Discussions similaires

  1. Réponses: 7
    Dernier message: 12/06/2023, 15h51
  2. ada string dynamique
    Par lovoo dans le forum Ada
    Réponses: 1
    Dernier message: 31/05/2010, 09h15
  3. Erreur de compilation avec Ada.Strings.Unbounded
    Par semaj_james dans le forum Ada
    Réponses: 7
    Dernier message: 20/04/2007, 16h28
  4. URGENT: retour de string
    Par Pinggui dans le forum CORBA
    Réponses: 4
    Dernier message: 15/07/2002, 09h47
  5. String Grid et choix d'une couleur pour une ligne
    Par Gigottine dans le forum C++Builder
    Réponses: 12
    Dernier message: 17/05/2002, 15h23

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo