Partage
  • Partager sur Facebook
  • Partager sur Twitter

type et taille description

J'aimerai savoir si je ne fais pas fausse route sur un exercice

    15 juin 2019 à 15:33:14

    Bonjour,

    Voila je ne suis pas sure de mes reponses et j'aimerai les corriger !

    Enoncé : pour chacune des descriptions suivantes donner le type t et la taille minimale t occupée en octet par les instances suivantes:

    ( il y'a les sizeof de char, enum, short,int,long,float,double  qui sont donnés)

    1. une carte est donnée par une couleur COEUR,TREFLE,PIQUE,CARREAU et d'une valeur entiere positive

    ----> ce que j'ai fait:

    enum Couleur{
     Coeur,
     Trefle,
     Pique,
     Carreau,
    }
    Struct Carte{
     enum Couleur c;
    unsigned int valeur;
     }


    Donc j'en deduis que le enum occupe 4 octets + 4 octet occupés par le int ce qui ferait en tout 8 OCTETS

    et le type t demandé est : "struct Carte

    2. Un event est soit un click sur une souris caracterisé par sa position sur l'ecran (2 entiers° soit par une touche au clavier correspondant au caractère et par un boolean pecisant si la touche est restée enfoncée ou pas

    Struct Clique{
    int pos1;
    int pos2;
    }
    struct Touche{
    char a;
    boolean e;
    }
    
    enum event{
    click,
    touche,
    }

    le type demandé t = enum event et la taille = 4*2 pour les deux int dans le click + 1 pour le char et le boolean je sais pas trop le sizeof() vu qu'il ne l'a pas mis j'ai trouvé 1 octet sur le net donc au total en comptant le enum 4 je trouve 14 octets

    3.Un arbre est caractérisé soit par une feuille décoré d'un entier, soit par un label ( :o  je ne sais pas ce que c'est ) , d'un sous-arbre droit et d'un sous-arbre gauche

    ---->

    enum arbre{
     Feuille,
     Noeud,
    }
     struct Feuille{
    int entier
    }
    struct Noeud {
    LABEL l;
    arbre droit;
    arbre gauche;
    }
    
    struct label{
    }

    j'ai laissé le label vide car je ne savais pas trop ce que c'etait vu qu'il y'a pas plus de details dans l'enoncé

    Le type t ici est enum arbre , et la taille : 4 (int) + 4(enum arbre) + 4(enum sous arbre) + 4(enum sous arbre) = 16octets

    Merci :)


    -
    Edité par CeliaBejaoui 15 juin 2019 à 15:49:53

    • Partager sur Facebook
    • Partager sur Twitter
      15 juin 2019 à 19:04:43

      Bonjour,

      un enum, c'est défini par une liste de possibilités qui sont en fait des constantes (qu'on appelle parfois labels). Donc un enum ne peut en aucun cas contenir des types de données. Ton Event et ton Arbre ne peuvent donc pas être des enum. L'enum à normalement la taille d'un int, voire moins.
      Tu confonds peut-être avec une union. Une union ça peut contenir un unique élément à la fois, élément qui peut âtre pris dans une liste possible de types différents. L'union à la taille du plus grand des types qu'il inclut.
      Quant au Noeud. Tel que l'a écris, il contient en particulier deux Arbre, qui eux-même contiennent Une Feuille ou un Noeud. Donc un Noeud peut contenir jusqu'à 2 Noeud, ça n'a pas de sens! Il te manque une notion de "désigne" plutôt que de "contient", tu as dû apprendre les pointeurs.

      • Partager sur Facebook
      • Partager sur Twitter

      En recherche d'emploi.

        16 juin 2019 à 14:58:17


        Dalfab a écrit:

        Bonjour,

        un enum, c'est défini par une liste de possibilités qui sont en fait des constantes (qu'on appelle parfois labels). Donc un enum ne peut en aucun cas contenir des types de données. Ton Event et ton Arbre ne peuvent donc pas être des enum. L'enum à normalement la taille d'un int, voire moins.
        Tu confonds peut-être avec une union. Une union ça peut contenir un unique élément à la fois, élément qui peut âtre pris dans une liste possible de types différents. L'union à la taille du plus grand des types qu'il inclut.
        Quant au Noeud. Tel que l'a écris, il contient en particulier deux Arbre, qui eux-même contiennent Une Feuille ou un Noeud. Donc un Noeud peut contenir jusqu'à 2 Noeud, ça n'a pas de sens! Il te manque une notion de "désigne" plutôt que de "contient", tu as dû apprendre les pointeurs.


        Merci pour ta reponse ! du coup ma reponse au premier point est elle juste ? et pour les deux autres questions je ne vois vraiment pas comment remplacer le enum :(

        • Partager sur Facebook
        • Partager sur Twitter
          16 juin 2019 à 18:33:51

          CeliaBejaoui a écrit:

          Merci pour ta reponse ! du coup ma reponse au premier point est elle juste ? et pour les deux autres questions je ne vois vraiment pas comment remplacer le enum :(

          Oui, le premier point est okay.
          Et pour remplacer le enum, je t'ai proposé union.

          • Partager sur Facebook
          • Partager sur Twitter

          En recherche d'emploi.

            17 juin 2019 à 14:05:10

            Aussi, fait attention aux mots clefs. C'est struct et non pas Struct

            Ensuite, on parle d'un clic de souris et non d'une clique (utilisé dans la théorie des graphes).

            • Partager sur Facebook
            • Partager sur Twitter

            type et taille description

            × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
            × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
            • Editeur
            • Markdown