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 542
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    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 542
    Points : 10 364
    Points
    10 364
    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

  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 353
    Points
    4 353
    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

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

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 834
    Points : 13 587
    Points
    13 587
    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 542
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    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 542
    Points : 10 364
    Points
    10 364
    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

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

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 834
    Points : 13 587
    Points
    13 587
    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 542
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    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 542
    Points : 10 364
    Points
    10 364
    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

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

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 834
    Points : 13 587
    Points
    13 587
    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 542
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    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 542
    Points : 10 364
    Points
    10 364
    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

+ 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, 16h24
  2. Réponses: 3
    Dernier message: 11/01/2010, 07h49
  3. Comment obtenir un tableau à taille variable ?
    Par marsupilami34 dans le forum Langage
    Réponses: 6
    Dernier message: 27/06/2005, 16h03
  4. [Stored Procedure]Only constants, expressions, or variables
    Par nmerydem dans le forum MS SQL Server
    Réponses: 9
    Dernier message: 20/10/2004, 19h29
  5. Fonction max d'un tableau de variables...
    Par Romalafrite dans le forum ASP
    Réponses: 7
    Dernier message: 20/07/2004, 11h38

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