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

Langage Pascal Discussion :

Utilisation de constantes tableau et variable


Sujet :

Langage Pascal

  1. #1
    Membre extrêmement actif Avatar de Jon Shannow
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Avril 2011
    Messages
    4 382
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2011
    Messages : 4 382
    Points : 9 739
    Points
    9 739
    Par défaut Utilisation de constantes tableau et variable
    Bonjour à toutes et tous,

    Le titre n'est pas clair, mais je n'arrivais pas à décrire mon problème.

    J'ai une constante déclarée comme suit
    Code Pascal : Sélectionner tout - Visualiser dans une fenêtre à part
    K_Boues = [ 22, 41, 46];

    Jusque là, pas de souci.

    Dans le code, j'utilise une variable de type entier in_JCase.
    Pour savoir si in_JCase est dans la liste définie par K_Boues, j'utilise la syntaxe suivante
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If in_JCase in K_Boues Then
    Et là encore, pas de souci.

    Par contre, j'aimerais savoir si in_JCase est égale à 22 ou 41 ou 46.
    J'ai essayé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If in_JCase = K_Boues[1] Then
    Mais là, j'ai une erreur de compilation "Error : Illegal Qualifier"

    Comment puis-je tester cela ?

    Merci d'avance
    JS
    Au nom du pèze, du fisc et du St Estephe
    Au nom du fric, on baisse son froc...

  2. #2
    Expert confirmé
    Avatar de BeanzMaster
    Homme Profil pro
    Amateur Passionné
    Inscrit en
    Septembre 2015
    Messages
    1 899
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Amateur Passionné
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Septembre 2015
    Messages : 1 899
    Points : 4 346
    Points
    4 346
    Billets dans le blog
    2
    Par défaut
    Salut je pense que cela vient du fait que ta constante n'est pas typée.

    Essayes comme ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    const
     K_Boues : array[0..2] of integer = (22, 41, 46);
    A+ Jérôme
    • "L'Homme devrait mettre autant d'ardeur à simplifier sa vie qu'il met à la compliquer" - Henri Bergson
    • "Bien des livres auraient été plus clairs s'ils n'avaient pas voulu être si clairs" - Emmanuel Kant
    • "La simplicité est la sophistication suprême" - Léonard De Vinci
    • "Ce qui est facile à comprendre ou à faire pour toi, ne l'est pas forcément pour l'autre." - Mon pèrei

    Mes projets sur Github - Blog - Site DVP

  3. #3
    Rédacteur/Modérateur
    Avatar de Andnotor
    Inscrit en
    Septembre 2008
    Messages
    5 688
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 688
    Points : 13 117
    Points
    13 117
    Par défaut
    La construction const a = [] n'est pas un tableau mais un ensemble et c'est pour ça que in fonctionne.

  4. #4
    Membre extrêmement actif Avatar de Jon Shannow
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Avril 2011
    Messages
    4 382
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2011
    Messages : 4 382
    Points : 9 739
    Points
    9 739
    Par défaut
    Citation Envoyé par Andnotor Voir le message
    La construction const a = [] n'est pas un tableau mais un ensemble et c'est pour ça que in fonctionne.
    Merci à toi et à BeanzMaster,

    Mais, ta réponse me pose question... Si je change pour prendre la syntaxe suggérée par BeanzMaster, est-ce que je "in" fonctionnera encore ?

    JS
    Au nom du pèze, du fisc et du St Estephe
    Au nom du fric, on baisse son froc...

  5. #5
    Rédacteur/Modérateur
    Avatar de Andnotor
    Inscrit en
    Septembre 2008
    Messages
    5 688
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 688
    Points : 13 117
    Points
    13 117
    Par défaut
    Pas avec un tableau. Là il faut une boucle pour retrouver l'index.

    Mais si les éléments de la liste ne dépassent pas 255 et surtout sont uniques, tu peux tout de même t'en sortir avec un ensemble (un ensemble est comme un tableau de bits).

    Il faut clairement déclarer les éléments et ensuite transtyper.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    type
      TK_Boue = (kb22=22, kb41=41, kb46=46);
     
    const
      K_Boues = [kb22, kb41, kb46];
     
    in_JCase := 41;
     
    if TK_Boue(in_JCase) = kb41 then ...
    if TK_Boue(in_JCase) in K_Boues then ...
    X := 10 +ord(kb41);

  6. #6
    Membre extrêmement actif Avatar de Jon Shannow
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Avril 2011
    Messages
    4 382
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2011
    Messages : 4 382
    Points : 9 739
    Points
    9 739
    Par défaut
    Merci,

    Je ne connaissais pas la syntaxe
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    type
      TK_Boue = (kb22=22, kb41=41, kb46=46);


    On apprend tous les jours

    JS
    Au nom du pèze, du fisc et du St Estephe
    Au nom du fric, on baisse son froc...

  7. #7
    Rédacteur/Modérateur
    Avatar de Andnotor
    Inscrit en
    Septembre 2008
    Messages
    5 688
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 688
    Points : 13 117
    Points
    13 117
    Par défaut
    Alors quelques infos supplémentaires.

    Si on ne définit pas d'indice, la numérotation commence à 0 : type x = (x1, x2, x3, x4) // ord() = 0,1,2,3.

    Définir un indice relance la numérotation : type x = (x1, x2=20, x3, x4) // ord() = 0,20,21,22.

    L'indice peut être négatif : type x = (x1=-1, x2, x3, x4) // ord() = -1,0,1,2. A noter que des indices négatifs ne sont pas compatibles avec la construction const a = [].

    Un indice peut correspondre à un autre indice : type x = (FirstX, x1=FirstX, x2, x3, LastX=x3, y1) // ord() = 0,0,1,2,2,3 ce qui permet des déclarations telles que const AllX = [FirstX..LastX].

    Voili, voilou

  8. #8
    Membre extrêmement actif Avatar de Jon Shannow
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Avril 2011
    Messages
    4 382
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2011
    Messages : 4 382
    Points : 9 739
    Points
    9 739
    Par défaut
    Merci à toi pour toutes ces explications, qui me seront utiles (et à d'autres aussi, j'en suis sûr).

    Je mets en résolu.

    JS
    Au nom du pèze, du fisc et du St Estephe
    Au nom du fric, on baisse son froc...

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

Discussions similaires

  1. Problème utilisation d'un tableau de variables en global
    Par somethingbetter dans le forum C
    Réponses: 5
    Dernier message: 20/02/2018, 15h24
  2. Réponses: 3
    Dernier message: 11/01/2010, 06h49
  3. Comment obtenir un tableau à taille variable ?
    Par marsupilami34 dans le forum Langage
    Réponses: 6
    Dernier message: 27/06/2005, 15h03
  4. [Stored Procedure]Only constants, expressions, or variables
    Par nmerydem dans le forum MS SQL Server
    Réponses: 9
    Dernier message: 20/10/2004, 18h29
  5. Fonction max d'un tableau de variables...
    Par Romalafrite dans le forum ASP
    Réponses: 7
    Dernier message: 20/07/2004, 10h38

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