0% ont trouvé ce document utile (0 vote)
8 vues15 pages

Types et Manipulation des Structures

strectures

Transféré par

mrym
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)
8 vues15 pages

Types et Manipulation des Structures

strectures

Transféré par

mrym
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

CHAPITRE 5 : LES ENREGISTREMENTS/

C LES TYPES STRUCTURES

1. Définition
2. Déclaration
3. Initialisation
4. Accès
5. Structure imbriquée
6. Tableaux de structures
2023-2024
1
Les enregistrements

C Tableau unidimentionnel
Problématique Introduction
Stocker et traiter aisément des informations de différents types relatives à 30 étudiants
:
– Numéro d’inscription (entier)
– Nom (chaine)
– Prenom (chaine)
– date de naissance (chaine)
– Moyenne (réel)

Les TABLEAUX stockent des informations de même type, donc ils ne représentent pas
la structure adéquate à notre problème

Quelle est la structure de données adéquate !!

2 2023-2024
Les types structures

C Tableau
Définition unidimentionnel Introduction

Enregistrement Champ1 Champ2 Champ3 Champ4 Champ5

› Un enregistrement est une structure de données statique, définie par l’utilisateur


qui permet de regrouper un ensemble fini d’éléments (champs) qui peuvent être de
types différents (hétérogènes)

› L’accès à un élément de l’enregistrement se fait en utilisant son nom et non pas son
indice.

› Les types structures permettent de définir un type adapté au problème à traiter

3 2023-2024
Les types structures

C Tableaud’une
Définition unidimentionnel
structure Introduction
› Lors de la définition d’une structure, on définit un modèle où on indique
ses champs avec leurs types et noms.
› Chaque structure possède un nom. Ce nom sera utilisé pour déclarer des
enregistrements.
› Une structure peut contenir 1 à n champs, du même type ou de types
différents.
› Une structure à un seul champ est totalement inutile.

struct <nom de la structure> {


<type champ1> <nom champ1>;
<type champ1> <nom champ1>;
.
<type champ_n> <nom champ_n>;
} ; // point-virgule est nécessaire après l'accolade fermante
de la déclaration de la structure

4 2023-2024
Les types structures

C Tableaud’une
Définition unidimentionnel
structure Introduction
Exemple :
struct complexe //Définition d’un nouveau type
{
double re ; // => struct est un mot réservé au langage
double im ; // => complexe est le nom du nouveau type
};
› Le nouveau type de données est struct complexe
› re et im sont des champs de la structure

› On accède aux champs via l’opérateur .

5 2023-2024
Les types structures

C Tableaud’une
Définition unidimentionnel
structure Introduction
› Les éléments d’une même structure peuvent avoir des types différents
struct ETUDIANT
{
char nom [30]; // nom de l’étudiant
int age; // age de l’étudiant
float moyenne; // moyenne de l’étudiant
};
› Le nom des champs répond aux critères des noms de variables
› Deux champs ne peuvent pas avoir le même nom
› Les données peuvent être de tout type à l’exception du type de la structure dans
laquelle elles se trouvent
› La définition d’une structure donne uniquement le squelette de la structure, c’est la
définition d’un type de variable complexe, donc ne réserve pas de mémoire
6 2023-2024
Les types structures

C Tableau d’une
Déclaration unidimentionnel Introduction
variable de type structure
› Après la définition d’une structure, il faut déclarer une (ou plusieurs) variable(s)
structurée(s)
› La déclaration d’une variable structurée se fait comme suit :
struct <NomStructure> <var_Structure>
Exemple:
struct ETUDIANT struct ETUDIANT
{ {
char nom [30]; char nom [30];
int age; int age;
float moyenne; float moyenne;
}; } e1, e2 ;
struct ETUDIANT e1, e2 ;

En mémoire, en déclarant une variable e1, l’espace réservé aura l’allure suivante:
Nom age moyenne
7 e1 30 octets 2023-2024
4 octets 8 octets
Les types structures

C Tableau unidimentionnel
Initialisation d’une variable de type Introduction
structure
› L’initialisation peut se faire lors de la déclaration :
struct ETUDIANT
{
char nom [30];
int age;
float moyenne;
} e1 = {"Ali",19, 16.80} ;

Ou bien

struct ETUDIANT e2 = {"Asma", 25, 17};

8
Les types structures

C Tableau unidimentionnel
Manipulation Introduction
des variables de type structure
› L’accès aux éléments de la structure se fait à travers l’opérateur dot (.)
› Exemple:
[Link] = 40
strcpy([Link], "Amina")
› Pour lire et afficher un élément int de la structure :
› scanf("%d",&[Link])
› printf("Age= %d",[Link])
› On pourra copier le contenu d’une variable structurée à une autre :
– De façon individuelle (champ par champ)
strcpy([Link],[Link])
[Link] = [Link]
– De façon globale (sur toute la structure)
e1 = e2
› L’opérateur d’affectation et l’opérateur d’adresse &, sont les seuls opérateurs
s’appliquant de manière globale, à une structure.
9
Les types structures

C Tableaucomportant
Structures unidimentionnel
des tableaux Introduction

› Une structure peut contenir bien évidemment des champs de type chaines de
caractères ou tableaux

Notation
[Link][0] : le 1er caractère du
champ nom de l’étudiant Etudiant1

[Link][3] : la 4e note du
tableau notes de l’étudiant Etudiant2

Initialisation
struct UnEtudiant e1={"Ben
Salem", "Ali",{10.0,12.5,13.6
, 7.5},2,10.9}

10
Les types structures

C Tableaucomportant
Structures unidimentionnel Introduction
d’autres structures

› Une structure peut contenir aussi des champs de type structure, cette dernière doit
être différente de la première

Initialisation
struct UnEtudiant e1={"Ben
Salem", "Ali",{1,1,2000}}

Utilisation
[Link] =1;
scanf("%d%d%d", &[Link],
&[Link], &[Link]);

11
Les types structures

C Tableau
Tableaux de unidimentionnel
structures Introduction
› Etant donné qu’une structure est composée d’éléments de taille fixes, il est
possible de créer un tableau ne contenant que des éléments du type d’une
structure donnée.
› Il suffit de créer un tableau dont le type est celui de la structure et de le repérer par
un nom de variable

12
Les types structures

C Tableau
Tableaux de unidimentionnel
structures Introduction

13
Les types structures

C Tableau unidimentionnel Introduction


La déclaration de types synonymes : typedef

› La déclaration typedef permet de définir et ce que l’on nomme en langage C des


“types synonymes”.
› elle s’applique à tous les types et pas seulement aux structures.
› Exemple :
typedef int entier ;
Signifie que entier est synonyme de int, de sorte que les déclarations suivantes sont
équivalentes :
int n, p; entier n,p;

L’emploi de typedef permet ainsi de déclarer des variables du type correspondnat à


notre modèle de structure, à l’aide d’un seul mot de notre choix.

14
Les types structures

C Tableau unidimentionnel Introduction


La declaration de types synonymes : typedef

struct Etud { struct Etud {


float note [20]; float note [20];
int niveau; int niveau;
float moyenne; } ; float moyenne; } ;
typedef struct Etud Etudiant;
// déclaration
struct Etud E1; // déclaration
struct Etud E1;
Ou
typedef struct { Etudiant E1;
float note [20]; // Elimination de mot clé « struct »
int niveau;
float moyenne; } Etudiant;

// La déclaration des variables se fera uniquement


par:

15 Etudiant E1;

Vous aimerez peut-être aussi