Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
3048 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  [C, C++] typedef j'ai pas tout compris

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[C, C++] typedef j'ai pas tout compris

n°284515
ceyquem
E falso sequitur quodlibet
Posté le 12-01-2003 à 11:40:55  profilanswer
 

bon j'ai l'algorithme suivant à réaliser :
 

type Bloc = structure
        nom  : Chaîne // sert uniquement dans le programme appelant  
               coef : Naturel  // coefficient
            fstruct
 
Représentation choisie pour le domaine : un tableau de 3 éléments de type Bloc (les notes obtenues), indicé par les constantes énumérées MA11,AD11,AN11.  
énumération { MA11, AD11, AN11 }
 
type Domaine = tableau [MA11..AN11] de Bloc


 
Alors pour le moment j'ai fait :
 

Code :
  1. #include<stdio.h>
  2. #include<stdlib.h>
  3. typedef struct bloc{
  4. char nom;
  5. int coef;
  6. }Bloc;
  7. typedef enum {MA11,AD11,AN11};


 
Je ne vois pas comment définir mon tableau indicé par MA11,AD11,AN11 ; qui doit s'appeler Domaine et qui doit contenir des Blocs.
 
comment fait-on ??  :??:  
 
Merci !  :jap:


Message édité par ceyquem le 12-01-2003 à 11:42:00
mood
Publicité
Posté le 12-01-2003 à 11:40:55  profilanswer
 

n°284527
ceyquem
E falso sequitur quodlibet
Posté le 12-01-2003 à 12:16:22  profilanswer
 

c'est bon j'ai finalement trouvé :
 

Code :
  1. typedef Bloc Domaine[3];

n°284544
kfman
Credo quia absurdum
Posté le 12-01-2003 à 12:40:29  profilanswer
 

Si j'ai bien compris l'énoncé, essaie:
 

Code :
  1. typedef struct bloc{
  2. char nom;
  3. int coef;
  4. }Bloc;
  5. typedef enum {MA11,AD11,AN11}; // Liste enumérée
  6. typedef struct Domaine {
  7. Bloc elt[3]; // Tableau de 3 éléments de type Bloc
  8. } Domaine;


 
Après tu accèdes aux valeurs par:
 
Domaine.elt[MA11].nom (ou coef)
Domaine.elt[AD11].nom (ou coef)
Domaine.elt[AN11].nom (ou coef)


Message édité par kfman le 12-01-2003 à 13:16:06

---------------
"Nous allons reformater les français" © Nicolas Sarkozy
n°284680
kfman
Credo quia absurdum
Posté le 12-01-2003 à 16:57:27  profilanswer
 

Tiens j'ai bricolé ça:
 

Code :
  1. #include <stdio.h>
  2. #include <string.h>
  3. typedef struct bloc {
  4.   char nom[20];
  5.   int coef;
  6. } Bloc; 
  7. enum indice {MA11,AD11,AN11}; // Liste enumérée
  8. typedef struct domaine { // Création domaine incluant 3 éléments Bloc
  9.   Bloc elt[3]; // Tableau de 3 éléments de type Bloc
  10. } Domaine;
  11. Domaine dom;
  12. int main(int argc, char * argv[]) {
  13.  
  14.   int i;
  15.    
  16.   for (i=MA11;i<(AN11+1);i++) {
  17.     printf("\nElement %d\n",i);
  18.     printf("Nom: " );
  19.     scanf("%s",dom.elt[i].nom);
  20.     printf("coeff: " );
  21.     scanf(" %d",&dom.elt[i].coef);
  22.  
  23.   }
  24.  
  25.   printf("\n" );
  26.   printf("Elements du domaine:\n" );
  27.   printf("--------------------\n" );
  28.   printf("\n" );
  29.   for (i=MA11;i<(AN11+1);i++) {
  30.     printf("[%d]\n",i);
  31.     printf("Nom  : %s\n",dom.elt[i].nom);
  32.     printf("Coeff: %d\n",dom.elt[i].coef);
  33.     printf("\n" );
  34.   }
  35.  
  36.   return(0);
  37. }


---------------
"Nous allons reformater les français" © Nicolas Sarkozy
n°285055
ceyquem
E falso sequitur quodlibet
Posté le 13-01-2003 à 12:50:00  profilanswer
 

merci pour le code, je commence à comprendre un peu mieux la commande typedef...  :)
 
 :hello:

n°285057
Musaran
Cerveaulté
Posté le 13-01-2003 à 12:52:13  profilanswer
 

Simple... Si une expression déclares une variable/fonction, mettre typedef devant déclares un synonyme de son type.

Code :
  1. Bloc nom[3]; //nom est une variable
  2. typedef Bloc nom[3]; //nom est le type de la variable précédente


 

Citation :

Code :
  1. typedef enum {MA11,AD11,AN11};


Je savais même pas qu'on pouvais faire ça.
Le typedef ne sert à rien vu qu'il n'y a pas de nom.
 
Je te proposes:

Code :
  1. struct Bloc{
  2. char nom; //ou char* ou char[nn]
  3. int coef;
  4. };
  5. typedef struct Bloc Bloc; //simplifie la vie en C
  6. enum {MA11, AD11, AN11, NumBlocs}; //0, 1, 2, 3
  7. //grâce à la numérotation automatique à partir de 0, le dernier vaut le nombre d'éléménts utiles: 3.
  8. typedef Bloc Domaine[NumBlocs];


---------------
Bricocheap: Montage de ventilo sur paté de mastic silicone

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  [C, C++] typedef j'ai pas tout compris

 

Sujets relatifs
Header(location: .....) dsl toujours pas compristypedef enum kesako?
j'ai pas bien compris c quoi les tableaux et les structurestypedef dans un fichier idl (com) sous vc++
PHP : comment savoir si un mot est compris dans une chaîne ?[C] "Improper use of a typedef symbol"
[mySQL] Requete where compris entre x et y[C/C++]besoin d'aide pour les struct typedef struct etc....
Le protocole ICQ, quelqu'un a compris ce truc ????[Javascript] Rien compris a ce &#$£$*%! de probléme
Plus de sujets relatifs à : [C, C++] typedef j'ai pas tout compris


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)