Les structures
Une structure nous permet de désigner sous un seul nom un ensemble de valeurs pouvant être de type différent. Les éléments d'une structure sont appelés des champs. L'accès à chaque élément de la structure se fera par son nom au sein de la structure.
Déclaration
struct nom {
type1 champ1;
type2 champ2;
. .
. .
type n champ n;
}
Exemple 1
struct enreg {
int numero;
int qte;
float prix;
}
structenreg art;
Exemple 2
struct enreg {
int numero;
int qte;
float prix;
} art;
Utilisation d'une structure
En C, on peut manipuler une structure de deux manières:
- En travaillant individuellement sur chacun de ces champs.
- En travaillant de manière globale sur l'ensemble de la structure.
Utilisation des champs d'une structure
Chaque champ d'une structure peut être manipulé comme n'importe quelle variable du type correspondant. La désignation d'un champ se note en faisant suivre le nom de la variable structure de l'opérateur "." suivi du nom du champ tel qu'il a été défini dans la structure.
Exemple
struct op {
int a;
float b;
} ;
struct op x;
x.a=2;
printf("%e", x.b);
scanf("%e", &x.b);
x.a++;
Utilisation globale d'une structure
Il est possible d'affecter à une structure le contenu d'une autre structure définie à partir du même modèle.
Exemple:
struct op x,y; x=y
Il est possible d'initialiser une structure lors de sa déclaration.
Exemple:
struct op A={10, 12.5};
Le typedef
Le typedef permet de simplifier la déclaration d'un type c'est-à-dire définir les synonymes ou renommer les types.
Exemple d'utilisation du typedef
typedef int entier
entier x,y;
typedef int*ptr
ptr *p1, *p2;
Exemple
typedef struct enreg {
int numero;
int qte;
float prix;
} S_enreg;
Les structures et les objets composés
Structure comportant des tableaux
struct persoone {
char nom[20];
char prenom[20];
int age;
} ;
Tableau comportant des structures
struct point {
char nom;
int X;
int Y;
} ;
struct point courbe[50];
int i;
Exercices
Exercice 1
Un point est caractérisé par son nom, les coordonnées X, Y.
Ecrire un programme en C qui utilise la déclaration du type point pour créer un vecteur de 10 points. Ce programme:
- doit lire un vecteur de 10 points
- doit ajouter un point à la fin du vecteur
- doit supprimer un point donné de vecteur
- doit afficher tous les points du vecteur.
Exercice 2
Chaque produit est caractérisé par son code, son libellé, le prix unitaire, la quantité en stocke.
- Donnez une déclaration
- D'n produit
- D'un vecteur de produit
- Ecrire un programme en C
- qui permet de lire un vecteur de 10 produits
- qui affiche la liste des produits dont le prix unitaire est supérieur à 1000
- qui affiche le libellé du produit qui a la plus grande quantité.
- qui permet d'afficher la liste de tous les produits dans l'ordre alphabétique des libellés