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 :

Type énuméré, subtype et intervalle


Sujet :

Ada

  1. #1
    Candidat au Club
    Inscrit en
    Août 2008
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 3
    Points : 2
    Points
    2
    Par défaut Type énuméré, subtype et intervalle
    Bonjour,

    Voila plusieurs heures maintenant que je cherche une réponse (positive ou négative !) à la question suivante :
    est-il possible en Ada d'avoir un type discret définit par un intervalle et d'autres éléments ?

    Pour être un peu plus précise :
    Je voudrais quelque chose qui me permette de ramener par exemple dans un seul type tous les caractères qui sont des lettres :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    subtype LettresMajMin is Charactere range 'A'..'Z'   _et_    'a'..'z'
    ou encore
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    type Jours is (lundi, mardi, mercredi, jeudi, vendredi);
    subtype Mes_Jours_ouvrés is Jour range lundi..mecredi _et_ vendredi;
    Mon réel problème se pose ainsi : j'ai un type de caractère qui dépend d'une variable générique de package (NbOfColor)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    subtype Color is Character Range 'a'..Character'Val(97+NbOfColors-1);
    Je gère par la suite un tableau de color... cependant, j'aimerais pouvoir quelque peu modifier mon tableau : en introduisant deux autres types de caracteres '*' et '-'

    Je voudrais donc plutot un tableau de "ExtendedColor" où ExtendedColor
    serait tous les caractères de Color, plus le caractère étoile et le caractere tiret...
    Un truc du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    type ExtendedColor is ('a'..Character'Val(97+NbOfColors-1), '*', '-')
    (puisque l'intervalle est dépendant d'une variable de package, la solution
    subtype ExtendedColors is Character('a','b','c','d','e',...,'*','-') n'est pas recevable !)

    Je suppose que la réponse est que cela n'ai pas possible, mais j'ai un peu du mal à voir pourquoi étant donné que cela serait faisable en énumérant tous les éléments...

    Merci de vos réponses potentielles,
    j'espere n'avoir pas été trop confuse.

    Bonne journée

  2. #2
    Expert éminent
    Avatar de PRomu@ld
    Homme Profil pro
    Ingénieur de Recherche
    Inscrit en
    Avril 2005
    Messages
    4 155
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Ingénieur de Recherche
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2005
    Messages : 4 155
    Points : 6 486
    Points
    6 486
    Par défaut
    est-il possible en Ada d'avoir un type discret définit par un intervalle et d'autres éléments ?
    Malheureusement la réponse est non.

  3. #3
    Candidat au Club
    Inscrit en
    Août 2008
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 3
    Points : 2
    Points
    2
    Par défaut merci
    je m'en doutais un peu :/ ...
    merci pour la reponse




    (petite note pour plus tard : rentrer chez adacore et faire modifier la grammaire du langage ^^)

  4. #4
    Expert éminent
    Avatar de PRomu@ld
    Homme Profil pro
    Ingénieur de Recherche
    Inscrit en
    Avril 2005
    Messages
    4 155
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Ingénieur de Recherche
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2005
    Messages : 4 155
    Points : 6 486
    Points
    6 486
    Par défaut
    (petite note pour plus tard : rentrer chez adacore et faire modifier la grammaire du langage ^^)
    En fait, ça implique pas mal de choses dans le langage, nécessairement dans l'interprétation et la génération de code.

    D'une part, il faudrait déterminer si les éléments peuvent être de types différents ? Est-ce que ça a un sens?

    Ensuite, si tu donnes un intervalle et un élement de cet intervalle, que ce passe-t'il ? Est-ce que l'élément doit être compté deux fois ?

    Tu vois, ce genre de modifications peut entraîner pas mal de changement dans le langage. Il est suffisamment puissant pour faire ce qu'on veut de manière sure, ça n'est pas la peine de rajouter des constructions qui peuvent être ambiguë et compliquer le langage.

  5. #5
    Candidat au Club
    Inscrit en
    Août 2008
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 3
    Points : 2
    Points
    2
    Par défaut Tres juste
    Correct ..

    je me doute que si cela n'a pas ete permis, c'est bien qu'il y avait des raisons...
    tant pis, (mais ca ne m'arrange tout de meme pas ! :/)

    bonne journee

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    114
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 114
    Points : 139
    Points
    139
    Par défaut
    Une petite précision : Adacore n'est pas propriètaire du langage. Le langage étant normalisé, toute modification se fait via des comités (des groupes de travail) qui analysent leurs impacts et leur apport. Les fabricants de compilateur ne peuvent "customiser" le langage que dans des proportions elles-mêmes définies dans la norme du langage.

    Voilà.

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 9
    Points : 10
    Points
    10
    Par défaut Création d'un type
    Bonjour,

    En guise de rattrapage du semestre dans mon école d'ing, je crois que je ne pourrez pas d'échapper à l'info. J'aurai une question concernant la création d'un type : est t-il possible de créer un type sclaire contenant les entiers (-1, 0, 5, 10 puis jusqu'à 1000 par pas de 5) ?

    Merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Questions sur les types énumérés
    Par Premium dans le forum Langage
    Réponses: 5
    Dernier message: 12/11/2006, 18h00
  2. [c# 2.0][DEBUTANT] type énuméré
    Par dsr57 dans le forum C#
    Réponses: 2
    Dernier message: 13/10/2006, 16h03
  3. [D2005] Utilisation des types énumérés
    Par bouha dans le forum Delphi .NET
    Réponses: 2
    Dernier message: 21/07/2005, 22h21
  4. Réponses: 7
    Dernier message: 02/06/2003, 08h38
  5. Transformer un caractère en type énuméré
    Par HT dans le forum Langage
    Réponses: 3
    Dernier message: 22/10/2002, 20h46

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