Algorithmique : Introduction Cours de BTS/CPI 1ère année Algo – Prog CPI/BTS1 – M. Dravet – 10/09/2003 Dernière modification: 11/09/2003
Introduction à l’Algorithmique Algorithmie ou algorithmique: science des algorithmes, visant à étudier les séquences d’instruction dans un programme informatique. Un algorithme est une procédure de résolution de problème, énoncée sous la forme d'une série d'opérations à effectuer. L'implémentation (ou codage) de l'algorithme consiste en l'écriture de ces opérations dans un langage de programmation. Il faut donc définir ces opérations avant l’implémentation.
Introduction à l’Algorithmique La conception d’algorithmes intervient donc assez tôt dans le cycle de création d’un logiciel. La qualité de l’algorithme conditionne directement la qualité du logiciel développé ultérieurement sur ses bases. Faire de bons algorithmes (définition d’un «bon» algorithme plus tard) est donc primordial pour le développeur informatique. Un mauvais algorithme devra sans cesse être retravaillé car le logiciel associé fonctionne mal.
Introduction à l’Algorithmique Intérêts de l’algorithmique Faire la conception détaillée dans un langage algorithmique, indépendant des langages de programmation, et compréhensible par des informaticiens qui ne sont pas des développeurs
Introduction à l’Algorithmique Intérêts de l’algorithmique Préparer la phase de test du logiciel Analyse Tests Tests d’intégration Recette Exemple du cycle en V Conception générale Facteurs ergonomiques, intégration à d’autres logiciels, etc. Conception détaillée Codage
Introduction à l’Algorithmique Préparation à la phase de test On sait ce qu’un algo doit faire puisqu’on connaît les résultats à sortir en fonction des données en entrée, Donc on sait aussi ce qu’il ne doit pas faire ! On peut ainsi rédiger un protocole de tests pour déceler les problèmes de conception/logique Problème du cycle en V: les tests après le codage : possibilité de perte de temps … Donc nécessité de procéder à plusieurs tests basiques de l’algo AVANT de traduire l’algo dans un langage de programmation quelconque.
Introduction à l’Algorithmique Cycle de développement d’un programme Enoncé du problème Traduction dans un langage précis Traduction en langage machine 2 Phase d’analyse Réalisation du programme 3 Conception du ou Des algorithmes C’est nous ! Programme exécutable Par la machine 1
Introduction à l’Algorithmique Principe d’un logiciel informatique Recevoir des données (depuis le clavier, depuis un fichier, par une connexion réseau, etc.) Traitement de ces données via le code machine conçu indirectement par le développeur de l’application. Ce traitement s’effectue en utilisant le ou les processeurs, la mémoire disponible, d’éventuels périphériques. Sortie d’un résultat (affichage écran, impression papier, envois sur le réseau, etc.)
Introduction à l’Algorithmique L’ordinateur effectue donc des traitement de données. Ces données, quelles qu’elles soient, sont réduites à des expressions simples, les primitives. Elles sont stockées en mémoire. Données en entrée Programme Données en sortie Processeur Mémoire
Conception Algorithmique La programmation comprend plusieurs étapes. Ecrire un programme informatique est un problème très complexe on divise ce problème en plusieurs étapes pour le rendre plus facile. Chaque étape est plus simple à résoudre isolément que le problème tout entier. Certaines étapes peuvent être prises en charge par d’autres programmes déjà existants.
Conception Algorithmique Première chose à faire lors de la conception d’un algorithme: Identifier les données en entrée et les écrire, Identifier le ou les résultats à obtenir, et les écrire. Deuxième chose à faire: Imaginer la méthode pour obtenir les résultats à partir des données fournies. Troisième chose à faire: Concrétiser cette méthode en l’écrivant en pseudo-langage, suivant des règles bien précises.
Le pseudo-langage ? Le pseudo-langage: langage hybride entre les langages de programmation et notre langage commun, que l’on parle tous les jours. Il suit cependant une organisation stricte de manière à être clair et facilement lisible ou compréhensible. De même que l’organisation, les termes employés doivent être rigoureusement respectés et employés. La personnalisation d’algorithme ne doit pas exister …
Le pseudo-langage ? Un algorithme possède: Exemple : Un nom, Un début, Une fin. Exemple : Programme Moyenne Début suite d’instructions calculant une moyenne Fin
Le pseudo-langage ? L’algorithme est une suite logique de décisions/actions Exemple: La machine à café de l’EPSI Programme ServirCafé Début Si je reçois de l’argent Si on m’indique quel café servir en moins de 30 secondes Alors je verse le café je rend l’éventuelle monnaie Fin Sinon je rend l’argent Fin si Je retourne à mon état initial
Le pseudo-langage ? L’algo se lit donc : De haut en bas De gauche à droite Mais en tenant compte des primitives (ex. si-alors-sinon-fin si) La rédaction de l’algo se doit d’être très claire pour une compréhension optimale Imaginez l’algo précédent sans alinéas …
Le pseudo-langage ? L’algorithme est une suite logique de décisions/actions Exemple: La machine à café de l’EPSI Programme ServirCafé Début Si je reçois de l’argent Si on m’indique quel café servir en moins de 30 secondes Alors je verse le café je rend l’éventuelle monnaie Fin Sinon je rend l’argent Fin si Je retourne à mon état initial INGERABLE SUR DES ALGOS PLUS LONGS ET PLUS COMPLEXES !
Le pseudo-langage ? De même, un algo doit être commenté. Chaque étape importante dans le déroulement de l’algo doit être expliquée clairement … … et de manière concise : pas de romans plus long que l’algo lui-même ! Cela servira à tout le monde y compris vous …
Le pseudo-langage ? Moralité : Présentation de l’algorithme très importante … autant pour vous (facilité à traduire dans un langage de programmation donné) … … Que pour vos lecteurs (profs, jury, autre développeur), et donc Les algos « sales » et/ou non commentés seront toujours « salement » notées ! C’est juste une habitude à prendre …
Introduction à l’Algorithmique Prochaines étapes du cours : Instructions de base, définition et utilisation des variables Les structures de contrôle Alternatives (si alors sinon) Itératives (boucles) Les tableaux de données Les enregistrements Procédures et fonctions Les fichiers …
Introduction à l’Algorithmique Questions sur cette partie du cours ?