Vous êtes sur la page 1sur 4

Chapitre 2

Les types abstraits de données

2.1 Types de données et structures de données


2.1.1 Types concrets de données
Les types prédénis associés à leurs fonctions de manipulation au ni-
veau d'un langage de programmation donné, constituent l'ensemble des types
concrets du langage.
Dans un langage de programmation comme Pascal, les objets sont décla-
rés avec leur type. Les types constituent une description du format de repré-
sentation interne des données en machine, et ils sont par là-même un outil
d'abstraction, puisqu'ils libèrent le programmeur du souci de la représenta-
tion physique des données. Ainsi, il n'est pas nécessaire de savoir comment
est représentée une variable de type char ou boolean, voire string, du moment
que l'on sait la manipuler de la manière convenue.
2.1.2 Types abstraits de données
Les types prédénis sont peu nombreux. C'est pourquoi des constructeurs
de types permettent de dénir des types plus complexes, et donc des struc-
tures de données moins élémentaires. Là encore, l'implémentation précise
d'un array of char par exemple importe peu au programmeur (est-il rangé
par ligne, par colonne?), aussi longtemps que sa manipulation satisfait à des
règles précises. En revanche, lorsque l'on veut réaliser une pile | disons de
caractères | , les problèmes se posent autrement, puisqu'il n'existe pas, en
Pascal par exemple, de constructeur permettant de dénir des stack of char :
il est nécessaire de recourir à une structure de données.
1
2.1.3 Dénitions
Une structure de données est un moyen pour stocker et organiser
les données pour en faciliter l'accès et la modication. C'est également une
implémentation explicite d'un ensemble organisé d'objets, avec la réalisation
des opérations d'accès, de construction et de modication aérentes.
Une structure de données regroupe :
 Un certain nombre de données à gérer;
 Un ensemble d'opération pouvant être appliquées sur ces données.
Un type de données abstrait est la description d'un ensemble organisé
d'objets et des opérations de manipulation sur cet ensemble. Ces opéra-
tions comprennent les moyens d'accéder aux éléments de l'ensemble, et aussi,
lorsque l'objet est dynamique, les possibilités de le modier. Plus formelle-
ment, on peut donner une dénition mathématique d'un type abstrait : c'est
une structure algébrique, formée d'un ou de plusieurs ensembles, munis d'opé-
rations vériant un ensemble d'axiomes.
Avec ces dénitions, une structure de données est la réalisation, l'implémen-
tation explicite d'un type de données. Décrire un type de données, le spécier
comme on dit, c'est décrire les opérations possibles et licites, et leur eet.
Décrire une structure de données, c'est expliciter comment les objets sont
représentés et comment les opérations sont implémentées. Un TDA spécie :
 La nature et les propriétés des données;
 Les modalités d'utilisation des opérations pouvant être eectuées in-
dépendement de toute représentation interne de ces données ainsi que
l'iplémentation des opérations .
2.1.4 Les procédures et fonctions(important)
Les procédures et les fonctions sont des abstractions d' opérations. Chaque
opération est décrite par son nom, quelques paramètres et ce qu'elle fait.
Chaque procédure ou fonction dénit une opération en fournissant : son nom,
une description de ses paramètres, une valeur facultative qu'il peut renvoyer,
et une spécication de la relation entre les paramètres, la valeur renvoyée
et toute autre valeur de données .
Lors de l'utilisation de telles opérations , il n'est pas nécessaire de se
référer au corps de la procédure ou fonction qui contient des informations
détaillées sur la manière dont elle produit réellement le résultat. Une telle
abstraction présente de nombreux avantages.
2
 Permet de "factoriser" l'algorithme(Programme), c'est-à-dire de mettre
en commun les parties qui se répètent.
 Permet une structuration et une meilleure lisibilité des algorithmes;
 Facilite la maintenance du code (il sut de modier une seule fois);
 Ces procédures et fonctions peuvent éventuellement être réutilisées
dans d'autres algorithmes (programmes).
a- Les procédures
Une procédure est un bloc d'instructions nommé et déclaré dans l'entête
de l'algorithme et appelé dans son corps à chaque fois que le programmeur
en a besoin.

b- Les fonctions
Une fonction est un bloc d'instructions qui retourne obligatoirement une
et une seule valeur résultat à l'algorithme appelant. Une fonction n'ache
jamais la réponse à l'écran car elle la renvoie simplement à l'algorithme ap-
pelant.

3
2.2 Avantages des types abstraits de données
On peut citer comme avantages :
 La prise en compte des types de données complexe;
 Séparation entre les services(données + opérations) et le codage;
 L'utilisation d'un TDA n'a pas besoin de connaître les détails de co-
dage;
 L'écriture des programmes modulaire.
2.3 Dénition d'un type abstrait de données
Un TDA est caractérisé par :
 Son nom;
 Les types (domaine de valeur) qu'il manipule;
 Les opérations sur ces données;
 Les opérations sur ces données.
Les 03 premières notions dénissent la signature du TDA et les propriétés
sont appelées axiomes(formules).

SUITE : TPE

Vous aimerez peut-être aussi