Mod´elisation des donn´ees [dx]
Algorithmique et Programmation
Karine Zampieri, St´ephane Rivi`ere, B´eatrice Amerein-Soltner
Unisciel algoprog Version 19 septembre 2016
Table des mati`eres
1 Se poser les bonnes questions 2
2 Les structures de donn´ees 4
3 Quelques conseils 5
4 Outils de documentation 6
4.1 Commenter un algorithme .......................... 6
4.2 Outils de documentation ........................... 6
5 Conclusion 7
C++ - Introduction
Mots-Cl´es Mod´elisation
Requis Axiomatique imp´erative
Difficult´e •◦◦ (15 min)
Ce module apporte une synth`ese des notions vues tout au long de cette partie [Axio-
matique imp´erative] et propose quelques pistes de r´eflexion quant au choix d’une bonne
mod´elisation des donn´ees qui se pose lors de la r´esolution de probl`emes de program-
mation avanc´es.
1
Unisciel algoprog – dx00cours-texte, September 19, 2016 2
1 Se poser les bonnes questions
Retour `a la case d´epart
Nous avons vu qu’un probl`eme bien sp´ecifi´e s’inscrit dans le scema suivant (cf. @[L’al-
gorithmique]) :
´etant donn´e [les donn´ees] on demande [l’objectif]
Une fois le probl`eme correctement pos´e, on peut partir `a la recherche d’une ethode
de r´esolution, c.-`a-d. d’un algorithme en ce qui concerne les probl`emes `a r´esoudre par
les moyens informatiques.
D´emarches algorithmiques de base
Nous avons vu divers mod`eles et techniques algorithmiques adapt´ees `a des structures par-
ticuli`eres (les nombres, les chaˆınes, les tableaux, les variables structur´ees, les fichiers...).
La plupart des exercices portaient directement sur ces structures (par ex. calculer la
somme des nombres d’un tableau, fusionner deux fichiers en un seul, extraire une sous-
liste `a partir d’une liste donn´ee). Ces exercices d’entraˆınement et de formation constituent
des d´emarches algorithmiques de base qui trouvent toutes une place dans des probl`emes
plus complexes.
Probl`emes de la vie courante
Mais la plupart des probl`emes issus des situations de la vie courante auxquels se confronte
le programmeur s’expriment g´en´eralement de mani`ere plus floue : par ex.
Dresser la comptabilit´e des d´epenses mensuelle d’une entreprise.
Faire un tableau r´ecapitulatif du r´esultat des ´elections par cantons ´electoraux.
Faire une version informatique d’un jeu t´el´evis´e...
Les exemples sont infinis.
La repr´esentation des donn´ees
C’est dans le cadre de ce genre de probl`eme plus complexe que se pose le probl`eme de
la repr´esentation de donn´ees. Une fois le probl`eme bien sp´ecifi´e (par les donn´ees et
l’objectif) apparaissent naturellement les questions suivantes :
Quelles donn´ees du probl`eme sont r´eellement utiles `a sa r´esolution ? (Il est fr´equent
que l’´enonc´e d’un probl`eme contienne des donn´ees superflues ou inutiles.)
Y a-t-il des donn´ees plus importantes que d’autres ?
Les donn´ees doivent-elles ˆetre consult´ees plusieurs fois ?
Quelles donn´ees faut-il conserver en m´emoire ?
Sous quelle forme ?
Faut-il utiliser un tableau ? Une liste ?
Faut-il cr´eer une structure ?
Les donn´ees doivent-elles ˆetre class´ees selon un crit`ere pr´ecis ?
Ou la pr´esentation brute des donn´ees suffit-elle pour solutionner le probl`eme pos´e ?
Unisciel algoprog – dx00cours-texte, September 19, 2016 3
Flair et savoir-faire
Les r´eponses ne sont pas directes et les diff´erents outils qui sont `a notre disposition
peuvent ˆetre ou ne pas ˆetre utilis´es. Il n’y a pas de r`egles pr´ecises pour r´epondre `a ces
questions : c’est le flair et le savoir-faire d´evelopp´es patiemment par le programmeur
au fil de ses exp´eriences et de son apprentissage qui le guideront vers la solution la
plus efficace. Parfois plusieurs solutions peuvent fonctionner sans pouvoir d´epartager la
meilleure d’entre-elles.
Finalit´e
Ce type de questionnement est l’un des aspects le plus d´elicat et le plus difficile de
l’activit´e de programmation, car d’une r´eponse appropri´ee d´ependra toute l’efficacit´e du
code d´evelopp´e. Un mauvais choix de repr´esentation des donn´ees peut mener `a un code
lourd et maladroit.
Nous donnons dans ce qui suit quelques indices et pistes de r´eflexion, qui seront conso-
lid´ees par l’exp´erience acquise lors des travaux pratiques ainsi que par les techniques de
mod´elisation vues dans votre cours d’algorithmique.
Unisciel algoprog – dx00cours-texte, September 19, 2016 4
2 Les structures de donn´ees
Premi`ere ann´ee
Rappelons bri`evement les diff´erentes structures ´etudi´ees :
Les donn´ees «simples »(entiers, r´eels, chaˆınes, caract`eres, bool´eens).
Les variables structur´ees qui regroupent en une seule entit´e une collection de
variables simples.
Le tableau qui contient un nombre d´etermin´e de variables de mˆeme type, acces-
sibles via un indice ou plusieurs pour les tableaux multidimensionnels.
La liste qui peut contenir un nombre ind´efini d’´el´ements de mˆeme type.
Le fichier s´equentiel qui est un support physique permettant le stockage «`a long
terme »de donn´ees.
Deuxi`eme ann´ee
Le cours de deuxi`eme ann´ee abordera :
Les objets qui combinent en un tout une s´erie d’attributs et des m´ethodes agissant
sur ces attributs.
D’autres structures particuli`eres : les listes chaˆın´ees, les piles, les files.
La r´ecursivit´e.
Troisi`eme ann´ee
Le cours de troisi`eme ann´ee abordera :
L’h´eritage et le polymorphisme des objets.
Les structures arborescentes et les structures relationnelles.
Les dictionnaires et les algorithmes.
Caract´eristiques
Chaque structure de donn´ees poss`ede ses sp´ecificit´es propres quant `a la fa¸con d’acc´eder
aux valeurs, de les parcourir, de les modifier, d’ajouter ou de supprimer des ´el´ements `a
la collection.
Unisciel algoprog – dx00cours-texte, September 19, 2016 5
3 Quelques conseils
Voici quelques conseils en vrac qui pourraient vous ˆetre utiles.
Grands principes de base
Nous vous conseillons de relire le paragraphe @[Les algorithmes param´etr´es – Qu’est-ce
qu’un algorithme de qualit´e]. Vous comprendrez certainement, sous un nouvel ´eclairage,
les termes de validit´e, d’extensibilit´e, de r´eutilisabilit´e, de lisibilit´e et d’efficience.
Parcours des donn´ees
En g´en´eral, on ´evite de parcourir plusieurs fois le contenu d’un ensemble de donn´ees
(surtout s’il s’agit d’un fichier) sauf s’il n’y a pas d’autre solution.
Duplication des donn´ees
On ´evite de cr´eer un duplicata sous quelque forme que ce soit d’une grande structure
de donn´ees. Par exemple, s’il faut trier les donn´ees d’un fichier, il est ´evident qu’il faut
stocker l’enti`eret´e des donn´ees en m´emoire pour pouvoir effectuer les comparaisons. Par
contre, c’est inutile si le probl`eme est d’extraire le maximum de ces donn´ees ou de les
compter.
Les bool´eens
L’exp´erience montre que les ´etudiants n´egligent souvent leur utilisation. Les variables
bool´eennes permettent de d´ecrire de fa¸con ´el´egante l’´etat de diff´erentes situations, d’ex-
primer de fa¸con concise des conditions...
Choix des boucles
Relisez attentivement le paragraphe @[R´ep´etitives – Structures r´ep´etitives] sur le choix
des boucles. Dans un processus it´eratif, il est imp´eratif de le quitter d`es qu’une r´eponse
est connue, plutˆot que de parcourir inutilement jusqu’au bout un ensemble de donn´ees. Le
bon suivi de ce principe intervient de fa¸con primordiale dans l’efficacit´e d’un algorithme !
1 / 7 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !