M102 –Acquérir les bases de
l’algorithmique ID-2023
Formateur [Link]
concepts
Un algorithme est une suite finie et non ambiguë d'instructions et d’opérations permettant de
résoudre une classe de problèmes.
Un algorithme est une méthode générale pour résoudre un type de problèmes.
Exercice: Calcul d’une remise en fonction du brut d’une facture,
• 10% pour brut sup à 50000DH
Les variables et les constantes
• Une variable sert à stocker la valeur d’une donnée dans un langage de programmation, elle désigne un
emplacement mémoire dont le contenu peut changer au cours d’un programme (d’où le nom de variable).
• La variable doit être déclarée avant d’être utilisée, elle doit être caractérisée par un nom (Identificateur) qui
indique l’ensemble des valeurs que peut prendre la variable (entier, réel, booléen, caractère, chaîne de
caractères, …).
• Types des variables Lorsqu’on déclare une variable; il faut préciser son type.
• Le type INTEGER (entiers) : 0, 405, -10,…
• Le type REAL (réels) : 0.5, -3.67, 1.5e+5,…
• Le type LOGICAL (logique, booleen) : True, false, V / F
• Le type CHARACTER (caractères) : ′a′, ′B′, ′*′, ′9′, ′@′, ′ ′,…
• Une CONSTANTE, comme une variable, peut représenter un chiffre, un nombre, un caractère, une chaîne de
caractères, un booléen. Toutefois, , la valeur d’une constante ne varie pas au cours de l’exécution de
l’algorithme.
• Opérandes et operateurs :
• Un OPERANDE est une donnée utilisée par un opérateur.
• Exemple : Dans «8+3 », «+» désigne l’opérateur ; «8 » et «3 » sont les opérandes.
Les variables, types et les constantes
• Types d’operateurs
• Il existe plusieurs types d’opérateurs :
• Les opérateurs arithmétiques qui permettent d’effectuer des opérations arithmétiques entre opérandes
numériques :
• - Opérateurs élémentaires : «+ », «- », «x », « ÷ »
• - Changement de signe : «- »
• - Elévation à la puissance : «^ »
• - Reste d’une division entière : « mod»
• Les opérateurs de comparaison (« = », « ≠ », « › », « < », « ≥ » et « ≤ ») qui permettent de comparer deux
opérandes et produisent une valeur booléenne, en s’appuyant sur des relations d’ordre :
• Les opérateurs logiques qui combinent des opérandes booléennes pour former des expressions logiques plus
complexes
• - Opérateur unaire : «non » (négation)
• - Opérateurs binaires : «et » (conjonction), «ou » (disjonction),
• L’opérateur d’affectation, représenté par le symbole «<=, =», qui confère une valeur à une variable ou à une
constante. Exemple : X 12,2
• Opérateurs sur les entiers et les réels : addition, soustraction, multiplication, division, puissance, comparaisons,
modulo (reste d’une division entière)
• Opérateurs sur les booléens : comparaisons, négation, conjonction, disjonction
• Opérateurs sur les caractères : comparaisons
• Opérateurs sur les chaînes de caractères : comparaisons, concaténation
La structure d'un algorithme
a. Affecter
L'affectation consiste à doter une variable d'une valeur appartenant à son domaine, c'est-à-dire à lui donner une première
valeur ou à changer sa valeur courante.
Exemple : X 2
b. Écrire (ou afficher)
L'instruction Écrire permet d'afficher des valeurs sur un périphérique de sortie, en général l'écran.
c. Lire (ou saisir)
L'instruction Lire permet à l'utilisateur d'entrer, par un périphérique d'entrée (en général le clavier), des valeurs pour qu'elles
soient utilisées par l'algorithme. La valeur saisie au clavier sera affectée à une variable. Lire est donc une instruction
d'affectation.
Exemple :
Lire ("Entrez le chiffre d'affaires" ; CA)
Écrire ("Le chiffre d'affaires est de :" ; CA)
La structure d'un algorithme
La structure d'un algorithme
Un algorithme a à peu près toujours la même
organisation générale. Trois grandes parties
se distinguent.
Nom de l'algorithme
Partie déclaration : déclaration des
variables et des constantes
Partie traitement
DEBUT
Actions et conditions
FIN
• Priorité des operateurs
• A chaque opérateur est associée une priorité. Lors de l’évaluation d’une expression, la priorité de
chaque opérateur permet de définir l’ordre d’exécution des différentes
• Ordre de priorité décroissante des opérateurs arithmétiques et de concaténation :
• - Les parenthèses
• - «^ » (élévation à la puissance)
• - « - » (changement de signe)
• - « x», et «÷»
• - «mod »
• - «+ » et «- »
• Ordre de priorité décroissante des opérateurs logiques :
• - «non », « et», «ou ».
• Priorité des operateurs
• Exemples :
• 3**2+4 = 9+4=………………………
• 3** (2+4)= ……………..
• 17 MOD 10 DIV 3= …………..
• 12*3+5 et (12*3) +5 valent ……….
• 12*(3+5) vaut 12*8 soit 96 …………………
• 5. +4.*9. **2 =5. + (4.*(9. **2)) = …………………..
• 7 + 9 / 3 – 10 * 2= ……………………………….
• (5 * 6 + (8 + 2*7 – 4 / 2))= ……………………………
• (5+2 > 8-6) AND (7 < 9) = ……………………………
• Priorité des operateurs
• Exemples : Rép
• 3**2+4 = 9+4=13
• 3** (2+4)=3**6
• 17 MOD 10 DIV 3= (17MOD10) DIV3=7DIV3=2
• 12*3+5 et (12*3) +5 valent 41.
• 12*(3+5) vaut 12*8 soit 96 F
• 5. +4.*9. **2 =5. + (4.*(9. **2)) = 329
• 7 + 9 / 3 – 10 * 2= 7 + 3 – 10 * 2= 7 + 3 – 20= 10 – 20=-10
• (5 * 6 + (8 + 2*7 – 4 / 2))= (5 * 6 + (8+14 – 4 / 2))= (5 * 6 + (8+14 – 2))= (5 * 6 + 20)= 30 + 20=50
• (5+2 > 8-6) AND (7 < 9) = (7 > 2) AND (7 < 9) = TRUE AND TRUE= TRUE
• L'instruction d'affectation
• L’affectation est l’opération qui consiste à stocker une valeur dans une variable. Cette opération
se fait à l’aide de la syntaxe suivante :
• Nom- variable Valeur
• Exemple : x 6
Les notions de lecture et d’écriture
• L’ENTREE ou la lecture de données correspond à l’opération qui permet de Solution :
saisir des valeurs pour qu’elles soient utilisées par le programme. Cette Algorithme :
instruction est notée « lire identificateur ». Algorithme Calcul_du_Carre
• La SORTIE ou l’écriture des données permet l’affichage des valeurs des Variables A, B : entier
variables après traitement. Cette instruction est notée « afficher Début
identificateur ». Écrire ("entrer la valeur de A ")
• Exemple: Lire(A)
• Ecrire et exécuter un algorithme qui demande un entier à l’utilisateur, puis B ← A*A
affiche son carré. Écrire ("le carre de ", A, "est :", B)
Fin
• L'instruction d'affectation
• Exercice 2:
• Considérons les algorithmes ci-dessous. Quel sera le contenu des variables a, b et éventuellement c après
leur exécution ?
Les structures itératives Pour
Une boucle: permet de parcourir une partie d'un programme un certain nombre de fois.
Une itération: est la répétition d'un même traitement plusieurs fois. Un indice de boucle varie alors de la
valeur minimum (initiale) jusqu'à la valeur maximum (finale).
La boucle « Pour »
Cette structure est une BOUCLE ITERATIVE ; elle consiste à répéter un certain traitement un nombre de fois fixé
à l’avance. Cette structure utilise une variable (indice) de contrôle d’itérations caractérisée par :
• - sa valeur initiale,
• - sa valeur finale,
• - son pas de variation.
Exemple : Ecrire un algorithme qui demande un nombre de départ, et qui ensuite affiche les dix nombres
suivants. Par exemple, si l'utilisateur entre le nombre 17, le programme affichera les nombres de 18 à 27.
Les structures itératives Tant Que
• La boucle TANT QUE Une action ou un groupe d’actions est exécuté répétitivement tout le temps où une
condition est vraie.
• Syntaxe Tant Que (Condition) Faire Instructions Fin Tant que Remarque : la vérification de la condition
s’effectue avant les actions. Celles-ci peuvent donc ne jamais être exécutées.
Exemple : On veut écrire un algorithme qui calcul la somme des Algorithme somme
entiers positifs inférieurs ou égaux à N. Variables I, N, S : entier
Début
Écrire ("entrer la valeur de N ")
Lire (N)
I=0
S=0
Tant Que (I ≤ N) alors
S=S+I
I=I+1
Fin Tant Que
Ecrire (‘la Somme est’, S)
Fin
Les structures itératives Repeter … jusqu’à…
La boucle REPETER ... JUSQUA ...
Une action ou un groupe d’actions est exécuté répétitivement jusqu'à ce
qu’une condition soit vérifiée.
Algorithme :
Syntaxe
Algorithme plus_grand
Répéter
Début
Instructions
Variables I, N, PG : entier
……..
I=1
Jusqu'à (Condition)
Écrire ("entrer la valeur de N ")
Remarque : la vérification de la condition s’effectue après les actions. Celles-
Lire (N)
ci sont donc exécutées au moins une fois.
PG = N
Exemple :
Répéter
Ecrire un algorithme qui demande successivement 10 nombres à l’utilisateur,
Lire (N)
et qui retourne ensuite le plus grand parmi ces 10 nombres :
Si (PG ≤ N) alors
Entrez le nombre numéro 1 : 7
PG = N
Entrez le nombre numéro 2 : 24
Fin Si
…….etc.
I=I+1
Entrez le nombre numéro 10 : 13
Jusqu'à (I = 10)
Le plus grand de ces nombres est : 24
Ecrire (‘La valeur la plus grand est’, PG)
Fin
Traitement des données
Les structures itératives
•Le traitement séquentiel : permet de donner des instructions (ordres) à executer dans
l’ordre d’écriture (le premier ordre écrit sera le premier à executer, puis le second, etc)
•Le traitement conditionnel : permet de choisir les ordres à exécuter
selon une ou plusieurs conditions à vérifier. Donc, les ordres écrits ne sont
pas tous exécutés obligatoirement, mais , selon la condition à vérifier, une
partie des ordres sera exécuter alors que les autres seront omis.
•Le traitement itératif: une partie des ordre sera
exécutée plusieurs fois (répétition des meme ordres)
•Le traitement récursif: on fait appel à une partie de code plusieurs fois, mais, à
chaque appel, on a un petit changement à faire (pour pouvoir stopper à un moment
donné).
Exercice 5: (A faire)
A- Quel est l’ordre de priorité des différents opérateurs de l’expression suivante :
a + b * c / d / e ; a * b * c * d + e ; ((3 * a) – x ^ 2) – (((c – d) / (a / b)) / d)
B- Que valent les réels suivants?
R1=12./3./2.
R2=12./3.*2.
R3=2/3
R4=R1+24.*3./(-2.)*3+2.*(5/2+1)
R5=12/ (3/2)
C- Sachant que a = 4, b = 5, c = -1 et d = 0, évaluer les expressions logiques suivantes :
1- (a < b) ET (c >= d)
2- NON (a < b) OU (c # b)
3- NON ((a # b ^ 2) OU (a*c < d))
concepts
Exercice UML : Etude de Cas
Distributeur de Billets Diagramme
d’Activités
Enoncé :
Décrire le fonctionnement d'un distributeur
de billets de banque. Le client introduit sa
carte dont la validité est immédiatement
vérifiée. Il est ensuite invité à saisir le code
de la carte. Après trois tentatives
infructueuses, la carte est avalée. Sinon le
client peut indiquer le montant qu'il désire
retirer, le solde de son compte bancaire est
alors consulté pour s'assurer que le retrait
est possible. En cas de solde insuffisant, le
client en est informé et peut alors saisir un
montant inférieur. Si le solde du compte est
suffisant, le distributeur restitue la carte et
délivre alors les billets accompagnés d'un
reçu.
Travail à Faire : (Modélisation)
•Etablir le diagramme d’activités