Ce mode d’emploi précise comment envoyer un fax. Il est composé d’une suite ordonnée d’instructions
(insérez…, composez…, enfoncez…) qui manipulent des données (document, chargeur automatique, numéro de fax,
pavé numérique, touche envoi) pour réaliser la tâche désirée (envoi d’un document).
Chacun a déjà été confronté à de tels documents pour faire fonctionner un appareil plus ou moins réticent et
donc, consciemment ou non, a déjà exécuté un algorithme.
– Oui bien sûr : vous allez tout droit jusqu’au prochain carrefour, vous prenez à gauche au carrefour et ensuite
la troisième à droite, et vous verrez la gare juste en face de vous.
– Merci.
Dans ce dialogue, la réponse de l’autochtone est la description d’une suite ordonnée d’instructions (allez tout
droit, prenez à gauche, prenez la troisième à droite) qui manipulent des données (carrefour, rues) pour réaliser la
tâche désirée (aller à la gare). Ici encore, chacun a déjà été confronté à ce genre de situation et donc, consciemment
ou non, a déjà construit un algorithme dans sa tête (définir la suite d’instructions pour réaliser une tâche). Mais
quand on définit un algorithme, celui-ci ne doit contenir que des instructions compréhensibles par celui qui devra
l’exécuter (des humains dans les 2 exemples précédents).
2.5.PROGRAMMATION
La programmation d’un processeur consiste à lui « expliquer » en détail ce qu’il doit faire, en sachant qu’il ne
« comprend » pas le langage humain, mais qu’il peut seulement effectuer un traitement automatique sur des
séquences de 0 et de 1.
2.6.PROGRAMME
Un programme n’est rien d’autre qu’une suite d’instructions, encodées en respectant de manière très stricte
un ensemble de conventions fixées à l’avance par un langage informatique. La machine décode alors ces
instructions en associant à chaque « mot » du langage informatique une action précise.
Quelques exemples de langages de programmation : C, Java, C++, C#, PHP, Visual Basic, Python, JavaScript,
MATLAB, Flowcode, LabVIEW, Arduino, Pascal… il y en existe des centaines !!!
Pour pouvoir être exécuté, un programme en langage de haut niveau doit être traduit vers son équivalent
machine, c’est le rôle du compilateur.
While (x > 0)
do
y := y + 1;
x := x - 1;
done;
1000 : 000001100001000000000001
000011100010000000000001
011000000000000000001000
Entrée-Sortie Commentaire
Mise à disposition d’une
Symbole utilisé pour donner
information à traiter ou
des indications sur les
enregistrement d’une
opérations effectuées
information à traitée
Symbole de test
➢ De gauche à droite
Lorsque le sens général ne peut pas être respecté, des pointes de flèches à cheval sur la ligne indiquent le sens
utilisé.
Règles de construction
➢ Centrer l’algorigramme sur une feuille
➢ Respecter le sens conventionnel des liaisons
➢ Les lignes de liaison entre symboles ne doivent pas en principe se couper (utiliser un symbole de
renvoi)
➢ Une ligne de liaison doit toujours arriver sur le haut et au centre d’un symbole.
➢ Les commentaires sont à placer de préférence à droite, et les renvois de branchement à
gauche.
Les opérateurs permettent d’élaborer une expression en vue d’effectuer un calcul ou une comparaison. L’usage
des parenthèses est vivement conseillé dans le cas d’expressions complexes.
6.1.OPERATEURS ARITHMETIQUES
Notation Signification
← Affectation
+ Addition
- Soustraction
* Multiplication
/ Division
DIV Division entière
MOD Modulo (reste de la division entière)
↑ Puissance
1
indentation : Tabulation du texte en insérant des espaces au début de chaque nouvelle structure afin de la mettre en
évidence.
Cours algorithmique v1.docx Page 8 / 18 Décembre 2020 v1
6.2.OPERATEURS LOGIQUES
Notation Signification
ET Fonction ET
OU Fonction OU
OUX Fonction OU exclusif
NON Fonction NON
6.3.OPERATEURS DE COMPARAISON
Notation Signification
= Égal à
≠ Différent de
< Inférieur à
> Supérieur à
≤ Inférieur ou égal à
≥ Supérieur ou égal à
Algorigramme Pseudo-code
Action 1
Action n ;
FIN
La partie exécutive
Action n
FIN
• L’entête
• La partie déclarative
• La partie exécutive (le corps)
7.1.L’ENTETE
Dans cette partie le concepteur donne un nom à l’algorithme, définit le traitement effectué et les données
auxquelles il se rapporte.
Ce sont des « objets » constant dans tout Ce sont des « objets » dont la valeur peut changer
l’algorithme. au cours de l’exécution de l’algorithme.
Déclaration : Déclaration :
Exemple : Exemple :
Les constantes et les variables sont définies dans la partie déclarative par deux caractéristiques essentielles, à
savoir :
Exemple :
y←2*x+3
Ne surtout pas oublier de commenter son programme afin dans faciliter la relecture
STRUCTURE LINEAIRE
Algorigramme Pseudo-code Arduino
FAIRE
Opération 1 ;
Opération 2 ;
La structure linéaire se
caractérise par une suite Opération 3 ; digitalWrite(13, HIGH) ;// ON
delay(1000); // wait for 1s
d’actions à exécuter | digitalWrite(13, LOW) ; // OFF
successivement dans delay(1000); // wait for 1s
l’ordre énoncé. |
Opération n ;
FIN FAIRE
TURE LINEAIRE
SELON cas
switch (var) {
Cas 1 : FAIRE Opération 1 ; case 1:
La Structure de choix //do something 1
permet, en fonction de Cas 2 : FAIRE Opération 2 ; break;
plusieurs conditions de | case 2:
//do something 2
type booléen, d’effectuer
| break;
des actions différentes default:
suivant les valeurs que Cas n : FAIRE Opération n ; // if nothing else matches, do
peut prendre une même the default
AUTREMENT // default is optional
variable.
FAIRE Opération n+1 ; break;
}
FIN SELON ;
mme
STRUCTURE ITERATIVE « TANT QUE…FAIRE »
Algorigramme Pseudo-code Arduino
Les structures
itératives répètent
l’exécution d’une
opération ou d’un
traitement. var = 0;
TANT QUE condition
while(var < 200){
Dans cette structure,
FAIRE Opération ; // do something repetitive 200 times
on commence par tester var++;
la condition ; si elle est FIN TANT QUE }
vraie, le traitement est
exécuté.
L’ACTION PEUT NE
JAMAIS ETRE EXECUTEE.
Dans cette structure, le POUR i DE i1 À i2 for (int i=0; i <= 255; i++){
traitement est exécuté analogWrite(PWMpin, i);
FAIRE Opération ; delay(10);
un nombre limité de fois,
défini au préalable. FIN POUR }
9.1.OPERATEURS ARITHMETIQUES
Notation Signification
= Affectation
+ Addition
- Soustraction
* Multiplication
/ Division
% Modulo (reste de la division entière)
9.2.OPERATEURS LOGIQUES
Notation Signification
&& Fonction ET
|| Fonction OU
! Fonction NON
9.3.OPERATEURS DE COMPARAISON
Notation Signification
== Égal à Ne pas confondre avec l’affectation
!= Différent de
< Inférieur à
> Supérieur à
<= Inférieur ou égal à
>= Supérieur ou égal à
La manière la plus évidente, mais aussi la moins habile, de programmer ce genre de choses, c'est bien entendu
de répéter le code correspondant autant de fois que nécessaire. Mais si par la suite, il y a une modification à
apporter au traitement, il faut l’effectuer partout où le traitement est.
Il faut donc opter pour une autre stratégie, qui consiste à utiliser un sous-algorithme (que l’on appelle aussi,
sous-programme, fonction, procédure ou routine).
C’est un sous-ensemble de l’algorithme principal. En fait, c'est un algorithme que nous représentons à part, un
bloc d'instructions que nous pouvons appeler quand nous le souhaitons, plusieurs fois même.
ALGORITHME ALGORITHME
DEBUT DEBUT
MANGER Sous algorithme Manger
Mettre_la_table INFORMATIQUE
Manger Programmer
Débarrasser_la_table Lire_un_super_tuto
INFORMATIQUE Sous algorithme Manger
Regardez les textes surlignés,
Programmer BRICOLAGE
ce sont les mêmes. Le but d'un
Lire_un_super_tuto Faire_un_tire_bottes
sous algorithme serait d'écrire
MANGER Couper_un_arbre_mort
ceci :
Mettre_la_table Sous algorithme Manger
Manger FIN
Débarrasser_la_table
BRICOLAGE SOUS ALGORITHME Manger
Faire_un_tire_bottes DEBUT
Couper_un_arbre_mort MANGER
MANGER Mettre_la_table
Mettre_la_table Manger
Manger Débarrasser_la_table
Débarrasser_la_table FIN
FIN
Les lignes « Sous algorithme Manger » sont les appels, on appelle le sous-algorithme « Manger »
Par exemple le sous algorithme « Manger » peut faire appel au sous algorithme « Mettre_La_Table »