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