Table Of ContentApprendre à
programmer avec Ada
Par Kaji9
www.siteduzero.com
Licence Creative Commons 4 2.0
Dernière mise à jour le 21/11/2012
2/353
Sommaire
Sommaire ........................................................................................................................................... 2
Lire aussi ............................................................................................................................................ 5
Apprendre à programmer avec Ada ................................................................................................... 7
Partie 1 : Premiers pas avec Ada ........................................................................................................ 8
Programmation, algorithmique et Ada ? ............................................................................................................................ 8
Qu'est-ce qu'un programme ? ..................................................................................................................................................................................... 8
Qu'appelle-t-on programme ? ..................................................................................................................................................................................... 8
Alors qu'allons-nous faire ? ....................................................................................................................................................................................... 11
Comment réaliser un programme ? .......................................................................................................................................................................... 12
Pourquoi Ada et pas autre chose ? ........................................................................................................................................................................... 13
Algorithmique ............................................................................................................................................................................................................ 13
Pourquoi Ada ? .......................................................................................................................................................................................................... 15
Les logiciels nécessaires ................................................................................................................................................ 16
IDE et compilateur : kesako ? ................................................................................................................................................................................... 16
Le compilateur ........................................................................................................................................................................................................... 16
L'IDE ou EDI .............................................................................................................................................................................................................. 16
Télécharger et installer Adagide. ............................................................................................................................................................................... 16
Téléchargement ........................................................................................................................................................................................................ 16
Installation ................................................................................................................................................................................................................. 16
Télécharger et installer GNAT. .................................................................................................................................................................................. 17
Téléchargement ........................................................................................................................................................................................................ 17
Installation ................................................................................................................................................................................................................. 17
Télécharger et installer GPS ..................................................................................................................................................................................... 17
Notre premier programme en Ada ................................................................................................................................... 18
Découvrir son IDE en quelques secondes ................................................................................................................................................................ 19
Soyons rapide avec Adagide ..................................................................................................................................................................................... 19
Pour les utilisateurs de GPS (plus long) ................................................................................................................................................................... 20
Notre premier programme ......................................................................................................................................................................................... 22
Un petit copier-coller ! ............................................................................................................................................................................................... 22
Compiler, créer ... lancer ! ......................................................................................................................................................................................... 23
Mon dieu, qu'ai-je fait ? ............................................................................................................................................................................................. 23
Le corps du programme : la procédure Hello ............................................................................................................................................................ 24
Les Packages avec With et Use ............................................................................................................................................................................... 25
Une dernière remarque qui a son importance ........................................................................................................................................................... 26
Vous en voulez encore ? ........................................................................................................................................................................................... 26
Exercice 1 .................................................................................................................................................................................................................. 26
Exercice 2 .................................................................................................................................................................................................................. 27
Exercice 3 .................................................................................................................................................................................................................. 28
Partie 2 : Ada, notions essentielles ................................................................................................... 29
Variables I : Typage et affectation ................................................................................................................................... 29
Déclaration de variables ............................................................................................................................................................................................ 29
Différents types ......................................................................................................................................................................................................... 30
Les types Integer et Natural ...................................................................................................................................................................................... 30
Le type Float .............................................................................................................................................................................................................. 31
Le type Character ...................................................................................................................................................................................................... 32
Affectation ................................................................................................................................................................................................................. 33
Affectation par le programmeur (ou le programme) .................................................................................................................................................. 33
Affectation par l'utilisateur ......................................................................................................................................................................................... 33
L'instruction Skip_line ................................................................................................................................................................................................ 34
Constantes et attributs .............................................................................................................................................................................................. 35
Constantes ................................................................................................................................................................................................................ 35
Attributs ..................................................................................................................................................................................................................... 36
Variables II : Opérations .................................................................................................................................................. 38
Opérations sur les Integer et les Natural ................................................................................................................................................................... 38
Opérations sur les float ............................................................................................................................................................................................. 39
Opérations sur les character ..................................................................................................................................................................................... 39
Exercices ................................................................................................................................................................................................................... 40
Exercice 1 .................................................................................................................................................................................................................. 40
Exercice 2 .................................................................................................................................................................................................................. 41
Exercice 3 .................................................................................................................................................................................................................. 41
Exercice 4 .................................................................................................................................................................................................................. 42
Les conditions I ............................................................................................................................................................... 43
Conditions simples avec IF ....................................................................................................................................................................................... 44
Un début en douceur ................................................................................................................................................................................................. 44
Une première alternative ........................................................................................................................................................................................... 45
Conditions multiples avec IF ..................................................................................................................................................................................... 45
Conditions multiples avec CASE ............................................................................................................................................................................... 47
Les opérateurs de comparaison ................................................................................................................................................................................ 47
Les conditions II : les booléens ....................................................................................................................................... 49
Introduction aux booléens ......................................................................................................................................................................................... 50
Un bref historique ...................................................................................................................................................................................................... 50
Qu'est-ce qu'un booléen ? ......................................................................................................................................................................................... 50
Les opérateurs booléen ............................................................................................................................................................................................. 51
La négation avec Not ................................................................................................................................................................................................ 51
www.siteduzero.com
Sommaire 3/353
Les opérations Or et And ........................................................................................................................................................................................... 52
L'instruction or ........................................................................................................................................................................................................... 52
L'instruction and ........................................................................................................................................................................................................ 52
L'opération xor (optionnel) ......................................................................................................................................................................................... 53
Bilan de notre programme ......................................................................................................................................................................................... 53
Priorités booléennes et ordre de test (Supplément) .................................................................................................................................................. 54
Priorités avec les booléens ....................................................................................................................................................................................... 54
Ordre de test ............................................................................................................................................................................................................. 55
Les boucles ..................................................................................................................................................................... 57
La boucle Loop simple .............................................................................................................................................................................................. 57
La boucle While ......................................................................................................................................................................................................... 59
La boucle For ............................................................................................................................................................................................................ 59
Les antiquités : l'instruction goto ............................................................................................................................................................................... 60
Boucles imbriquées ................................................................................................................................................................................................... 61
Méthode avec une seule boucle (plutôt mathématique) ........................................................................................................................................... 61
Méthode avec deux boucles (plus naturelle) ............................................................................................................................................................. 62
Exercices ................................................................................................................................................................................................................... 63
Exercice 1 .................................................................................................................................................................................................................. 63
Exercice 2 .................................................................................................................................................................................................................. 63
Exercice 3 .................................................................................................................................................................................................................. 64
Exercice 4 .................................................................................................................................................................................................................. 64
Exercice 5 .................................................................................................................................................................................................................. 64
Exercice 6 .................................................................................................................................................................................................................. 64
Procédures et fonctions I ................................................................................................................................................ 65
Les procédures .......................................................................................................................................................................................................... 65
Procédure sans paramètre ........................................................................................................................................................................................ 65
Procédure avec un paramètre (ou argument) ........................................................................................................................................................... 67
Procédure avec plusieurs paramètres (ou arguments) ............................................................................................................................................. 69
Les fonctions ............................................................................................................................................................................................................. 70
Une bête fonction ...................................................................................................................................................................................................... 70
Une fonction un peu moins bête (optionnel) ............................................................................................................................................................. 71
Bilan .......................................................................................................................................................................................................................... 73
Prédéfinir ses paramètres ......................................................................................................................................................................................... 75
In, Out, In Out ............................................................................................................................................................................................................ 77
Mode in ...................................................................................................................................................................................................................... 77
Mode out ................................................................................................................................................................................................................... 77
Mode in out ................................................................................................................................................................................................................ 77
[TP1] le craps .................................................................................................................................................................. 79
Les règles du craps ................................................................................................................................................................................................... 79
Cahier des charges ................................................................................................................................................................................................... 79
Simuler le hasard (ou presque) ................................................................................................................................................................................. 80
Un plan de bataille .................................................................................................................................................................................................... 81
Une solution .............................................................................................................................................................................................................. 82
Partie 3 : Ada, les types composites ................................................................................................. 84
Les tableaux .................................................................................................................................................................... 85
Les types composites, c'est quoi ? ............................................................................................................................................................................ 85
Tableaux unidimensionels ......................................................................................................................................................................................... 86
Problème ................................................................................................................................................................................................................... 86
Création d'un tableau en Ada .................................................................................................................................................................................... 87
Attributs pour les tableaux ......................................................................................................................................................................................... 90
Tableaux multidimensionels ...................................................................................................................................................................................... 91
Tableaux bidimensionnels ......................................................................................................................................................................................... 91
Tableaux tridimensionnels et plus ............................................................................................................................................................................. 92
Et mes attributs ? ...................................................................................................................................................................................................... 94
Et mes agrégats ? ..................................................................................................................................................................................................... 94
Des tableaux un peu moins contraints ...................................................................................................................................................................... 95
Un type non-contraint ou presque ............................................................................................................................................................................. 95
Affectation par tranche .............................................................................................................................................................................................. 95
Déclarer un tableau en cours de programme ............................................................................................................................................................ 96
Quelques exercices ................................................................................................................................................................................................... 97
Exercice 1 .................................................................................................................................................................................................................. 97
Exercice 2 .................................................................................................................................................................................................................. 98
Exercice 3 ................................................................................................................................................................................................................ 100
Les chaînes de caractères ............................................................................................................................................ 103
Présentation des Chaînes de Caractères ............................................................................................................................................................... 103
Déclaration et affectation d'un string ....................................................................................................................................................................... 103
Quelques opérations sur les strings ........................................................................................................................................................................ 104
Accès à une valeur .................................................................................................................................................................................................. 104
Accès à plusieurs valeurs ....................................................................................................................................................................................... 104
Modifier la casse ..................................................................................................................................................................................................... 105
Concaténation ......................................................................................................................................................................................................... 105
Transformer une variable en string et inversement ................................................................................................................................................. 106
Comparaison ........................................................................................................................................................................................................... 107
Saisie au clavier ...................................................................................................................................................................................................... 107
Chaînes de caractères non contraintes ................................................................................................................................................................... 108
Déclarer des strings illimités ! ................................................................................................................................................................................. 108
Opérations sur les unbounded_string ..................................................................................................................................................................... 108
La programmation modulaire I : les packages .............................................................................................................. 111
Les fichiers nécessaires .......................................................................................................................................................................................... 111
Notre première procédure... empaquetée ............................................................................................................................................................... 112
Compléter notre package (exercices) ...................................................................................................................................................................... 115
Procédures d'affichage ............................................................................................................................................................................................ 115
www.siteduzero.com
Sommaire 4/353
Procédures de création ........................................................................................................................................................................................... 116
Fonctions de tri ........................................................................................................................................................................................................ 116
Opérations élémentaires ......................................................................................................................................................................................... 116
Compléter notre package (solutions) ....................................................................................................................................................................... 117
Vecteurs et calcul vectoriel (optionnel) .................................................................................................................................................................... 121
Qu'est-ce exactement qu'un T_Vecteur ? ............................................................................................................................................................... 121
Calcul vectoriel ........................................................................................................................................................................................................ 121
Les fichiers .................................................................................................................................................................... 122
Ouvrir / Fermer un fichier texte ................................................................................................................................................................................ 123
Package nécessaire ................................................................................................................................................................................................ 123
Le type de l'objet ..................................................................................................................................................................................................... 123
Fermer un fichier ..................................................................................................................................................................................................... 123
Ouvrir un fichier ....................................................................................................................................................................................................... 124
Le paramètre Mode ................................................................................................................................................................................................. 126
Lecture seule ........................................................................................................................................................................................................... 126
Ecriture seule .......................................................................................................................................................................................................... 126
Ajout ........................................................................................................................................................................................................................ 126
Opérations sur les fichiers textes ............................................................................................................................................................................ 127
Mode lecture seule : In_File .................................................................................................................................................................................... 127
Mode écriture : Out_File / Append_File ................................................................................................................................................................... 130
Autres opérations .................................................................................................................................................................................................... 130
Les fichiers binaires séquentiels ............................................................................................................................................................................. 131
Les fichiers binaires directs ..................................................................................................................................................................................... 133
Quelques exercices ................................................................................................................................................................................................. 134
Exercice 1 ................................................................................................................................................................................................................ 134
Exercice 2 ................................................................................................................................................................................................................ 135
Exercice 3 ................................................................................................................................................................................................................ 136
Créer vos propres objets ............................................................................................................................................... 138
Créer à partir de types prédéfinis ............................................................................................................................................................................ 139
Sous-type comme intervalle .................................................................................................................................................................................... 139
Types modulaires .................................................................................................................................................................................................... 139
Enumérer les valeurs d'un type ............................................................................................................................................................................... 140
Les types structurés ................................................................................................................................................................................................ 141
Déclarer un type "construit" ..................................................................................................................................................................................... 141
Ordre des déclarations ............................................................................................................................................................................................ 143
Déclarer et modifier un objet de type structuré ....................................................................................................................................................... 144
22 ! Rev'là les tableaux ! ......................................................................................................................................................................................... 145
Les types structurés : polymorphes et mutants ! ..................................................................................................................................................... 147
Les types structurés polymorphes ........................................................................................................................................................................... 147
Les types structurés mutants .................................................................................................................................................................................. 149
[TP2] logiciel de gestion de bibliothèque ...................................................................................................................... 152
Cahier des charges ................................................................................................................................................................................................. 153
Quelles données pour quels types de données ? ................................................................................................................................................... 153
Quelle architecture pour les fichiers ........................................................................................................................................................................ 154
Quelles fonctionnalités pour quelles fonctions et procédures ? .............................................................................................................................. 154
Architecture du code source ................................................................................................................................................................................... 155
Conception du programme (suivez le guide) .......................................................................................................................................................... 155
Création des types .................................................................................................................................................................................................. 155
Affichage d'une œuvre ............................................................................................................................................................................................ 156
Saisie d'une oeuvre ................................................................................................................................................................................................. 156
Gestion des fichiers ................................................................................................................................................................................................. 157
Les commandes ...................................................................................................................................................................................................... 158
Solutions possibles ................................................................................................................................................................................................. 158
Les pointeurs I : allocation dynamique .......................................................................................................................... 167
Mémoire, variable et pointeur .................................................................................................................................................................................. 168
Le type access ........................................................................................................................................................................................................ 171
Déclarer un pointeur ................................................................................................................................................................................................ 171
Que contient mon pointeur ? ................................................................................................................................................................................... 172
Comment accéder aux données ? .......................................................................................................................................................................... 173
Opérations sur les pointeurs ................................................................................................................................................................................... 173
Une erreur à éviter .................................................................................................................................................................................................. 175
Libération de la mémoire ......................................................................................................................................................................................... 175
Un programme (un peu) gourmand ......................................................................................................................................................................... 175
Un problème de mémoire ........................................................................................................................................................................................ 176
Résolution du problème .......................................................................................................................................................................................... 178
Exercices ................................................................................................................................................................................................................. 179
Exercice 1 ................................................................................................................................................................................................................ 179
Exercice 2 ................................................................................................................................................................................................................ 180
Les pointeurs II .............................................................................................................................................................. 182
Cas général ............................................................................................................................................................................................................. 182
Pointeurs généralisés : pointer sur une variable ..................................................................................................................................................... 182
Pointeur sur une constante et pointeur constant ..................................................................................................................................................... 183
Pointeur sur pointeur ............................................................................................................................................................................................... 184
Pointeur comme paramètre ..................................................................................................................................................................................... 185
Pointeur sur un programme (optionnel) .................................................................................................................................................................. 186
Un exemple simple .................................................................................................................................................................................................. 186
Un exemple de la vie courante ................................................................................................................................................................................ 188
Un exemple très ... mathématique .......................................................................................................................................................................... 188
Exercices ................................................................................................................................................................................................................. 191
Exercice 1 ................................................................................................................................................................................................................ 191
Exercice 2 ................................................................................................................................................................................................................ 192
Exercice 3 ................................................................................................................................................................................................................ 193
www.siteduzero.com
Sommaire 5/353
Exercice 4 ................................................................................................................................................................................................................ 194
Exercice 5 (Niveau Scientifique) ............................................................................................................................................................................. 194
Fonctions et procédures II : la récursivité ..................................................................................................................... 196
Une première définition ........................................................................................................................................................................................... 197
Exemple d'algorithme récursif ................................................................................................................................................................................. 198
Un premier exemple de fonction récursive .............................................................................................................................................................. 199
Énoncé .................................................................................................................................................................................................................... 199
Indications ............................................................................................................................................................................................................... 199
Une solution possible .............................................................................................................................................................................................. 201
Algorithme de recherche par dichotomie ................................................................................................................................................................ 201
Principe ................................................................................................................................................................................................................... 201
Mise en œuvre ........................................................................................................................................................................................................ 203
Solution ................................................................................................................................................................................................................... 203
Quelques exercices ................................................................................................................................................................................................. 204
Exercice 1 ................................................................................................................................................................................................................ 204
Exercice 2 ................................................................................................................................................................................................................ 205
Exercice 3 ................................................................................................................................................................................................................ 206
Exercice 4 ................................................................................................................................................................................................................ 207
Les Types Abstraits de Données : listes, files, piles ... ................................................................................................. 207
Qu'est-ce qu'un Type Abstrait de Données ? .......................................................................................................................................................... 208
Un premier cas ........................................................................................................................................................................................................ 208
Autres cas ............................................................................................................................................................................................................... 209
Primitives ................................................................................................................................................................................................................. 212
Les piles .................................................................................................................................................................................................................. 213
Création du type T_Pile ........................................................................................................................................................................................... 213
Création des primitives ............................................................................................................................................................................................ 214
Jouons avec le package P_Pile .............................................................................................................................................................................. 217
Les files ................................................................................................................................................................................................................... 218
Implémentation ........................................................................................................................................................................................................ 218
Amusons-nous encore ............................................................................................................................................................................................ 220
Les listes chaînées .................................................................................................................................................................................................. 221
Quelques rappels .................................................................................................................................................................................................... 221
Le package Ada.Containers.Doubly_Linked_Lists .................................................................................................................................................. 222
Le package Ada.Containers.Vectors ....................................................................................................................................................................... 226
[TP3] le jeu du serpent .................................................................................................................................................. 228
Cahier des charges ................................................................................................................................................................................................. 229
Fonctionnalités ........................................................................................................................................................................................................ 229
Organisation des types et variables ........................................................................................................................................................................ 229
Un package bien utile .............................................................................................................................................................................................. 230
Le package NT_Console ......................................................................................................................................................................................... 230
Le contenu en détail ................................................................................................................................................................................................ 241
... et encore un autre ! ............................................................................................................................................................................................. 243
Quelques indications ............................................................................................................................................................................................... 244
Jouer en temps réel ................................................................................................................................................................................................ 244
Comment afficher un serpent et une zone de jeu en couleur ? .............................................................................................................................. 245
Par où commencer ? ............................................................................................................................................................................................... 246
Une solution possible .............................................................................................................................................................................................. 246
Partie 4 : Ada : Notions avancées en Programmation Orientée Objet ............................................ 254
Algorithmique : tri et complexité .................................................................................................................................... 255
Algorithmes de tri lents ............................................................................................................................................................................................ 255
Tri par sélection (ou par extraction) ......................................................................................................................................................................... 256
Tri par insertion ....................................................................................................................................................................................................... 257
Tri à bulles (ou par propagation) ............................................................................................................................................................................. 258
Algorithmes de tri plus rapides ................................................................................................................................................................................ 259
Tri rapide (ou Quick Sort) ........................................................................................................................................................................................ 259
Tri fusion (ou Merge Sort) ........................................................................................................................................................................................ 261
Tri par tas ................................................................................................................................................................................................................ 263
Théorie : complexité d'un algorithme ...................................................................................................................................................................... 269
Complexité .............................................................................................................................................................................................................. 269
L'écriture O .............................................................................................................................................................................................................. 269
Quelques fonctions mathématiques ........................................................................................................................................................................ 270
Mesures de complexité des algorithmes ................................................................................................................................................................. 272
Un algorithme pour mesurer la complexité ... des algorithmes ............................................................................................................................... 272
Traiter nos résultats ................................................................................................................................................................................................. 274
Variables III : Gestion bas niveau des données ............................................................................................................ 277
Représentation des nombres entiers ...................................................................................................................................................................... 277
Le code binaire ........................................................................................................................................................................................................ 277
Conversions entre décimal et binaire ...................................................................................................................................................................... 278
Retour sur le langage Ada ....................................................................................................................................................................................... 279
Représentation du texte .......................................................................................................................................................................................... 282
Représentation des nombres décimaux en virgule flottante ................................................................................................................................... 284
Représentation des float ......................................................................................................................................................................................... 284
Implications sur le langage Ada .............................................................................................................................................................................. 286
La programmation modulaire II : Encapsulation ........................................................................................................... 290
Qu'est-ce qu'un objet ? ............................................................................................................................................................................................ 290
Une première approche ........................................................................................................................................................................................... 290
Posons le vocabulaire ............................................................................................................................................................................................. 292
De nouvelles contraintes ......................................................................................................................................................................................... 293
Un package... privé ................................................................................................................................................................................................. 294
Partie publique / partie privée ................................................................................................................................................................................. 294
Visibilité ................................................................................................................................................................................................................... 296
Un package privé et limité ....................................................................................................................................................................................... 297
www.siteduzero.com
Lire aussi 6/353
Que faire avec un type private ? ............................................................................................................................................................................. 297
Restreindre encore notre type ................................................................................................................................................................................. 298
Exercices ................................................................................................................................................................................................................. 299
Exercice 1 ................................................................................................................................................................................................................ 300
Exercice 2 ................................................................................................................................................................................................................ 300
La programmation modulaire III : Généricité ................................................................................................................. 301
Généricité : les grandes lignes. ............................................................................................................................................................................... 302
Que veut-on faire ? .................................................................................................................................................................................................. 302
Plan de bataille ........................................................................................................................................................................................................ 302
Un dernier point de vocabulaire .............................................................................................................................................................................. 303
Créer et utiliser une méthode générique ................................................................................................................................................................. 304
Créer une méthode générique ................................................................................................................................................................................ 304
Utiliser une méthode générique .............................................................................................................................................................................. 305
Paramètres génériques de types simples et privés ................................................................................................................................................ 307
Types génériques simples ....................................................................................................................................................................................... 307
Types génériques privés ......................................................................................................................................................................................... 308
Paramètres génériques de types composites et programmes ................................................................................................................................ 308
Tableaux génériques ............................................................................................................................................................................................... 308
Pointeurs génériques .............................................................................................................................................................................................. 310
Paramètre de type programme : le cas d'un paramètre limited private ................................................................................................................... 310
Packages génériques .............................................................................................................................................................................................. 312
Exercice ................................................................................................................................................................................................................... 312
Solution ................................................................................................................................................................................................................... 313
Application ............................................................................................................................................................................................................... 315
La programmation modulaire IV : Héritage et dérivation .............................................................................................. 315
Pour bien commencer ............................................................................................................................................................................................. 316
Héritage : une première approche théorique ........................................................................................................................................................... 316
Héritage : une approche par l'exemple ................................................................................................................................................................... 317
Héritage ................................................................................................................................................................................................................... 318
Héritage de package simple .................................................................................................................................................................................... 318
Héritage avec des packages privés ........................................................................................................................................................................ 322
Héritage avec des packages génériques ................................................................................................................................................................ 324
Dérivation et types étiquetés ................................................................................................................................................................................... 325
Créer un type étiqueté ............................................................................................................................................................................................. 325
Et nos méthodes ? .................................................................................................................................................................................................. 326
Un autre avantage des classes ............................................................................................................................................................................... 329
Bilan : ...................................................................................................................................................................................................................... 330
La programmation modulaire V : Polymorphisme, abstraction et héritage multiple ..................................................... 330
Polymorphisme ....................................................................................................................................................................................................... 331
Méthodes polymorphes ........................................................................................................................................................................................... 331
Objets polymorphes ................................................................................................................................................................................................ 332
Abstraction .............................................................................................................................................................................................................. 336
Types abstraits ........................................................................................................................................................................................................ 336
Méthodes abstraites ................................................................................................................................................................................................ 337
Héritage multiple ..................................................................................................................................................................................................... 339
Comment Ada gère-t-il l'héritage multiple ? ............................................................................................................................................................ 339
Réaliser des interfaces Ada .................................................................................................................................................................................... 341
La programmation modulaire VI : Finalisation et types contrôlés ................................................................................. 345
Objectifs et prérequis .............................................................................................................................................................................................. 346
De quoi parle-t-on exactement ? ............................................................................................................................................................................. 346
Comment s'y prendre ? ........................................................................................................................................................................................... 347
Mise en œuvre ........................................................................................................................................................................................................ 348
Mise en place de nos types ..................................................................................................................................................................................... 348
Mise en place de nos méthodes ............................................................................................................................................................................. 348
www.siteduzero.com
Lire aussi 7/353
Apprendre à programmer avec Ada
Par Kaji9
Mise à jour : 21/11/2012
Difficulté : Intermédiaire Durée d'étude : 1 mois, 15 jours
3 818 visites depuis 7 jours, classé 43/797
Vous voudriez apprendre à programmer mais ne savez pas par où commencer ? Vous avez commencé à apprendre le C mais vous
vous embrouillez dans les accolades et autres symboles bizarroïdes ? Ou encore vous souhaitez apprendre un nouveau langage
de programmation ? Alors ce tutoriel est fait pour vous.
Le langage Ada est certainement le meilleur langage pour apprendre à programmer : pour peu que vous connaissiez deux ou trois
mots d'anglais, il vous sera facile de lire un code en Ada. Moins abstrait que beaucoup de langages, mais toutefois rigoureux,
facilement compréhensible et lisible, même par un novice ... le langage Ada vous permettra de comprendre les logiques propres à
la programmation et vous donnera tout de suite de bonnes habitudes.
Qui plus est, le langage Ada ne présente ni plus ni moins de fonctionnalités que les langages les plus connus (C, C++, Java,
Python...). Il est seulement différent et, je me répète, plus compréhensible pour un novice.
Alors si vous êtes intéressé, nous allons pouvoir débuter de tutoriel.
Organisation du tutoriel :
Ce tutoriel est prévu pour être organisé en six parties :
La partie I constitue une introduction à la programmation et vous accompagne dans votre première prise en main d'Ada.
Les parties II, III et IV traitent (ou traiteront) du langage Ada en lui-même et présenteront une difficulté progressive.
La partie V constituera une mise en pratique en vous proposant de créer des programmes fenêtrés avec GTK et Ada.
La partie VI fournira les annexes à ce tutoriel : FAQ, Glossaire, présentation de librairies tierces ...
Le cours sera ponctué de travaux pratiques. Ce sont des chapitres vous proposant un projet (parfois ludique) allant du logiciel
de gestion de vos DVD à des jeux de dés. Ils seront pour vous l'occasion de mettre en application vos connaissances acquises.
Ces travaux pratiques sont signalés dans leur titre par la notation [TP#] (le symbole # étant remplacé par le numéro du TP). De
plus, ils portent tous l'icône :
www.siteduzero.com
Apprendre à programmer avec Ada 8/353
Partie 1 : Premiers pas avec Ada
Qu'est-ce que la programmation ? Qu'est-ce que Ada ? Comment faire pour "programmer en Ada" ? Autant de questions
existentielles auxquelles nous allons répondre dans cette première (et courte) partie.
Programmation, algorithmique et Ada ?
Nous allons dans ce chapitre répondre à quelques questions préliminaires. Qu'est-ce qu'un programme ? A quoi cela ressemble-t-
il ? Comment crée-t-on un programme ? Qu'est-ce que l'algorithmique ? Pourquoi Ada et pas un autre langage ? Ce que j'apprends
ici sera-t-il utilisable avec un autre langage ?
Bref, beaucoup de réponses existentielles trouveront (je l'espère) leur réponse ici. Ce chapitre, relativement court et sans
difficultés, permettra de poser un certain nombre d'idées et de termes. Pour bien commencer, mieux vaut en effet que nous ayons
le même vocabulaire.
A ceux qui auraient déjà des notions de programmation, vous pouvez bien entendu éviter ce chapitre quoique je ne saurais trop
vous conseiller d'y jeter un œil, histoire de remettre quelques idées au clair.
Qu'est-ce qu'un programme ?
Avant de commencer, il est important que nous nous entendions sur les termes que nous allons utiliser.
Qu'appelle-t-on programme ?
Les programmes sont des fichiers informatiques particuliers. Sous Windows, ce sont généralement des fichiers se terminant par
l'extension .exe ; sous MacOS ce sont globalement des fichiers .app ; sous Linux ce sont schématiquement des fichiers .bin.
Cette explication est très (TRÈS) schématique, car d'autres types de fichiers peuvent correspondre à des programmes.
Ces fichiers ont comme particularité de ne pas seulement contenir des données, mais également des instructions. Lorsque vous
ouvrez un fichier .exe sous windows, celui-ci transmet à votre ordinateur une liste de choses à faire comme :
ouvrir une fenêtre
afficher du texte
effectuer des opérations
...
Cette liste d'instructions envoyées au processeur, forme alors ce que l'on appelle un processus.
On fait généralement un amalgame entre programme et processus. Le programme est, rappelons-le un fichier. Le
processus correspond aux instructions effectuées par le processeur et qui viennent du programme. Mais, en général,
on appelle tout cela programme.
Voici quelques images de programmes :
www.siteduzero.com
Partie 1 : Premiers pas avec Ada 9/353
www.siteduzero.com
Partie 1 : Premiers pas avec Ada 10/353
Attention, tous les programmes ne sont pas nécessairement visibles. Beaucoup n'ouvrent même pas de fenêtre ! Pour s'en rendre
compte, sous Windows, appuyez simultanément sur les touches Alt + Ctrl + Suppr puis cliquez sur le second onglet, cela
affichera la liste de tous les processus en cours.
www.siteduzero.com
Description:Apprendre à programmer avec Ada. Par Kaji9 www.siteduzero.com. Licence Creative Commons 4 2.0. Dernière mise à jour le 21/11/2012