0% ont trouvé ce document utile (0 vote)
3 vues16 pages

Structures et Énumérations en C

Ce document présente les structures et énumérations en langage C, expliquant leur déclaration, initialisation et utilisation. Il fournit des exemples pratiques, notamment la création d'une structure pour un étudiant et le calcul de la moyenne de ses notes. De plus, il aborde l'utilisation de 'typedef' pour simplifier la déclaration de types et la définition d'énumérations pour des valeurs prédéfinies.

Transféré par

laatira.saloua.co
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
3 vues16 pages

Structures et Énumérations en C

Ce document présente les structures et énumérations en langage C, expliquant leur déclaration, initialisation et utilisation. Il fournit des exemples pratiques, notamment la création d'une structure pour un étudiant et le calcul de la moyenne de ses notes. De plus, il aborde l'utilisation de 'typedef' pour simplifier la déclaration de types et la définition d'énumérations pour des valeurs prédéfinies.

Transféré par

laatira.saloua.co
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Centre de BTS

1ère Année MCW

Les structures et Les


énumérations

Programmation en langage C
Lesstructures
• Une structure est une suite finie d’objets de types différents
• les différents éléments d’une structure n’occupent pas
nécessairement des zones contiguës en mémoire
• Chaque élément de la structure, appelé membre ou champ,
est désigné par un identificateur
• Dans les structures, il faut distinguer la déclaration d’un
modèle de structure de la déclaration de l’objet dumodèle
• Syntaxe de déclaration d’un modèle de structure:
struct modele {
type_1 nom_champ_1;
type_2 nom_champ_2;
...
type_n nom_champ_n;
23
};

Programmation en langage C
Lesstructures
• Syntaxe de déclaration d’un objet de ce modèle de structure:
struct modele objet; //objet est une variable du type modèle
• Il est possible de déclarer les deux en même temps:
struct modele {
type_1 nom_champ_1;
type_2 nom_champ_2;
...
type_n nom_champ_n;
} objet;
• Exemple1: Exemple 2:
struct coordonnees { struct ficheEtudiant{
int x; char nom[50];
int y; int age;
}; float notes[4];
struct coordonnees point; } f; 24

Programmation en langage C
Lesstructures
• Représentation des exemples:

4 16 durant 20 12 14.5 18 11
x y
nom age notes
point
f
• Initialisation de l’objet à la déclaration:
struct coordonnees point= {4, 16};
struct ficheEtudiant f = {″durant″, 20, {12,14.5,18,11}}
• Utilisation du modèle: objet.nom_champ
• Exemples: [Link]=″durant″; [Link] = 20; [Link][1]=14.5;
[Link][3]<15;
25

Programmation en langage C
Lesstructures
• Exemple :
• Soit la structure suivante:
#define N 4
struct ficheEtudiant{
char nom[50];
int age;
float notes[N];
};

• Saisir un étudiant puis calculer et afficher la moyenne de ses


notes

26

Programmation en langage C
Lesstructures
#include<stdio.h>
#define N 4
struct ficheEtudiant{
char nom[50]; int age; float notes[N];
};
int main(){
struct ficheEtudiant f;
int i; float som = 0, moy = 0;
printf(″saisissez le nom de l’etudiant: ″); scanf(″%s″, [Link]);
printf(″\nsaisissez l’age de l’etudiant: ″); scanf(″%d″, &[Link]);
printf(″\nsaisissez les notes de l’etudiant: ″);
for(i=0;i<N;i++) {
printf(″\nsaisissez note %d: ″, i+1);
scanf(″%f″, &[Link][i]);
som = som + [Link][i];
}
moy = som/N;
printf(″\nL’etudiant %s d’age %d a pour moyenne du semestre: %.2f″, [Link], [Link],moy); 27
}

Programmation en langage C
Définitiondetypesavectypedef
• typedef permet d’affecter un nouvel identificateur à un type
composé (permet d’alléger l’écriture de programmes
notamment dans le cas des tableaux)
• Syntaxe: typedef déclaration; //à mettre avant le main()
• Exemples:
• Avec une structure:
typedef struct ficheEtudiant{
char nom[50];
int age;
float notes[4]; //ici FICHE est un nouveau
} FICHE; type et non pas une variable
• Avec un tableau:
typedef FICHE TABF[50]; //définition d’un type TABFde typeFICHE
28
typedef int MATRICE[10][20]; //définition d’un type MATRICEde type int

Programmation en langage C
Définitiondetypesavectypedef
• Déclaration de variables : nouveau_type variable;
• Exemples: MATRICE m;
FICHE f;
TABF t; //équivalent à FICHE t[50];

• Représentation de la variable t du type TABF:

t

nom age notes nom age notes


0 1 2 …
Exemplesd’affectations:
t[0].age = 20; 29
t[0].notes[2] = 14.5;
Programmation en langage C
Exerciced’application
Soit la structure suivante: struct ficheEtudiant{
char nom[50];
int age;
float notes[4];
};

1) Créer un type ficheEtudiant puis un type tableau de ficheEtudiant


2) Remplir le tableau de ficheEtudiant
3) Afficher les informations sur l’étudiant x

30

Programmation en langage C
Solution
• Déclarations :
#include<stdio.h>
#include<string.h>
#define N 5
struct ficheEtudiant{
char nom[50];
int age;
float notes[4];
};
typedef struct ficheEtudiant FicheEtu;
typedef FicheEtu tabfe[N];

int main(){
int i,j;
tabfe t;
char nomx[20]; 31

Programmation en langage C
Solution
• Saisie de N étudiants:
for(i=0;i<N;i++){
printf("saississez le nom de l'etudiant %d:", i+1);
scanf("%s", t[i].nom);
printf("saississez l'age de l'etudiant %d: ", i+1);
scanf("%d", &t[i].age);
for(j=0;j<4;j++){
printf("saississez la note %d: ", j+1);
scanf("%f",&t[i].notes[j]);
}
}

32

Programmation en langage C
Solution
• Recherche de l’étudiant x:
printf("saisissez un etudiant: ");
scanf("%s", nomx);
for(i=0;i<N;i++){
if(strcmp(nomx,t[i].nom)==0){
printf("\ninformation sur l'etudiant %s: ", t[i].nom);
printf("\nage: %d",t[i].age);
for(j=0;j<4;j++){
printf("\nnote %d: %f", j+1, t[i].notes[j]);
}
printf("\n");
}
}

} 33

Programmation en langage C
Lesénumérations
• Les énumérations permettent de définir un type par une liste de
valeurs prédéfinies (constantes)
• Syntaxe de déclaration d’un modèle enum:
enum nom_modele {constante_1, constante_2,...,constante_n};
• Exemple:
enum jourSemaine {lundi, mardi, mercredi, jeudi, vendredi};
• Déclaration d’un objet :enum nom_modele variable;
Exemple: enum jourSemaine j;
• Les valeurs possibles de constante_1, constante_2,...,constante_n
sont codées par des entiers de 0 à n-1.
• Par défaut, la valeur de chacune des constantes est égale au rang de
celle-ci dans l’énumération (lundi vaut 0, mardi vaut 1, mercredi
vaut 2, etc.). 34

Programmation en langage C
Lesénumérations
• Il est possible de modifier le codage par défaut des valeurs de
la liste lors de la déclaration du type énuméré
• Exemple:
enum jourSemaine {lundi = 8, mardi = 9, mercredi, jeudi = 15,
vendredi};
→Dans l’exemple: mercredi vaudra 10 et vendredi vaudra 16
• Exemple d’utilisation des énumérations:
enum booleen {faux, vrai};
int main(){
int a=10, b=5;
enum booleen x;
if (a>=b) x = vrai;
else x = faux;
if(x==vrai) printf("a = %d\n",a); 35
}
Programmation en langage C
Exemple 1:
#include < stdio.h>
enum semaine {dimanche,lundi,mardi,mercredi,jeudi,vendredi,samedi};
int main(void){
enum semaine jour;
jour=mercredi;

printf("le jour est : %d \n", jour);


printf("le numéro du jour suivant est : %d \n", jour + 1);

return 0;
}

35

Programmation en langage C
Merci

Vous aimerez peut-être aussi