STRUCTURES DE DONNEES ET
ALGORITHMES
M. Benjelloun, G. Libert
1ère bachelier en sciences de l'ingénieur (Faculté Polytechnique - UMONS)
Edition: 2014-2015
PREFACE
L'enseignement de Structures de données et algorithmes, destiné aux étudiants de la première année de
bachelier en Ingénieur civil de la Faculté Polytechnique de l'Université de Mons (UMONS) est organisé,
en trois parties:
1. Le cours magistral qui comprend l'étude des principaux concepts de base de l'informatique logicielle,
des composants matériels de l'ordinateur et de l’exécution des algorithmes, sujets traités dans ce syllabus;
2. Les séances d'exercices qui sont consacrées à l'étude de la syntaxe d'un langage de programmation et
à l'écriture de programmes illustratifs, un syllabus est dédicacé à cela,
3. Les séances de travaux pratiques qui permettent de mettre en œuvre sur ordinateur des programmes
écrits dans un langage de programmation.
Les objectifs de cet enseignement sont donc:
1. La connaissance des principes de base pour développer des algorithmes informatiques
2. La maîtrise d'un langage de programmation et d'un poste de travail informatique.
M. Benjelloun et G. Libert
14 octobre 2014
Je propose de considérer la question: "Les
machines peuvent-elles penser ?"
Alan TURING (1912-1954)
"Computing Machinery and Intelligence",
Mind, vol. LXI, n° 236 (1950)
TABLE DES MATIERES
CHAPITRE 1 : INTRODUCTION 1
1.1 ORDINATEURS ET ALGORITHMES 1
1.2 PROGRAMMES ET LANGAGES DE PROGRAMMATION 2
1.3 LA HIERARCHIE LOGICIEL MATERIEL 3
1.4 L'IMPORTANCE DES ALGORITHMES 4
CHAPITRE 2 : LA CONCEPTION DES ALGORITHMES 7
2.1 ALGORITHMES, PROGRAMMES, LANGAGES DE PROGRAMMATION 7
2.2 SYNTAXE ET SEMANTIQUE 8
2.3 AFFINEMENT PROGRESSIF DES ALGORITHMES 11
2.4 SEQUENCE 13
2.5 SELECTION 14
2.6 ITERATION 16
2.7 SEQUENCE, SELECTION ET ITERATION ENSEMBLE 24
2.8 MODULARITE 27
2.9 RECURSION 33
CHAPITRE 3 : STRUCTURES DE DONNEES 39
3.1 INTRODUCTION 39
3.2 LE CONCEPT DE TYPE DE DONNÉES 41
3.3 LES TYPES DE DONNÉES PRIMITIFS 43
3.4 TYPES PRIMITIFS STANDARD 44
3.5 TYPES INTERVALLE 45
3.6 LA STRUCTURE DE TABLEAU 46
3.7 LA STRUCTURE DE RECORD 48
3.8 LA STRUCTURE DE SUITE 51
CHAPITRE 4 : STRUCTURES DE DONNÉES DYNAMIQUES 53
4.1 TYPES DE DONNEES RECURSIFS 53
4.2 POINTEURS 55
4.3 LISTES LINEAIRES 57
CHAPITRE 5 : STRUCTURES DE DONNEES ELABOREES 62
5.1 TYPE ABSTRAIT ET STRUCTURE DE DONNEE 62
5.2 STRUCTURES LINEAIRES 63
5.3 ARBRES 72
CHAPITRE 6 : RECHERCHE ET TRI 84
6.1 INTRODUCTION 84
6.2 RECHERCHE DICHOTOMIQUE DANS UN TABLEAU TRIE 84
6.3 COMPLEXITE D‘UN ALGORITHME DE TRI 85
6.4 TRI SELECTION 86
6.5 TRI INSERTION 87
6.6 TRI RAPIDE 87
6.7 ARBRE BINAIRE DE RECHERCHE 91
6.8 STRUCTURE DE TAS ET TRI TAS 92
CHAPITRE 7 : TIRER PARTI DE LA REPETITION 97
7.1 LE DRAPEAU TRICOLORE DE DIJKSTRA 97
7.2 PROBLEME DU PLUS GRAND CARRE DE 1 100
CHAPITRE 8 : L'ARCHITECTURE DES ORDINATEURS 103
8.1 STRUCTURE DES ORDINATEURS 103
8.2 PHYSIQUE ET ELECTRONIQUE 104
8.3 LES COMPOSANTS 105
8.4 COMMUNIQUER AVEC LE MONDE EXTERIEUR 109
CHAPITRE 9 : L'EXECUTION DES ALGORITHMES 116
9.1 INTRODUCTION 116
9.2 TRADUCTEURS DE LANGAGE DE PROGRAMMATION 118
9.3 LES SYSTEMES D'EXPLOITATION 120
1
CHAPITRE 1 : INTRODUCTION
1.1 ORDINATEURS ET ALGORITHMES
Un ordinateur est une machine qui peut effectuer des tâches intellectuelles de routine en exécutant très
rapidement des opérations simples. La simplicité des opérations (l'addition ou la comparaison de deux
nombres en sont des exemples typiques) est compensée par la vitesse à laquelle elles sont exécutées. Le
résultat est que ces très nombreuses opérations permettent d'exécuter des travaux conséquents.
Naturellement un ordinateur ne peut accomplir que les tâches spécifiées dans les termes des opérations
simples qu'il est capable de réaliser. On doit indiquer à l'ordinateur quelles opérations il doit accomplir,
en d'autres termes, on doit lui décrire comment la tâche doit être menée à bien. Cette description est appelée
un algorithme. Un algorithme décrit une succession d'opérations qui, si elles sont fidèlement exécutées,
produiront le résultat désiré.
La notion d'algorithme n'est pas spécifique à l'informatique. Certains algorithmes décrivent toutes sortes
de tâches quotidiennes. Une recette de cuisine est un algorithme de même qu'une partition musicale. En
règle générale, la force agissante qui exécute une tâche est appelée un processeur. Un processeur peut être
une personne, un ordinateur ou tout autre dispositif électronique ou mécanique. Un processeur obéit aux
actions (les exécute) que l'algorithme lui décrit. L'exécution d'un algorithme implique l'exécution de
chacune de ses étapes constitutives.
Un ordinateur est donc simplement un processeur particulier. Naturellement c'est un processeur très
particulier, sinon il n'aurait pas eu cet impact important et rapide sur tant d'aspects de notre vie.
Un ordinateur actuel comporte trois composants essentiels qui sont:
1) l'unité centrale de traitement (UCT), qui fait les opérations de base;
2) la mémoire qui contient
a) l'algorithme spécifiant les opérations à exécuter;
b) l'information, ou les données, à partir desquelles les opérations agissent;
3) les dispositifs d'entrée et de sortie (dispositifs E/S) grâce auxquels l'algorithme et les données entrent
en mémoire et l'ordinateur communique les résultats.
Ces composants forment la partie matérielle de l'ordinateur. Ce sont les unités physiques à partir
desquelles les ordinateurs sont construits.
1 / 143 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 !