Вы находитесь на странице: 1из 16

25/03/2018

M.YANDOUZI - ENSAO 2017/2018

CHAPITRE 2
Les structures et les énumérations

M.YANDOUZI - ENSAO 2017/2018

Introduction :

Sous un seul nom :


 Le tableau
Ensemble de valeurs de même type
Chacune d’entre elles étant repérée par un indice
 La structure
Ensemble de valeurs pouvant être de types différents
L’accès à chaque « champ » se fera par nom
 L’énumération
Cas particulier des entiers
Sa déclaration et son utilisation sont très proches des
structures

1
25/03/2018

M.YANDOUZI - ENSAO 2017/2018

1 - Déclaration d’une structure

 Définit un modèle de structure


 Ne réserve pas de variables correspondant

M.YANDOUZI - ENSAO 2017/2018

1 - Déclaration d’une structure

 Déclaration d’une variable « art1 » de type structure


« enreg »

2
25/03/2018

M.YANDOUZI - ENSAO 2017/2018

1 - Déclaration d’une structure

M.YANDOUZI - ENSAO 2017/2018

2 - Utilisation d’une structure

En C, on peut utiliser une structure de deux manières :

 En travaillant individuellement sur chacun de ses champs

 En travaillant de manière globale sur l’ensemble de la


structure.

3
25/03/2018

M.YANDOUZI - ENSAO 2017/2018

2.1 - Utilisation des champs d’une structure

Affecte la valeur 15 au champ numero de la structure art1

Affiche, suivant le code format %e, la valeur du champ prix de


la structure art1

Lit, suivant le code format %e, une valeur qui sera affectée au
champ prix de la structure art2

M.YANDOUZI - ENSAO 2017/2018

2.1 - Utilisation des champs d’une structure

Incrémente de 1 la valeur du champ numero de la structure art1

« La priorité de l’opérateur « . » est très élevée »

4
25/03/2018

M.YANDOUZI - ENSAO 2017/2018

2.2 - Utilisation globale d’une structure

Rq : L’affectation globale n’est pas possible entre tableaux

M.YANDOUZI - ENSAO 2017/2018

2.3 - Initialisations de structures

5
25/03/2018

M.YANDOUZI - ENSAO 2017/2018

EXO 1
Écrire un programme qui définit une structure Point composée des
champs :
• P de type char
• X de type float
• Y de type float
Déclarer deux variables P1 et P2 de type structure Point,
Initialiser P1 par des valeurs données par l’utilisateur,
Initialiser P2 directement,
Afficher P1 et P2,
Affecter à P2 la valeur de P1,
Afficher P1 et P2.

M.YANDOUZI - ENSAO 2017/2018

3 - Définir des synonymes avec typedef

typedef permet de définir des synonymes (alias)

Exemples : 1

6
25/03/2018

M.YANDOUZI - ENSAO 2017/2018

3 - Définir des synonymes avec typedef

typedef permet de définir des synonymes (alias)

Exemples : 2

M.YANDOUZI - ENSAO 2017/2018

3 - Définir des synonymes avec typedef

typedef permet de définir des synonymes (alias)

Exemples : 3

7
25/03/2018

M.YANDOUZI - ENSAO 2017/2018

3 - Définir des synonymes avec typedef


Application aux structures :

M.YANDOUZI - ENSAO 2017/2018

4 - Imbrication de structures

Structure comportant des tableaux :

8
25/03/2018

M.YANDOUZI - ENSAO 2017/2018

4 - Imbrication de structures
Structure comportant des tableaux :

M.YANDOUZI - ENSAO 2017/2018

4 - Imbrication de structures
Structure comportant des tableaux :

Initialisation d’une structure de type personne :

9
25/03/2018

M.YANDOUZI - ENSAO 2017/2018

4 - Imbrication de structures

Tableaux de structures :

M.YANDOUZI - ENSAO 2017/2018

4 - Imbrication de structures
Tableaux de structures :

10
25/03/2018

M.YANDOUZI - ENSAO 2017/2018

4 - Imbrication de structures

Tableaux de structures :

Initialisation (partielle) de notre variable courbe lors de sa


déclaration :
:

M.YANDOUZI - ENSAO 2017/2018

EXO 2 :

Créer le type « Etudiant » à partir d’une structure composée


des champs :
• NOM
• PRENOM
• NOTES de trois matières
Déclarer un tableau de type « Etudiant » de taille max. 30
Demander à l’utilisateur le remplissage du tableau
Afficher la liste des étudiants avec les notes et la moyenne
:

11
25/03/2018

M.YANDOUZI - ENSAO 2017/2018

4 - Imbrication de structures
Structures comportant d’autres structures :

M.YANDOUZI - ENSAO 2017/2018

4 - Imbrication de structures
Structures comportant d’autres structures :

Exemple d’utilisation :

12
25/03/2018

M.YANDOUZI - ENSAO 2017/2018

5 – La portée du modèle de structure

 Si elle se situe au sein d’une fonction (y compris, la


fonction main), elle n’est accessible que depuis cette
fonction ;

 Si elle se situe en dehors d’une fonction, elle est


accessible de toute la partie du fichier source qui
suit sa déclaration ; elle peut ainsi être utilisée par
plusieurs fonctions.

M.YANDOUZI - ENSAO 2017/2018

6 - Transmission d’une structure en argument d’une fonction


Transmission de la valeur d’une structure :

13
25/03/2018

M.YANDOUZI - ENSAO 2017/2018

6 - Transmission d’une structure en argument d’une fonction


Transmission de l’adresse d’une structure : l’opérateur ->

M.YANDOUZI - ENSAO 2017/2018

7 - Transmission d’une structure en valeur de retour d’une fonction

14
25/03/2018

M.YANDOUZI - ENSAO 2017/2018

Exo 3 :

Définir une structure de données Heure permettant de


représenter une heure au format hh/mm/ss, puis écrire les
fonctions suivantes :

1) conversion d'un élément de type Heure en nombre de


secondes (entier).
2) conversion d'un nombre de secondes (entier) en un
élément de type Heure
3) addition de deux éléments de type Heure

M.YANDOUZI - ENSAO 2017/2018

Exo 4 :

Définir une structure Etudiant contenant les champs :


CNE (entier long),
nom (chaine),
prenom (chaine),
date (structure),
adresse (structure),
email (chaine).
Ecrire un programme qui lit et affiche les données relatives
à 100 étudiants en utilisant un tableau de structure appelé
Contact.

15
25/03/2018

M.YANDOUZI - ENSAO 2017/2018

Exo 5 :
Écrire un programme qui lit au clavier des
informations dans un tableau de structures du type
point défini comme suit :
struct point { int num ;
float x ;
float y ; } ;
Le nombre d’éléments du tableau sera fixé par une
directive #define et le programme doit afficher
l’ensemble des informations précédentes.
Réaliser le même traitement en utilisant cette fois-ci
une fonction pour la lecture des informations et une
autre pour l’affichage.

16

Вам также может понравиться