Université d'Abomey-Calavi (UAC)
Faculté des Sciences et Techniques (FAST)
Département de Mathématiques
2ème année de Maths & Informatique (MI 2)
Langage C : Structures de Données Avancées (SDA2204)
TP : Les Structures
DESCRIPTIF DU TP
déclaration des Structures ;
initialisation et utilisation des Structures .
Table des matières
1 Eléments notionnels 1
1.1 Dénition d'une structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2 Déclaration d'une variable structurée . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.3 Accès à un champ d'une structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.4 Tableaux de structures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
2 Les Travaux Pratiques 2
2.1 TP1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
2.2 TP2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
2.3 TP3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1 Eléments notionnels
Un tableau permet de regrouper des éléments de même type : INT, CHAR, DOUBLE, FLOAT, etc. Les structures
permettent de remédier à cette lacune des tableaux, en regroupant des éléments de types diérents au sein d'une entité
repérée par un seul nom de variable.
1.1 Dénition d'une structure
Les structures sont des objets regroupant plusieurs données appelées "champs" et sont à dénir hors de toute fonction.
Lors de la dénition d'une structure, on indique les champs de la structure (type et nom des variables de la structure) :
struct nom_type {
type_champ1 nom_champ1;
type_champ2 nom_champ2;
···
type_champn nom_champn;
};
Note
Le nom des champs répond aux critères des noms de variable ;
Deux champs ne peuvent avoir le même nom ;
Les données peuvent être de n'importe quel type hormis le type de la structure dans laquelle elles se trouvent.
Exemple
struct Eleves {
int age;
char sexe;
float taille;
float moyenneScolaire;
char nom[12];
struct AutreStructure StructBis; /*en considérant que la structure AutreStructure est dénie */
};
1
1.2 Déclaration d'une variable structurée
La dénition d'une variable structurée est une opération qui consiste à créer une variable ayant comme type celui d'une
structure que l'on a précédemment dénie et s'eectue de la façon suivante :
struct N om_Structure N om_V ariable_Structuree ;
• N om_Structure représente le nom d'une structure que l'on aura préalablement dénie.
• N om_V ariable_Structuree est le nom que l'on donne à la variable structurée.
Exemple
Soit la structure Personne :
struct Personne {
int Age;
char Sexe;
};
On peut dénir plusieurs variables structurées :
struct Personne Alice, Assogba, Kokou ;
1.3 Accès à un champ d'une structure
nom_var.nom_champ
1.4 Tableaux de structures
Il est possible de créer un tableau ne contenant que des éléments du type d'une structure donnée.
Il sut de créer un tableau dont le type est celui de la structure et de le repérer par un nom de variable.
Exemple
struct Personne Eleves[8] ;
2 Les Travaux Pratiques
2.1 TP1
Dénir un type Date pour des variables formées d'un numéro de jour, d'un nomde mois et d'un numéro d'année.
2.2 TP2
Ecrire la déclaration d'un type Fiche permettant de mémoriser les informations sur un étudiant :
son nom ;
son prénom ;
sa date de Naissance, de type Date ;
sa formation, représentée par deux lettres ;
s'il est redoublant ou non ;
son groupe de TD, représenté par un entier ;
ses notes, représentées par un tableau note d'au plus MAXNOTES réels ;
un entier nbnotes indiquant le nombre de notes valides dans le tableau note.
2.3 TP3
On souhaite créer un programme en langage C de gestion de stock d'un magasin de vente de divers. Dans ce magasin, un
Article est identié par trois données : reference (entier), designation et prixUnitaire.
1. Dénir la structure Article.
2. Créer une fonction void lireArticle (Article articles [], int n) permettant de remplir un tableau de n articles.
3. Créer une fonction void acherArticle (Article articles [], int n) permettant d'acher la liste des articles stockés dans
le tableau articles.
2
4. Créer une fonction void supprimerArticle (Article articles [], int * n, int reference) permettant de supprimer un article
stockés dans le tableau articles en fournissant sa réference.
5. Créer une fonction void ajouterArticle (Article articles [], int *n) permettant d'ajouter un article dans le tableau
articles.
6. Créer une fonction void triByDesignation (Article articles [], int n) permettant d'acher les articles classés par ordre
alphabétique des désignations.
7. Créer une fonction void triByPrix (Article articles [], int n) permettant d'acher la liste des articles classés du plus
cher au moins cher.
8. Créer une fonction void saveArtciles (Article articles [], int n) permettant d'enregistrer les articles dans un chier
texte, les valeurs des champs de chaque article seront séparées par ; .
9. Ecrire un programme qui ache à l'utilisateur le menu suivant :
a : Lire les articles.
b : Acher les articles classés du plus cher au moins cher.
c : Acher les articles classés par ordre alphabétique des désignations.
d : Ajouter un nouvel article.
e : Supprimer un article.
f : Enregistrer les articles.
g : Quitter le programme.
Tapez votre choix :
et réalise l'opération demandée par l'utilisateur en utilisant les fonctions dénies précédemment.