TABLE DES MATIÈRES INTRODUCTION À LA PROGRAMMATION EN PASCAL/DELPHI i TABLE DES MATIÈRES ii TABLE DES MATIÈRES INTRODUCTION À LA PROGRAMMATION EN PASCAL/DELPHI Samuel PIERRE Télé-université Sainte-Foy (Québec) Canada 1998 iii TABLE DES MATIÈRES Ce manuel est utilisé dans le cadre du cours Introduction à la programmation (INF 1200) offert par la Télé-université. Tous les droits de reproduction, de traduction et d’adaptation, en tout ou en partie, par quelque moyen que ce soit, sont réservés. Télé-université, 1993 ISBN 2-7624-1132-7 (2e édition) ISBN 2-7624-0546-7 Dépôt légal – 3e trimestre 1998 Bibliothèque nationale du Québec Bibliothèque nationale du Canada Imprimé au Québec, Canada Édité par : Télé-université 2600, boul. Laurier, Tour de la Cité, 7e étage Case postale 10700 Sainte-Foy (Québec) Canada GIV 4V9 Distribué par : Somabec Ltée 2475, Sylva-Clapin Saint-Hyacinthe (Québec) Canada J2S 7B6 Téléphone : (514) 774-8118 iv TABLE DES MATIÈRES TABLE DES MATIÈRES Avant-propos Chapitre 1 LA RÉSOLUTION DE PROBLÈME ET LA PROGRAMMATION 1.1 Décidabilité et algorithme 1.1.1 La notion d’algorithme 1.1.2 La notion d’indécidabilité 1.1.3 Les problèmes décidables 1.2 La représentation des algorithmes 1.2.1 La description des algorithmes 1.2.2 La codification des algorithmes 1.3 La méthodologie de programmation 1.3.1 La spécification d’un problème 1.3.2 L’analyse d’un problème 1.3.3 La phase de programmation 1.4 L’ingénierie des logiciels 1.4.1 Les caractéristiques d’un bon logiciel 1.4.2 Le cycle de vie des logiciels Exercices Chapitre 2 LES LANGAGES DE PROGRAMMATION 2.1 Définition et rôle des langages 2.2 Les caractéristiques des langages de programmation 2.2.1 Les caractéristiques lexicales 2.2.2 Les caractéristiques syntaxiques 2.2.3 Les caractéristiques sémantiques 2.3 La classification des langages de programmation 2.3.1 Les langages de bas niveau 2.3.2 Les langages de haut niveau 2.3.3 Les machines-langages xi 1 3 3 4 5 6 8 9 10 10 11 15 19 20 20 24 27 29 30 30 31 31 32 32 34 39 v TABLE DES MATIÈRES 2.4 Les types de programmation 2.4.1 La programmation procédurale 2.4.2 La programmation fonctionnelle 2.4.3 La programmation logique 2.4.4 La programmation par objets Exercices 40 40 41 43 45 47 Chapitre 3 LES ÉLÉMENTS DE BASE DU LANGAGE PASCAL 51 3.1 Les caractéristiques du langage PASCAL 3.1.1 Un langage évolué 3.1.2 Un langage universel 3.1.3 Un langage structuré 3.1.4 Un langage procédural 3.2 La structure d’un programme PASCAL 3.3 La syntaxe du langage PASCAL 3.3.1 L’alphabet 3.3.2 Les opérateurs 3.3.3 Les mots du langage 53 53 54 54 57 57 58 60 60 64 3.4 Les formalismes de représentation syntaxique 3.4.1 Les formes normales de Backus-Naur 3.4.2 Les diagrammes syntaxiques 3.5 Les instructions exécutables Exercices 66 66 67 70 72 Chapitre 4 LES TYPES DE DONNÉES DU LANGAGE PASCAL 4.1 La notion d’étiquette 4.2 Les constantes et les variables 4.2.1 La notion de constante 4.2.2 La notion de variable 75 77 78 78 80 vi TABLE DES MATIÈRES 4.3 Les types de données standards 4.3.1 Les entiers 4.3.2 Les réels 4.3.3 Les caractères 4.3.4 Les booléens 4.4 Les types de données non standards 4.4.1 Les tableaux 4.4.2 Les chaînes de caractères 4.4.3 Les énumérations 4.4.4 Les intervalles 4.4.5 Les ensembles 4.4.6 Les enregistrements 4.4.7 Les fichiers 4.4.8 Les pointeurs 4.5 Les fonctions standards Exercices Chapitre 5 LES INSTRUCTIONS DE BASE ET LES STRUCTURES DE SÉLECTION 5.1 Les énoncés de lecture et d’écriture 5.1.1 Les procédures de lecture 5.1.2 Les procédures d’écriture 5.2 Les énoncés d’affectation 5.2.1 L’affectation d’expressions arithmétiques 5.2.2 L’affectation d’expressions booléennes 5.2.3 L’affectation d’expressions relationnelles 5.2.4 L’affectation d’expressions spéciales 5.3 Les instructions composées 5.4 La sélection simple 5.5 La sélection multiple Exercices 82 82 83 86 87 87 88 91 91 92 93 95 97 98 98 101 105 107 107 112 118 118 120 122 123 124 125 126 129 vii TABLE DES MATIÈRES Chapitre 6 LES STRUCTURES ITÉRATIVES 6.1 6.2 6.3 6.4 La structure itérative « pour » La structure itérative « tant que » La structure itérative « répéter » Le contexte d’utilisation et l’imbrication de boucles 6.4.1 Le tri par sélection 6.4.2 Le tri par insertion 6.5 La trace d’un programme Exercices Chapitre 7 LES PROCÉDURES ET LES FONCTIONS 7.1 Les procédures 7.1.1 Généralités 7.1.2 Les procédures sans paramètres 7.1.3 Les procédures avec paramètres 7.1.4 La transmission des paramètres 7.2 Les fonctions 7.2.1 Généralités 7.2.2 Les fonctions paramétrées 7.3 Les procédures et les fonctions récursives 7.3.1 La somme de nombres 7.3.2 Le produit de nombres Exercices Chapitre 8 APPLICATION : CALCUL DES COÛTS D’ACQUISITION DE MATÉRIEL DE BUREAU 133 135 141 145 148 149 156 157 161 165 167 167 169 172 175 181 181 182 184 185 185 187 191 8.1 Spécification du problème 193 8.2 Diagramme hiérarchique et algorithme 194 viii TABLE DES MATIÈRES 8.3 Procédures et programme 8.3.1 La procédure Options 8.3.2 Procédure Entrer_Fournisseurs 8.3.3 Procédure Supprimer 8.3.4 Procédure Supprimer_Nom 8.3.5 Procédure Visualiser 8.3.6 Procédure Entrer_Interet_Amortissement 8.3.7 Procédure Calcul_Interet 8.3.8 Procédure Calcul_Amortissement 8.3.9 Procédure Impression_Interet 8.3.10 Procédure Impression_Amortissement 8.3.11 Procédure Terminer 8.3.12 Procédure Interet_Amortissement 8.3.13 Programme principal 8.4 Liste du programme Exercices 195 196 196 198 198 199 200 201 201 202 203 204 204 205 206 214 Chapitre 9 APPLICATIONS À LA RÉSOLUTION DE PROBLÈME EN TURBO PASCAL VERSION DOS 7.0 215 9.1 Notions de la théorie des graphes 217 9.2 La construction d’un arbre sous-tendant minimum 9.2.1 Les grandes étapes de l’algorithme de Prim 9.2.2 Les notes d’implantation de l’algorithme de Prim 9.2.3 Les grandes étapes de l’algorithme de Kruskal 9.2.4 Les notes d’implantation de l’algorithme de Kruskal 220 221 222 232 233 9.3 La localisation de concentrateurs ou d’entrepôts 9.3.1 Le fonctionnement de l’algorithme ADD 9.3.2 Le fonctionnement de l’algorithme DROP Exercices 243 245 262 276 ix TABLE DES MATIÈRES LE CORRIGÉ DES EXERCICES 279 Annexe 1 SYNTHÈSE DE LA SYNTAXE DU PASCAL 301 Annexe 2 QUELQUES MOTS RÉSERVÉS ET FONCTIONS STANDARDS DE PASCAL 309 Note.– Dans ce document, le générique masculin est utilisé sans aucune discrimination et uniquement dans le but d’alléger le texte. x