1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    juillet 2017
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : juillet 2017
    Messages : 61
    Points : 0
    Points
    0

    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
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    juillet 2017
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : juillet 2017
    Messages : 61
    Points : 0
    Points
    0

    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 confirmé
    Avatar de Kannagi
    Homme Profil pro
    cyber-paléontologue
    Inscrit en
    mai 2010
    Messages
    1 934
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cyber-paléontologue

    Informations forums :
    Inscription : mai 2010
    Messages : 1 934
    Points : 5 400
    Points
    5 400

    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
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    juillet 2017
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : juillet 2017
    Messages : 61
    Points : 0
    Points
    0

    Par défaut

    Merci

  5. #5
    Expert éminent sénior

    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    juin 2007
    Messages
    4 880
    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 : 4 880
    Points : 16 016
    Points
    16 016

    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 confirmé
    Homme Profil pro
    Analyste/ Programmeur
    Inscrit en
    juillet 2013
    Messages
    2 051
    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 : 2 051
    Points : 4 518
    Points
    4 518

    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
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    juillet 2017
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : juillet 2017
    Messages : 61
    Points : 0
    Points
    0

    Par défaut

    Merci à vous !

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