Organigramme / Algorigramme Dossier élève
Transcription
Organigramme / Algorigramme Dossier élève
Organigramme / Algorigramme CI 10, I11 ; CI 11, I10 C24 Algorithmique Dossier élève 1°SI 8 février 2009 (13:47) 1. Introduction Un organigramme (ou algorigramme, lorsqu’il est plus particulièrement appliqué à l’algorithmique) est une représentation graphique normalisée1, utilisée pour analyser ou décoder un problème. Il est clair, mais peu adapté aux systèmes complexes. Un algorigramme considéré comme bon a les caractéristiques suivantes : – il comporte des liaisons fléchées ; – il est fermé ; – il comporte un début et une fin2. 2. Symboles Début, fin, interruption Le cas de l’interruption ne sera pas vu au sein de ce cours. Traitement Opération ou groupe d’opérations sur des données, etc. Entrée / Sortie Mise à disposition d’une information à traiter ou enregistrement d’une information traitée. Pour simplifier la première approche, nous considérerons dans un premier temps que cet élément est utilisé lors d’une entrée ou sortie du système étudié. Par exemple, un capteur fait partie du système, mais la grandeur captée en est extérieure. Sous-programme Portion de programme considérée comme une simple opération. Embranchement (choix) Test, question qui implique un choix. Le sens général de lecture est de haut en bas, et de gauche à droite. Si ce n’est pas le cas, on flèche la liaison. 1 NF Z 67-010 et ISO 5807. 2 Ce point est discutable car les systèmes embarqués, par exemple, n’ont pas forcément de fin. http://prof.maquaire.free.fr – /home/manolo/Documents/prof/0809/numérique/algorithmique/organigramme - 0809.odt Page 1 / 4 3. Relation entre algorigramme et pseudo-code Un algorigramme est utilisé à dessein de programmer un système, généralement géré par microprocesseur ou microcontrôleur. C’est en effet une phase qui permet de décrire un comportement, et d’envisager les réactions d’un système. Il y a donc un lien direct entre un algorigramme et un programme (écrit en Pascal, C, Basic, assembleur, etc.) Nous n’allons pas étudier de langage de programmation spécifique, et nous nous référerons à un pseudo-langage simple, nommé « pseudo-code », composé de « pseudo-instructions ». Ce dernier permet en effet de comprendre les structures existantes, et il est simple de les adapter à un quelconque langage. 3.1. Structure linéaire Elle se caractérise par une suite d’actions à exécuter successivement, dans un ordre défini. La structure linéaire n’est pas une façon de programmer en soi ; il s’agit plutôt de parties d’algorigrammes qui seront conçues de façon linéaire. début début action A action A action B action B action C ... action C 3.2. Structure alternative Elle propose un choix ; une condition va entraîner telle ou telle réaction du système. Les deux issues s’excluent mutuellement. Cette structure peut intégrer des portions de structures linéaires. 3.2.1. SI... ALORS... SINON... [IF... THEN... ELSE...] ... condition 1 ? action D action E SI condition 1 ALORS action D SINON action E FINSI ... http://prof.maquaire.free.fr – /home/manolo/Documents/prof/0809/numérique/algorithmique/organigramme - 0809.odt Page 2 / 4 3.2.2. SI... ALORS... [IF... THEN...] Il s’agit de la même structure que précédemment, mais la partie « SINON... » est omise ; il en résulte un choix non pas entre deux actions, mais entre l’exécution d’une action ou non. condition 2 ? action F ... SI condition 2 ALORS action F FINSI ... 3.3. Structure itérative La structure itérative, aussi appelée structure répétitive, permet par exemple de répéter une action jusqu’à ce qu’une condition soit validée. Elle intègre de facto une structure alternative, et éventuellement des structures linéaires. 3.3.1. FAIRE... JUSQU’A... [DO... UNTIL...] L’action est exécutée au moins une fois. Le nombre d’exécutions de la boucle est inconnu et / ou variable. ... action G condition 3 ? FAIRE action G JUSQU’A condition 3 FINFAIRE ... 3.3.2. TANTQUE... FAIRE... [WHILE... DO...] L’action n’est pas forcément exécutée. Le nombre d’exécutions de la boucle est inconnu et / ou variable. ... condition 4 ? TANTQUE condition 4 FAIRE action H FINTANTQUE action H ... http://prof.maquaire.free.fr – /home/manolo/Documents/prof/0809/numérique/algorithmique/organigramme - 0809.odt Page 3 / 4 3.3.3. POUR... FAIRE... [FOR... DO...] Le nombre d’exécutions de la boucle est connu. Il peut être variable dans certains cas particuliers qui ne seront pas vus ici. valeur initiale → variable variable + pas → variable action I variable = valeur finale ? ... POUR variable DE valeur initiale A valeur finale PARPASDE pas FAIRE action I FINPOUR ... 4. Exercices 4.1. Choix d’une résistance Soit un système dont la matière d’œuvre est un flot de résistances de valeur 1 kΩ. La tolérance des résistances est de +/- 10 %. La partie du système étudiée doit : détecter la présence d’une résistance (le composant), mesurer sa valeur exacte en ohms, et vérifier que cette valeur est bien comprise dans la plage des +/- 10 %. – Quelles sont les valeurs minimale et maximale admises par le système ? – Proposer l’algorigramme de gestion du système, et le pseudo-code correspondant. – Quelle est la principale structure utilisée ? 4.2. Montée en température d’une enceinte Une enceinte close doit être portée à une température de 65 °C. Nous n’allons voir que la partie de l’algorigramme qui réalise cette montée en température, et non le système régulation intégral ; une fois cette température atteinte, le traitement s’arrête. – Proposer l’algorigramme de gestion du système, et le pseudo-code correspondant. – Quelle est la principale structure utilisée ? 4.3. Remplissage d’une caisse On veut compter le passage de bouteilles sur un tapis. Lorsque six bouteilles sont passées, l’arrivée de nouvelles bouteilles est stoppée (un système annexe placera les six bouteilles dans une caisse, mais cette gestion ne sera pas étudiée ici). – Proposer l’algorigramme de gestion du système, et le pseudo-code correspondant. – Quelle est la principale structure utilisée ? 4.4. Gestion d’un ascenseur Une personne entre dans un ascenseur, et appuie sur le bouton-poussoir d’un étage. Proposer l’algorigramme simplifié de gestion de l’ensemble : début lors de la demande d’un étage et fin lorsque l’étage désiré est atteint. http://prof.maquaire.free.fr – /home/manolo/Documents/prof/0809/numérique/algorithmique/organigramme - 0809.odt Page 4 / 4 – Partie enseignant – 5. Symboles annexes Renvoi Permet d’améliorer la lisibilité d’un algorigramme. Il y a forcément un nombre pair de renvois au sein d’un organigramme. Commentaire Permet d’expliciter un comportement grâce à un commentaire. 6. Correction des exercices 6.1. Choix d’une résistance début détecter la présence d’une résistance mesurer la valeur ohmique de la résistance → R SI R > 1100 Ω ALORS jeter la résistance SINON SI R < 900 Ω ALORS jeter la résistance SINON conserver la résistance FINSI FINSI fin (Structure alternative) 6.2. Montée en température d’une enceinte première solution : début TANTQUE FAIRE FINTANTQUE fin T < 65 °C chauffer deuxième solution (plus exacte) : début contrôler la température → T TANTQUE T < 65 °C FAIRE chauffer contrôler la température → T FINTANTQUE fin Note : Une structure à base de FAIRE... JUSQU’A... est aussi utilisable (et est même plus simple), mais cela implique une mise en marche du système de chauffe, même si la température initiale est supérieure ou égale à 65 °C. (Structures alternatives) 6.3. Remplissage d’une caisse http://prof.maquaire.free.fr – /home/manolo/Documents/prof/0809/numérique/algorithmique/organigramme - 0809.odt Page 5 / 4 première solution : début POUR Nb DE 1 A 6 PARPASDE 1 FAIRE détecter bouteille FINPOUR stopper l’arrivée des bouteilles fin deuxième solution (plus courante) : début POUR Nb DE 6 A 1 PARPASDE -1 FAIRE détecter bouteille FINPOUR Stopper l’arrivée des bouteilles fin Note : On n’incrémente pas (ou ne décrémente pas) la variable Nb ; cette opération est implicitement réalisée par la structure elle-même. (Structures itératives) http://prof.maquaire.free.fr – /home/manolo/Documents/prof/0809/numérique/algorithmique/organigramme - 0809.odt Page 6 / 4