AP11
ALGORITHMIQUE, LANGAGE CET
STRUCTURES DE DONNÉES
GIL PROTOY
TÉLÉCOM INT — 1ÈRE ANNÉE
AOÛT 2006
AP11 Algorithmique, Langage C et Structures de Données
GET / INT / INF — Gil Protoy — Août 2006 — Télécom INT — 1ère année 2
AP11 Algorithmique, Langage C et Structures de Données
Table des matières
C1 15
Objectifs du module AP11 16
Contenu du C1 17
1 Objectifs détaillés 18
1.1 Algorithmique : objectifs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
1.2 Langage C : objectifs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
1.3 Structures de données : objectifs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2 Organisation pédagogique 22
2.1 Présentiel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
2.2 Hors Présentiel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
2.3 Séquencement : Algorithmique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
2.4 Séquencement : Langage C (1) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
2.5 Séquencement : Langage C (2) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
2.6 Séquencement : Structures de Données . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
2.7 Validation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
C2 31
Objectifs du C2 32
Contenu du C2 33
1 La programmation 34
1.1 Problème et Programme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
1.2 Principes méthodologiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
1.3 Algorithme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
1.4 Algorithme vs Programme C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
1.5 Méthodologie de programmation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
1.6 Introduction au génie logiciel - . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
1.7 Complexité d’un algorithme - . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
1.8 Temps d’exécution - . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
1.9 Exemples de fonctions de complexité - . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
2 Le langage algorithmique 44
2.1 Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
2.2 Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
2.3 Changement d’état . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
2.4 Actions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
2.5 Les opérateurs de notre langage algorithmique . . . . . . . . . . . . . . . . . . . . . . . . . 49
2.6 Base des langages de programmation impératifs . . . . . . . . . . . . . . . . . . . . . . . . 50
2.7 Le schéma séquentiel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
2.8 Le schéma alternatif (ou schéma de choix) . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
2.9 Maximum de deux entiers - . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
2.10 Le schéma de choix généralisé - . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
2.11 Le schéma itératif canonique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
2.12 Le schéma itératif canonique (variante) - . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
2.13 Le schéma itératif « pour » . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
GET / INT / INF — Gil Protoy — Août 2006 — Télécom INT — 1ère année 3
AP11 Algorithmique, Langage C et Structures de Données
2.14 Echange du contenu de deux variables - . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
3 La programmation structurée 59
3.1 Décomposer pour résoudre . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
3.2 Fonction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
3.3 Désignation/Appel d’une fonction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
3.4 Procédure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
3.5 Désignation/Appel d’une procédure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
3.6 La fonction principale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
4 Un exemple de décomposition 66
4.1 Une pyramide de chiffres - . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
4.2 afficherPyramide - afficherLigne - . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
4.3 afficherEspaces - afficherSuiteCroissante - . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
4.4 afficherSuiteDécroissante - . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
TD1-TD2 71
Exercices validés durant les TD1-TD2 72
1.1 Un petit calcul de partage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
1.2 L’année bissextile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
1.3 Le temps plus une seconde . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
1.4 Le nombre de jours de congés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
1.5 Calcul de n! . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
1.6 Nombres premiers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
1.7 Quotient et reste d’une division entière . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
1.8 Recherche du zéro d’une fonction par dichotomie . . . . . . . . . . . . . . . . . . . . . . . 74
1.9 Suite de Fibonacci . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
1.10 Intégration par la méthode des trapèzes . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
1.11 Nombres parfaits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
1.12 Racines d’une équation du second degré . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
1.13 Affichage du développement de l’expression (x+y)n. . . . . . . . . . . . . . . . . . . . . 75
C3 77
Objectifs du C3 78
Contenu du C3 79
1 Les types définis explicitement 80
1.1 Le type énumération . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
1.2 Les types composites . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
1.3 Les tableaux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
1.4 Tableau à une dimension . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
1.5 Tableau à deux dimensions - . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
1.6 Les structures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
2 Les tris itératif 87
2.1 Spécification du problème . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
2.2 Tri par sélection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
2.3 Tri par insertion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
2.4 Tri à bulles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
GET / INT / INF — Gil Protoy — Août 2006 — Télécom INT — 1ère année 4
AP11 Algorithmique, Langage C et Structures de Données
TD3-TD4 93
Exercices validés durant les TD3-TD4 94
2.1 Plus petit élément d’un tableau d’entiers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
2.2 Plus petit et plus grand éléments d’un tableau . . . . . . . . . . . . . . . . . . . . . . . . . 94
2.3 Inversion d’un tableau . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
2.4 Nombre d’occurrences d’un élément . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
2.5 Elément le plus fréquent d’un tableau . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
2.6 Recherche dichotomique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
2.7 Sous-séquences croissantes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
2.8 Transposée d’une matrice carrée . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
2.9 Produit de deux matrices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
2.10 Recherche d’un élément dans un tableau de structures . . . . . . . . . . . . . . . . . . . 95
2.11 Moyenne des notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
2.12 Histogramme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
TD5 97
Exercices validés durant le TD5 98
3.1 Tri par sélection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
3.2 Tri par insertion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
3.3 Tri à bulles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
3.4 Tri de trois couleurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
C4 101
Objectifs du C4 102
Contenu du C4 103
1 La récursivité 104
1.1 La notion de récursivité . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
1.2 Méthode de conception . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
1.3 Enchaînement des appels récursifs - . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
2 Les tris récursifs 108
2.1 Spécification du problème . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
2.2 Tri rapide . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
2.3 Partitionnement (tri rapide) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
2.4 Tri par fusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
2.5 Déroulement du tri par fusion - . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
2.6 Complexité des algorithmes de tri . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
TD6-TD7 115
Exercices validés durant les TD6-TD7 116
4.1 Calcul de C(n,p) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
4.2 Terme de la suite de Fibonacci . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
4.3 PGCD : Algorithme d’Euclide . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
4.4 Zéro d’une fonction par dichotomie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
4.5 Inversion d’un tableau . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
4.6 Recherche d’un élément dans un tableau . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
4.7 Plus petit et plus grand éléments d’un tableau . . . . . . . . . . . . . . . . . . . . . . . . . 117
GET / INT / INF — Gil Protoy — Août 2006 — Télécom INT — 1ère année 5
1 / 352 100%
Study collections
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 !