Par Vronique Bondaz - Pascal Bouron - Troumad alias Bernard SIAUD
Date de publication : 25 juin 2007 Dernire mise jour : 4 juillet 2007 Les premiers algorigrammes, les premires boucles Introduction aux algorigrammes par Vronique Bondaz - Pascal Bouron - Troumad alias Bernard SIAUD - 2 - Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de prsentation constitue une uvre intellectuelle protge par les droits d'auteur. Copyright 2013 Bernard Siaud. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts. Cette page est dpose la SACD. http://troumad.developpez.com/C/algorigrammes/ Avant-Propos................................................................................................................................................................ 3 1 - La norme ISO 5807............................................................................................................................................... 3 2 - Les entres-sorties.................................................................................................................................................4 3 - Structure d?aiguillage : Si (...) {...} Alors {...}.........................................................................................................5 4 - Structure de choix multiples : Au cas ou............................................................................................................... 5 5 - Les boucles tant que et faire...tant que.................................................................................................................6 5.1 - La boucle " tant que ".................................................................................................................................... 6 5.2 - La boucle " repeter tant que "....................................................................................................................... 7 5.3 - Remplacer la boucle " repeter tant que " par "tant que"............................................................................... 7 6 - L'instruction Pour....................................................................................................................................................8 7 - Les structures viter - Exemple et contre exemple............................................................................................8 7.1 - algorigramme incorrect.................................................................................................................................. 9 7.2 - algorigramme corrig................................................................................................................................... 10 7.3 - algorigramme correct simplifi.....................................................................................................................11 8 - Un exemple complet............................................................................................................................................ 11 9 - Remerciements.................................................................................................................................................... 19 Introduction aux algorigrammes par Vronique Bondaz - Pascal Bouron - Troumad alias Bernard SIAUD - 3 - Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de prsentation constitue une uvre intellectuelle protge par les droits d'auteur. Copyright 2013 Bernard Siaud. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts. Cette page est dpose la SACD. http://troumad.developpez.com/C/algorigrammes/ Avant-Propos Avant toute programmation, il est recommand d'avoir une visualisation du programme qu'on va faire. Pour cela, il faut faire un algorithme ou un organigramme. Le premier a une structure linaire comme un programme alors que le second permet de bien mieux visualiser les diffrents blocs du programme, les boucles, les tests. C'est ce dernier point que je vais prsenter ici : les algorigrammes. Faire un organigramme est important car la programmation est un processus itratif. Le programme est parfois modifi par d'autres dveloppeurs que ceux qui l'ont conu. Ce schma pourra expliquer la conception du programme aux nouveaux dveloppeurs. Il pourra mme clairer le concepteur lui-mme sur des ides qu'il avait eu. La ralisation d'un organigramme est tout aussi important que de mettre des commentaires dans le programme. Les modes de programmation visuelle, qui se dveloppent de plus en plus ressemblent plus des algorigrammes qu' un programme. Il est donc important de prendre connaissance ds que possible avec cette schmatique. Cet article est un rsum du cours donn en II1 au dpartement GEii de l'IUT B de l'universit Lyon 1. 1 - La norme ISO 5807 Symbole Dsignation Symbole Dsignation 1) SYMBOLES DE TRAITEMENT Symbole gnral "traitement" Opration ou groupe d'oprations sur des donnes, instructions, etc.., ou opration pour laquelle il n'existe aucun symbole normalis. 6) Mode synchrone ; mode parallle Ce symbole est utilis lorsque plusieurs instructions doivent tre excutes simultanment. 2) Fonction ou sous- programme Portion de programme considre comme une simple opration. 7) SYMBOLES AUXILIAIRES Renvoi Symbole utilis deux fois pour assurer la continuit lorsqu'une partie de ligne de liaison n'est pas reprsente. 3) Entre - Sortie : Mise disposition d'une information traiter ou enregistrement d'une information traite. 8) Dbut, fin, interruption Dbut, fin ou interruption d'un organigramme, point de contrle, etc.. 4) Prparation Opration qui dtermine partiellement ou compltement la voie suivre dans un embranchement ou un sous-programme. 9) Commentaire Symbole utilis pour donner des indications marginales. Introduction aux algorigrammes par Vronique Bondaz - Pascal Bouron - Troumad alias Bernard SIAUD - 4 - Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de prsentation constitue une uvre intellectuelle protge par les droits d'auteur. Copyright 2013 Bernard Siaud. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts. Cette page est dpose la SACD. http://troumad.developpez.com/C/algorigrammes/ Symbole galement utilis pour prparer une dcision ou mettre un aiguillage en position. 3) SYMBOLES LOGIQUES Embranchement Exploitation de conditions variables impliquant le choix d'une voie parmi plusieurs. Symbole couramment utilis pour reprsenter une dcision ou un aiguillage. Sens conventionnel des liaisons : Le sens gnral des lignes doit tre : - de haut en bas - de gauche droite. Lorsque le sens ainsi dfini n'est pas respect, des pointes de flches, cheval sur la ligne, indiquent le sens utilis. Exemple : Calcul de la surface d?un disque partir du rayon Traduction du cahier des charges : Entre : Saisie du rayon Sortie : Affichage de la surface du disque Traitement raliser : Surface=Pi* Rayon 2 - Les entres-sorties Les entres sorties sont schmatises par des flches. Elles sont reprsentes, par une flche qui va vers une bulle ou un texte pour les entres et, par une flche qui sort d'une bulle ou d'un texte pour les sorties. Pour plus de lisibilit, on choisit de mettre gauche les entres et droite les sorties. La nature des entres-sorties est aussi indique car elles peuvent tre compltement diffrentes surtout en automatique. Voir sur le schma ci-dessus l'ntre Clavier et la sortie cran. Introduction aux algorigrammes par Vronique Bondaz - Pascal Bouron - Troumad alias Bernard SIAUD - 5 - Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de prsentation constitue une uvre intellectuelle protge par les droits d'auteur. Copyright 2013 Bernard Siaud. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts. Cette page est dpose la SACD. http://troumad.developpez.com/C/algorigrammes/ 3 - Structure d?aiguillage : Si (...) {...} Alors {...} Il s'agit de l'instruction : SI ( expression vraie ) ALORS BLOC 1 D'INSTRUCTIONS SINON BLOC 2 D'INSTRUCTIONS FINSI remarque : la sortie avec le rond est la sortie non . Ceci permet de la mettre n'importe o : en bas, droite ou gauche. 4 - Structure de choix multiples : Au cas ou... La structure Si (...) Alors {...} Sinon {...} permet de raliser un choix parmi deux possibilits. Il est possible d?imbriquer les Si (...) Alors {...} Sinon {...} les uns dans les autres pour tenir compte de choix plus nombreux. Mais la structure devient trs lourde crire et lire quand le nombre de cas augmente. On lui prfrera alors la structure de tests multiples, qui permet de comparer une variable (de type entier en C) toute une srie de valeurs et d?excuter, en fonction de la valeur effective de cette variable, diffrents blocs d?instructions. Le code compil par une suite de si ou un Au cas ou n'est pas le mme. Celui du Au cas ou est plus optimis en gnral. Introduction aux algorigrammes par Vronique Bondaz - Pascal Bouron - Troumad alias Bernard SIAUD - 6 - Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de prsentation constitue une uvre intellectuelle protge par les droits d'auteur. Copyright 2013 Bernard Siaud. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts. Cette page est dpose la SACD. http://troumad.developpez.com/C/algorigrammes/ Il s'agit de l'instruction : AU CAS OU ( la variable ) VAUT C1 : BLOC 1 D'INSTRUCTIONS C2 : BLOC 2 D'INSTRUCTIONS C3 : BLOC 3 D'INSTRUCTIONS ?. Cn : BLOC n D'INSTRUCTIONS SINON BLOC n+1 D'INSTRUCTIONS FIN DE CAS 5 - Les boucles tant que et faire...tant que 5.1 - La boucle " tant que " Il s'agit de l'instruction : TANT QUE ( condition est vraie ) FAIRE BLOC D'INSTRUCTIONS Remarque : comme le test se fait avant le bloc d'instructions, celui-ci n'est pas forcment excut. Introduction aux algorigrammes par Vronique Bondaz - Pascal Bouron - Troumad alias Bernard SIAUD - 7 - Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de prsentation constitue une uvre intellectuelle protge par les droits d'auteur. Copyright 2013 Bernard Siaud. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts. Cette page est dpose la SACD. http://troumad.developpez.com/C/algorigrammes/ Attention : il faut que le rsultat du test puisse tre modifi d?une manire ou d?une autre si on ne veut pas faire une boucle sans fin. On peut rencontrer la construction tant que (expression); sans la prsence du bloc d'instructions. Cette construction signifie: "tant que l'expression est vraie attendre". 5.2 - La boucle " repeter tant que " Il s'agit de l'instruction : REPETER BLOC D'INSTRUCTIONS TANT QUE (condition est vraie) Remarque : Le test se fait aprs le bloc d'instructions, celui-ci est excut au moins une fois. 5.3 - Remplacer la boucle " repeter tant que " par "tant que" REPETER BLOC D'INSTRUCTIONS A TANT QUE (condition est vraie) est quivalent BLOC D'INSTRUCTIONS A TANT QUE (condition est vraie) FAIRE BLOC D'INSTRUCTIONS A L'inconvnient de ce remplacement est la rptition de BLOC D'INSTRUCTIONS A. Cette remarque est juste l pour vous aider faire la diffrence entre un " repeter tant que " et un "tant que", un "do while" et un "while". Remplacement du "faire tant que" par un "repeter tant que" Introduction aux algorigrammes par Vronique Bondaz - Pascal Bouron - Troumad alias Bernard SIAUD - 8 - Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de prsentation constitue une uvre intellectuelle protge par les droits d'auteur. Copyright 2013 Bernard Siaud. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts. Cette page est dpose la SACD. http://troumad.developpez.com/C/algorigrammes/ 6 - L'instruction Pour Il s'agit de l'instruction : POUR ( initialisation ; condition de continuit vraie ; modification ) { BLOC D'INSTRUCTIONS } Remarques : Les 3 instructions du Pour ne portent pas forcment sur la mme variable. Une instruction peut contenir l'oprateur squentiel afin de pouvoir mettre deux instructions la place de l'initialisation, la condition de continuit ou la modification. Attention, ceci affecte gravement la lisibilit du code. Une ou plusieurs des 3 instructions peuvent tre omises, mais pas les ; Pour (;;) est une boucle infinie (rptition infinie du bloc d'instructions). 7 - Les structures viter - Exemple et contre exemple Bien que les algorigrammes soient trs flexibles, leur lisibilit impose d'viter d'utiliser des structures comme des renvois croiss (boucles ou sauts). Ces renvois doivent imprativement tre contenus les uns dans les autres sans intersection. Introduction aux algorigrammes par Vronique Bondaz - Pascal Bouron - Troumad alias Bernard SIAUD - 9 - Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de prsentation constitue une uvre intellectuelle protge par les droits d'auteur. Copyright 2013 Bernard Siaud. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts. Cette page est dpose la SACD. http://troumad.developpez.com/C/algorigrammes/ 7.1 - algorigramme incorrect Ceci est un mauvais exemple car les trois renvois se mlangent. Introduction aux algorigrammes par Vronique Bondaz - Pascal Bouron - Troumad alias Bernard SIAUD - 10 - Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de prsentation constitue une uvre intellectuelle protge par les droits d'auteur. Copyright 2013 Bernard Siaud. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts. Cette page est dpose la SACD. http://troumad.developpez.com/C/algorigrammes/ 7.2 - algorigramme corrig Cet algorigramme est correct mais, comme certaines parties sont crites deux fois, il peut tre simplifi. Introduction aux algorigrammes par Vronique Bondaz - Pascal Bouron - Troumad alias Bernard SIAUD - 11 - Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de prsentation constitue une uvre intellectuelle protge par les droits d'auteur. Copyright 2013 Bernard Siaud. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts. Cette page est dpose la SACD. http://troumad.developpez.com/C/algorigrammes/ 7.3 - algorigramme correct simplifi Grce aux fonctions, la structure du programme principal a t simplifie en vitant de faire plusieurs fois les mmes choses. 8 - Un exemple complet Voici, sous forme d'organigramme mon programme de taquin disponible http://c.developpez.com/sources/c/? page=IX. L'original des algorigrammes est un fichier draw de OpenOffice.org disponible ici. Introduction aux algorigrammes par Vronique Bondaz - Pascal Bouron - Troumad alias Bernard SIAUD - 12 - Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de prsentation constitue une uvre intellectuelle protge par les droits d'auteur. Copyright 2013 Bernard Siaud. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts. Cette page est dpose la SACD. http://troumad.developpez.com/C/algorigrammes/ Le corps du programme Introduction aux algorigrammes par Vronique Bondaz - Pascal Bouron - Troumad alias Bernard SIAUD - 13 - Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de prsentation constitue une uvre intellectuelle protge par les droits d'auteur. Copyright 2013 Bernard Siaud. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts. Cette page est dpose la SACD. http://troumad.developpez.com/C/algorigrammes/ ~~--------========________========--------~~ La fonction affiche qui renvoie le nombre k de cases mal places. Introduction aux algorigrammes par Vronique Bondaz - Pascal Bouron - Troumad alias Bernard SIAUD - 14 - Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de prsentation constitue une uvre intellectuelle protge par les droits d'auteur. Copyright 2013 Bernard Siaud. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts. Cette page est dpose la SACD. http://troumad.developpez.com/C/algorigrammes/ ~~--------========________========--------~~ La fonction callback_label qui renvoie 1 si le taquin est fini, 0 sinon. Introduction aux algorigrammes par Vronique Bondaz - Pascal Bouron - Troumad alias Bernard SIAUD - 15 - Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de prsentation constitue une uvre intellectuelle protge par les droits d'auteur. Copyright 2013 Bernard Siaud. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts. Cette page est dpose la SACD. http://troumad.developpez.com/C/algorigrammes/ ~~--------========________========--------~~ La fonction placepous qui renvoie 1 s'il y a eu un mouvement. Introduction aux algorigrammes par Vronique Bondaz - Pascal Bouron - Troumad alias Bernard SIAUD - 16 - Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de prsentation constitue une uvre intellectuelle protge par les droits d'auteur. Copyright 2013 Bernard Siaud. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts. Cette page est dpose la SACD. http://troumad.developpez.com/C/algorigrammes/ ~~--------========________========--------~~ 4 petites fonctions. Introduction aux algorigrammes par Vronique Bondaz - Pascal Bouron - Troumad alias Bernard SIAUD - 17 - Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de prsentation constitue une uvre intellectuelle protge par les droits d'auteur. Copyright 2013 Bernard Siaud. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts. Cette page est dpose la SACD. http://troumad.developpez.com/C/algorigrammes/ ~~--------========________========--------~~ La fonction taille Introduction aux algorigrammes par Vronique Bondaz - Pascal Bouron - Troumad alias Bernard SIAUD - 18 - Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de prsentation constitue une uvre intellectuelle protge par les droits d'auteur. Copyright 2013 Bernard Siaud. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts. Cette page est dpose la SACD. http://troumad.developpez.com/C/algorigrammes/ ~~--------========________========--------~~ La fonction morceaux ~~--------========________========--------~~ La fonction signal_morceaux Introduction aux algorigrammes par Vronique Bondaz - Pascal Bouron - Troumad alias Bernard SIAUD - 19 - Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de prsentation constitue une uvre intellectuelle protge par les droits d'auteur. Copyright 2013 Bernard Siaud. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts. Cette page est dpose la SACD. http://troumad.developpez.com/C/algorigrammes/ ~~--------========________========--------~~ La fonction choix_fichier ~~--------========________========--------~~ 9 - Remerciements PRomu@ld pour ses conseils et Dut pour sa correction.
Dépannage de l'impression 3D: Le manuel complet pour un dépannage rapide et facile de l'impression FDM 3D pour les débutants et les utilisateurs avancés