Les structures
Brahimi Mohamed
Structures
Tableau : est collection de variables de même type
Structure : Collection de variables de différents types
Représentation des entités composés
Exemples
● Etudiant
– Nom : Chaîne de caractères
– Age : Entier
– Note : Réel
● Des différents types représentant le même objet
Produit
– Référence : Entier
– Designation : Chaîne de carctères
– Quantité : Enntier
Exemples
● Etudiant
– Nom de l'étudiant
– Age
– Note
Etudiant
Brahimi Mohamed Age = 27 Note=20
Définition (Algorithmique)
Type nom_de_structure = Structure
Nom_de_member1 : type1
Nom_de_member2 : type2
...
Nom_de_memberN : typeN
Fin
Exemple (Algorithmique)
Type Etudiant = Structure
Nom: Chaîne de caractères
Age : Entier
Note : Réel
Fin
Définition (langage C)
Struct nom_de_structure {
type1 Nom_de_member1 ;
type2 Nom_de_member2 ;
...
typeN Nom_de_memberN ;
} ;
Exemple (langage C)
Struct Etudiant {
char Nom[30] ;
int Age ;
float Note ;
} ;
Déclaration (Algorithmique)
nom de variable : nom_de_structure
● Exemples :
etud : Etudiant
Déclaration (langage C)
struct nom_de_structure nom_de_variable;
● Exemple :
struct Etudiant etud ;
Déclaration (langage C)
Typedef struct nom_de_structure nom_de_structure
nom_de_structure nom_de_variable;
● Exemple :
Typedef struct Etudiant Etudiant
Etudiant etud ;
Manipulation (Algorithmique)
nom_de_variable . nom_de_memeber
● Exemple :
[Link] = 20
[Link] = 19
lire([Link])
Manipulation (langage C)
nom_de_variable . nom_de_memeber
● Exemple :
[Link] = 20 ;
[Link] = 19 ;
scanf("%d",&[Link]) ;
Exemple (Algorithmmique)
● Gestion des notes des étudiants
– Tableau des étudiants.
– Remplir les informations.
– Affichage des étudiants.
– Calcule de la moyenne.
Exemple (Algorithmmique)
Algorithme Exemple
Type Etudiant= Structure
nom : chaîne de caractères
note : réel
Fin
Var
etudiants : tableau[1..100] d'Etudiant
Procédure Remplir
Procédure Remplir(Var etds : tableau[1..100] d'Etudiant,n:entier)
Var etd : Etudiant
Début
Ecrire("Tapez la liste des étudiants avec les notes : ")
Pour i allant de 1 à n faire
Dpour
Ecrire("Nom : ")
Lire([Link])
Ecrire("Note : ")
Lire([Link])
etds[i] ←- etd
Fpour
Fin
Procédure Affichage
Procédure Affichage (etds : tableau[1..100] d'Etudiant,n:entier)
Var etd : Etudiant
Début
Ecrire("Liste d'étudiants :")
Pour i allant de 1 à n faire
Dpour
etd ←--etds[i]
Ecrire([Link]," : ",[Link])
Fpour
Fin
Fonction Moyenne
Fonction Moyenne (etds : tableau[1..100] d'Etudiant,n:entier)
Var etd : Etudiant
somme : Entier
Début
somme <--- 0
Pour i allant de 1 à n faire
Dpour
somme <--- somme + etds[i].Note
Fpour
Moyenne <--- somme/n ;
Fin
Algorithme Exemple
Type Etudiant= Structure
nom : chaîne de caractères
note : réel
Fin
Var etudiants : tableau[1..100] d'Etudiant
n : Entier
Procédure Remplir(Var etds : tableau[1..100] d'Etudiant,n:entier)
Procédure Affichage (Var etds : tableau[1..100] d'Etudiant,n:entier)
Fonction Moyenne (Var etds : tableau[1..100] d'Etudiant,n:entier)
Début
Ecrire("Donnez le nombre d'étudiants")
Lire(n)
Remplir(etudiants,n)
Affichage(etudiants,n)
Ecrire("Moyenne = ",Moyenne(etudiants,n))
Fin
Pointeur sur une Structure
● Une variable qui contient l'adresse d'une structure.
● Algorithmique
– nom_de_pointeur : Pointeur(Nom_de_structure)
● Langage C
– Struct nom_de_structure * nom_de_pointeur ;
Pointeur sur une Structure
● Les opérateur « & » et « * » sont utilisés comme dans les
variable.
● Exemple :
– PtrEtudiant : Pointeur(Etudiant)
– struct Etudiant *PtrEtudiant ;
Pointeur sur une Structure
● Pour accéder aux members des structures (Algorithmique).
● Exemple :
– PtrEtudiant : Pointeur(Etudiant)
– valeur(PtrEtudiant).Note=15
Pointeur sur une Structure
● Pour accéder aux members des structures (C).
● Exemple :
– struct Etudiant *ptrEtudiant ;
– *(PtrEtudiant).Note=15
– PtrEtudinat ->Note =15
Résumé
● Une structure est un type de variable personnalisé défini
par le programmeur.
● Une structure est composée de « sous-variables » qui sont
en général des variables de type de base.
Résumé
● On accède à un des composants de'une structure en utilisant :
nom_de_structure.prenom
● On accède à un des composants d'une structure àtravers un
pointeur en utilsant :
*(pointeurStructure) . prenom
pointeurStructure->prenom