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

 C Discussion :

switch constante énumérée


Sujet :

C

  1. #1
    Invité
    Invité(e)
    Par défaut switch constante énumérée
    Bonjour, je dois concevoir un programme un programme, voici l'intitulé;
    Saisir un caractère et dire si c’est une voyelle ou une consonne(uilisez un switch).

    Je n'ai pas encore utilisé le switch, quelqu'un pourrait m'expliquer qu'es ce qu'une constante énuméré alors que je sais qu'un constante et une variable qui ne change pas de valeur dans le programme mais je ne sais pas comment les utiliser.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    #define IDENTIFIANT valeur;
    Exemple
    #define PI 3.14159
    .

    C'est à dire que je dois mettre un #define + valeur constante dans le préprocesseur !?

    Et dans le code, comment je déclare ma constante. Cela fait beaucoup de questions et j'ai un peu peur de me perdre dans théorie...

    Merci

  2. #2
    Invité
    Invité(e)
    Par défaut
    Excusez moi pour les fautes d'orthographes.

    Si je reformule ma question correctement. Es ce que quand j'utilise un switch, je dois utiliser une constante. Je pense que le but de l'exercice est tel...

    Cela fait beaucoup de théorie, je me répète mais avant d'entamer le code j'aimerais avoir des avis !

    Merci

  3. #3
    Expert éminent sénior
    Avatar de Kannagi
    Homme Profil pro
    cyber-paléontologue
    Inscrit en
    Mai 2010
    Messages
    3 214
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cyber-paléontologue

    Informations forums :
    Inscription : Mai 2010
    Messages : 3 214
    Points : 10 140
    Points
    10 140
    Par défaut
    Non tu n'es pas obligé d'utiliser une constance , par contre c'est ça qui est moche avec la théorie , si tu aurait testé tu aurait vu le résultat directement x)
    Bref la prog est très peu théorique dans 90% des cas.

  4. #4
    Invité
    Invité(e)
    Par défaut
    Merci

  5. #5
    Expert éminent sénior

    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    5 189
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 5 189
    Points : 17 141
    Points
    17 141
    Par défaut
    Question vocabulaire:
    une constante est une chose non modifiable.

    #define sert exclusivement à définir des MACRO, choses traités avant la compilation à proprement parlé, et fonctionnant comme un remplacement de texte.

    Supposons le code suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    #include <stdio.h>
    #define DEBUT {
    #define FIN }
     
    #define DEBUT_PROGRAMME int main() DEBUT
    #define FIN_PROGRAMME return 0; FIN
     
    #define AFFICHER_TEXTE(texte) printf(texte);
    #define MESSAGE "hello world"
     
    DEBUT_PROGRAMME
    AFFICHER_TEXTE(MESSAGE)
    FIN_PROGRAMME
    Le code effectivement compilé est:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    #include <stdio.h>
     
    int main() {
    printf("hello world");
    return 0; }
    Par constante énumérée, on entend, les valeurs possibles d'une énumération, par exemple, un, deux et trois, dans le code suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    enum code {un, deux, trois};
     
    void afficher_code(enum code code_possible) {
        switch(code_possible) {
            case un: printf("un"); break;
            case deux: printf("deux"); break;
            case trois: printf("trois"); break;
        };
    }
     
    int main() {
        afficher_code(un);
        afficher_code(deux);
        afficher_code(trois);
    }
    code_possible, l'argument de afficher_code est une variable de type enum code, c'est à dire une énumération. Sa valeur est (normalement) l'un des énumérateurs code.

    Ce qui doit être effectivement une constante connue à la compilation, c'est la valeur de chaque cas du switch. Pas celle de l'expression testée.
    Mes principes de bases du codeur qui veut pouvoir dormir:
    • Une variable de moins est une source d'erreur en moins.
    • Un pointeur de moins est une montagne d'erreurs en moins.
    • Un copier-coller, ça doit se justifier... Deux, c'est un de trop.
    • jamais signifie "sauf si j'ai passé trois jours à prouver que je peux".
    • La plus sotte des questions est celle qu'on ne pose pas.
    Pour faire des graphes, essayez yEd.
    le ter nel est le titre porté par un de mes personnages de jeu de rôle

  6. #6
    Expert éminent sénior
    Homme Profil pro
    Analyste/ Programmeur
    Inscrit en
    Juillet 2013
    Messages
    4 629
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Analyste/ Programmeur

    Informations forums :
    Inscription : Juillet 2013
    Messages : 4 629
    Points : 10 554
    Points
    10 554
    Par défaut
    Tu peux également:
    • utiliser un typedef pour éviter de spécifier enum partout
    • donner des valeurs entières à tes valeurs. Et si tu ne le fais pas, il continue après le dernier indice (0 par défaut)
    • utiliser une valeur pour définir une autre valeur.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    typedef enum e_STATEGY /* <- name is useless*/ {
        STATEGY_RANDOM       = 0,
        STATEGY_IMMEDIATE /* = 1 */,
        STATEGY_SEARCH    /* = 2 */,
        STATEGY_DEFAULT = STATEGY_IMMEDIATE
    } ONE_STATEGY;

  7. #7
    Invité
    Invité(e)
    Par défaut
    Merci à vous !

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

Discussions similaires

  1. [Switch] Et les constantes
    Par BiM dans le forum Langage
    Réponses: 9
    Dernier message: 09/04/2008, 14h16
  2. Constante et switch ?
    Par lex13 dans le forum Langage
    Réponses: 4
    Dernier message: 04/07/2007, 10h08
  3. [switch, constante] C2051
    Par ZaaN dans le forum C++
    Réponses: 3
    Dernier message: 16/02/2007, 13h23
  4. [ADO] Constantes des types de champ
    Par SpaceFrog dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 05/09/2002, 11h08
  5. Au sujet des constantes
    Par FranT dans le forum Langage
    Réponses: 8
    Dernier message: 09/08/2002, 11h03

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