Chapitre 1
Raisonnement par
Algorithme
Module : Automatiser les tâches d’administration
MH :120heures
Formatrice : MOUNIA EL ANBAL
ID-2021-2022
1
Problème
2
Itinéraire pour sortir du
labyrinthe
Donner les étapes à suivre
pour résoudre ce problème
3
Itinéraire pour sortir du labyrinthe
4
Comment peut-on
définir un algorithme ?
5
Définition d’un Algorithme
Un algorithme est une suite d’actions ou
d’instructions élémentaires qui doivent
être exécutées dans un ordre bien
déterminé pour résoudre un problème
(ou réaliser un travail).
6
Phase d’écriture d’un algorithme
•Le langage algorithmique est un langage proche du langage humain et
qui est défini par un ensemble de mots réservés et de syntaxes d’écriture
d’actions.
•La réalisation de programmes passe par l’écriture d’algorithmes.
•Le terme algorithme vient du nom du mathématicien arabe Al-
Khawarizmi (820 après J.C.).
•Un algorithme est une description complète et détaillée des actions à
effectuer et de leur séquencement pour arriver à un résultat donné.
7
8
9
10
11
PLAN
1 Introduction à la programmation
2 algorithme contextuel
3 Algorithme graphique
12
Introduction à la
programmation
13
Traitement de l’information
Pourquoi utilisez vous un ordinateur ?
Les ordinateurs sont utilisés pour
● le traitement d'informations ;
● le stockage d'informations.
14
Donnée
VS
Information
15
16
Une information - définition
Une information est un
renseignement qui porte sur un
objet (nom d'un étudiant, intitulé
d'un module, rayon d'un cercle…).
17
Donnée vs Information
Donnée=information
mais
Données aspect physique de l'information.
Information données avec un sens.
18
Traitement de l’information
La tâche principale d'un Saisie des données (entrées):
ordinateur est le traitement de clavier…
l'information.
Mémorisation des données:
Ce traitement se compose de 4 stockage
fonctions :
Opérations sur les données:
calcul, tri…
Restitution des résultats:
affichage, impression, fichier…
19
La notion de programme
Données Programme Résultat
Un programme traduit la marche à suivre pour expliquer le traitement à
effectuer sur les données. ... Un ordinateur ne manipule que du binaire : pour
écrire des programmes, on se sert d'une notation, appelée langage de
programmation. 20
La notion d’instruction
● Une instruction est un ordre qu'on demande à un
ordinateur d'exécuter.
● L’exécution d’une instruction porte souvent sur des
données.
21
Les systèmes d’exploitation d’un ordinateur
Les principales fonctions d'un système d'exploitation sont :
● la gestion et la conservation des informations par l'intermédiaire d'un
système de fichiers ;
● la gestion de l'ensemble des ressources (processeurs, mémoires,
registres, imprimantes, ...) permettant l'exécution d'un programme ;
● Fournir à l'utilisateur un langage de commande facile et efficace.
Unix Windows MacOS
22
Les différents types de Systèmes d’Exploitation
mono-tâche
multitâches
mono-utilisateur
multi-utilisateurs
23
Méthodologie de développement de programmes
24
Etapes de résolution d’un problème en programmation
1. Établir la liste des données en entrée(données à saisir), la liste des
données en sortie(résultats : données à afficher) et les liens entre elles
2. Construire un chemin de résolution qui permet d'obtenir les données en
sortie à partir des données en entrée. C'est ce qu'on appelle un schéma
de résolution.
3. Décrire le schéma de résolution en termes d'instructions élémentaires
acceptées par ordinateur. C'est l'algorithme.
4. Traduire l’algorithme en langage machine. C’est la programmation
25
Problème 2 : Donner un algorithme qui calcule la
Exemple moyenne de 2 notes ; le Périmètre d’un rectangle
26
Problème d’application
Donner un algorithme qui calcule :
1 - La moyenne de deux notes
2 - Le périmètre d’un rectangle
27
Algorithme
contextuel
28
Résoudre un problème de manière informatique
● Il y a un cheminement méthodique à respecter :
Algorithme Programme
Problème Résultat
(instructions)
29
30
Méthodologie
31
Langage de description
D’un Algorithme
1. Types de données
2. Affectation, Lecture et Ecriture des
données
32
33
34
35
36
Déclaration d’une donnée
37
Déclaration d’une variable
38
Déclaration d’une constante
39
Déclaration de données
Règle à retenir
Les variables se déclarent après les constantes.
Exemple:
Constantes
pi=3.14
taux=2
Variables
Rayon, surface : réels
40
Déclaration de données
Remarque
● Les constantes littérales de type caractères sont entre apostrophes.
● Les constantes littérales de type chaîne de caractères sont entre
guillemets.
41
➢ Langage de description d’algorithmes
2-Les types de données
"1" qui est un caractère,
1 qui est un entier,
1. qui est un réel
42
Exemple – type de données
43
Notion Expression
Une expression est une combinaison logique
– d'identificateurs,
– de valeurs ,
– d'opérateurs (+,*,/,-,%...) et
– d’autres symboles tels que (), .
44
% ou
45
4- L’affectation
Elle sert à affecter la valeur d'une expression à une variable. On la note par le
symbole
Pour affecter la valeur d'une expression à une variable
● on écrit :
Exemple
46
4- Instructions -Elémentaire
● Affectation
47
Exercice 1 - affectation
48
Exercice 2 - affectation
49
➢ Langage de description d’algorithmes
Résumé
● Une variable est un triplet composé
d'un type (déjà défini),
■
■ d'un nom (a priori toute chaîne alphanumérique),
■ d'une valeur.
○ On écrit : NomDeVariable: Type
■ Type est à prendre pour l'instant dans l'ensemble {entier,chaine,
caractere,booléen,réél}
● Les Expressions sont constituées à l'aide de variables déjà déclarées, de valeurs, de
parenthèses et d'opérateurs des types des variables concernées.
● L'affectation est l'instruction qui permet de stocker une valeur dans une variable.
○ On écrit NomDeVariable ← ExressionDuTypeDeLaVariable
● Toute variable doit être déclarée et recevoir une valeur initiale.
50
Structure d’un algorithme
51
4- Instructions -Elémentaire
● Instruction de Lecture
(Entrée/Input)
Permet de lire des valeurs à partir du
clavier et les affecte aux variables.
La syntaxe de cette instruction est :
Lire (var1, var2, …);
ou bien
lire (var1, var2, …);
52
4- Instructions -Elémentaire
● Instruction de Lecture (Entrée/Input)
Exemple 1 : Lire(rayon)
A l'exécution de cette instruction, quand on saisit la valeur 8 au clavier elle
sera la valeur de la variable rayon.
53
4- Instructions -Elémentaire
● Instruction de Lecture (Entrée/Input)
● Exemple 2 : lire les valeurs de plusieurs variables
Variables
nom : chaîne; Remarque :
age : réel;
… Les arguments de Lire
Lire(nom, age); #nom et age sont des variables. doit être des variables.
54
4- Instructions -Elémentaire
● Instruction d’Ecriture (Sortie/output) - Définition
L'instruction d'écriture (écriture à l'écran) permet d'afficher à l'écran les
valeurs des variables ou expressions après les avoir évaluées.
Sa syntaxe est la suivante:
Ecrire (expr1, expr2…)
ou bien s2
écrire(expr1, expr2…)
55
4- Instructions -Elémentaire
● Instruction d’Ecriture (Sortie/output) - Exemples:
Ecrire (rayon) #affiche la valeur de rayon :5
Ecrire (surface) #affiche à l'écran la valeur de surface :78.5
Ecrire (pi*rayon*rayon) #affiche aussi 78.5
Ecrire("surface") #affiche le mot surface.
56
Résumé : Lire() – Ecrire()
Exemple :
Ecrire (‘Bonsoir’)
Ecrire(moy)
Ecrire(‘la moyenne est ‘, moy)
57
Exercice 1
58
Exemple
● Un algorithme (structuré) de calcul de surface d’un cercle
Algorithme surfaceCercle
Constantes
PI=3.14
Variables
rayon, surface: réels
Début
Ecrire("Veuillez donner un réel ")
Lire(rayon)
surface ← rayon*rayon*PI
Ecrire("surface est ",surface)
Fin.
59
Interpréteur d’Algorithme : Exécuter Débugger
Sur play store chercher Algo et installer cette application :
Tabulation Affectation
60
TD par Bi/Trinôme
30
minutes
Ex1 : Ecrire un algorithme qui affiche le message suivant : ‘ Ceci est un Travail
Dirigé ’
Ex2 : Ecrire un algorithme où vous donnez deux nombres entiers et calcule
leur division entière et on l’affiche le résultat à l’écran
Ex3 : Ecrire un algorithme qui vous demande de saisir votre nom, prénom et
age puis les affiche à l’écran
Ex4 : Écrire un algorithme qui lit un réel est affiche son cube.
EX5 : Écrire un algorithme qui permet de lire :
• Le montant hors taxes d'un article : MontantHT (un réel)
• Le taux de TVA : TauxTVA (un réel)
• Le nombre d'articles : NbArticles (un entier)
Puis, le montant total toutes taxes comprises TotalTTC sachant que :
TotalTTC = Nbarticles * MontantHT * (1 + TauxTVA) 61
62
63
Les commentaires
64
Les commentaires
#
#
65
Les commentaires
● Pour accentuer la lisibilité de l’algorithme et faciliter sa
compréhension par les humains, on peut introduire les
commentaires, qui ne sont pas des instructions destinées à
la machine mais des indications données au lecteur de
l’algorithme.
● Les commentaires sont encadrés par les symboles # dans
notre cours et dans python et //dans l’application Algo)
66
Les Structures de contrôle
Une structure de contrôle sert à contrôler l'exécution d'une instruction ou d'un bloc
d'instructions. Deux types de structures de contrôles:
▪ Structure conditionnelle si l'exécution de l'instruction ou du bloc dépend d'une
condition
▪ Structure répétitive(répétitive ou boucle) si l'exécution de l'instruction ou du
bloc peut être répétée plusieurs fois (basée aussi sur une condition).
67
7-Structures de contrôle
Si x est positif alors
Calculer la racine carrée. Condition ou contrôle
Si a est différent de 0 alors
Calculer –b/a
Pour tout i de 1 jusqu’à 25 faire
Ecrire (‘’mot de passe wifi est 1233x21123x’’)
Instructions
68
>, == , < , >= , <= , != ou <>
69
70
Opérateurs logique
● Une variable de type booléen prend
comme valeur VRAI ou FAUX.
○ Les opérations usuelles sont ET, OU et NON
qui sont données dans les tables qui
suivent.
71
72
²
73
Structure
conditionnelle
74
7-Structures de contrôle- Structure Conditionnelle
Forme 1 : Exemple:
Chercher la surface d'un disque de rayon saisi au clavier. Il faut
s'assurer tout d'abord que le rayon soit positif.
…
Si (condition) alors
instr1;
instr2;
…
finsi;
…
75
7-Structures de contrôle - Structure Conditionnelle
Exemple:
Forme 2 : Chercher la surface d'un disque de rayon saisi au clavier.
… Il faut s'assurer tout d'abord que le rayon soit positif. Si le
Si (condition) alors rayon saisi est négatif, afficher le message "rayon non valide".
instr11;
instr12;
…
Sinon
instr21;
instr22;
….
Finsi;
…
76
77
78
Autres exemples
Si (Salaire<1500) alors
Ecrire (‘pauvre’)
Sinon si (Salaire <= 3000) alors
Ecrire (‘Moyen’)
Sinon
Ecrire(‘Riche’)
Finsi
Finsi
Si (age>=25) Et (Salaire=0) Alors
Ecrire (‘Vous avez droit au RSA’)
Finsi
79
TD2 30
minutes
EX1/Chercher le minimum (le plus petit) de deux entiers saisis au clavier.
EX2/ Ecrire un algorithme qui permet de lire la valeur de la température de l’eau et
d’afficher son état:
- GLACE si la température est inférieur à 0
- LIQUIDE si la température est strictement supérieure à 0 et strictement inférieure à
100
- VAPEUR si la température est supérieure à 100
EX3/ Ecrire une analyse et un algorithme qui permet de saisir un entier puis de vérifier s’il
est divisible par son chiffre d’unité. Exemple : 24 est divisible par 4; 127 n’est pas
divisible par 7
80
Solutions –
Exercices 1
81
Solution
Ex2
82
Solutions – Exercices 3
83
Correction EX4
84
Structures de contrôles
Structure conditionnelle
à choix multiple
85
Exemple
Un commerçant vous
demande de lui créer un
algorithme qui demande
à l’utilisateur de saisir le
nom d’un Aliment et
ensuite affiche le prix
86
87
Structure Conditionnelle
Forme 3 : choix multiple
Selon (var) Fonctionnement :
val1 : liste_instructions1;
val2 : liste_instructions2; • Si var=val1 alors on exécute liste_instructions1.
… Sinon, on passe comparer var avec val2. Si
sinon : Liste_instructions; var=val2 alors seront exécutées
Finselon liste_instructions2….etc
Ou • Si var est différent de toutes les valeurs val, on
exécute les instructions de sinon si elle est
Cas var vaut présente.
val1: instruction1
val2: instruction2 • Sinon on passe à l'instruction suivante de
… l'algorithme.
sinon: instructionX
Fin cas 88
89
7-Structures de contrôle- Structure Conditionnelle
● Exemple
Ecrire un algorithme
qui lit un opérateur op
(+,-,/,*) et deux entiers
a et b puis affiche le
nom et le résultat de
l'opération a op b.
Entrées : op, a, b;
Sorties : la valeur de "a
op b" et le nom de
l'opération.
90
Exemple
91
Les boucles
92
Situation
● Donner au moins deux versions d’un programme qui permet d’afficher le
mot OFPPT 10 fois. #Version 1
Ecrire(‘OFPPT’)
Ecrire(‘OFPPT’)
Ecrire(‘OFPPT’)
#Version 2 Ecrire(‘OFPPT’)
Pour i←1 à 10 faire Ecrire(‘OFPPT’)
Ecrire(‘OFPPT’) Ecrire(‘OFPPT’)
Fin Pour Ecrire(‘OFPPT’)
Ecrire(‘OFPPT’)
Ecrire(‘OFPPT’)
Ecrire(‘OFPPT’)
93
La Boucle pour
94
Structures répétitives
● La structure répétitive (Boucle) permet d’exécuter
plusieurs fois une séquence d’instructions.
● Dans une boucle, le nombre de répétitions peut être
connu, fixé à l’avance, comme il peut dépendre d’une
condition permettant l’arrêt et la sortie de la boucle.
● Le passage dans une boucle s’appelle itération.
95
96
7-Structures de contrôle- Structures répétitives
● Exemple :
Calculer la somme s=1+2+3..+n. n à lire au clavier
97
Boucle Pour Nombre de
répétitions
Connu
Nombre de
Boucle Tant que … faire répétitions
Dépend d’un
condition
Boucle Répéter… jusqu’à
98
7-Structures de contrôle- Structures répétitives
● Fonctionnement
● On affecte à var_compteur la valeur de
début, puis on exécute les instructions.
● Ensuite, on incrémente var_compteur et on
vérifie si sa valeur est <= de celle de fin.
● Si var_compteur<=fin, on exécute les
instructions et on passe)
● On quitte cette boucle lorsque var_compteur
>fin.
var_compteur, début et fin doivent avoir le même type ou des types compatibles.
99
7-Structures de contrôle- Structures répétitives
● La boucle : Tantque(condition) ● Fonctionnement
● Si la condition est vraie, on exécute
Tantque (condition) faire les instructions et on passe vérifier la
condition de nouveau.
Instr1;
Instr2; ● Si elle est toujours vraie, on exécute
les instructions et ainsi de suite. Ce
… processus se répète jusqu'à ce que la
Fin tantque condition soit vraie.
● Si la condition est fausse à l'entrée de
la boucle, le bloc ne sera jamais
En général, les instructions doivent contenir une exécuté.
instruction qui assure la sortie de la boucle (rend
la condition fausse après un certain nombre fini de
répétitions). 100
7-Structures de contrôle- Structures répétitives
La structure :
répéter … jusqu’à(condition)
répéter
Instr1;
Instr2;
…
Jusqu’à (condition)
En général, les instrs doivent contenir une instruction qui assure la sortie de la boucle: rendre la
condition fausse après un certain nombre fini d'répétitions ou autre .
→ Les instructions contrôlées par cette structure sont exécutées au moins une fois 101
7-Structures de contrôle- Structures répétitives
● La boucle : Tantque(condition)
Exemples :
Écrire un algorithme qui calcule
la somme 1+2+3+…+n. n à lire
au clavier.
102
7-Structures de contrôle- Structures répétitives
Exemple
répéter … jusqu’à(condition)
Répéter
s← s+i
i← i+1
Jusqu’à (i>n)
103
Exemples
Les Répétitions
ou Boucles
104
TD 3 – Si…sinon si … sinon – boucle Pour
1 - Demander à l’utilisateur deux nombres, les mémoriser dans deux variables, multiplier leurs valeurs en
affectant le résultat à une troisième variable, puis l’afficher.
2 - Même chose que la question 1 avec la division à la place de la multiplication. Vérifier que le 2ème nombre
est différent de zéro, sinon afficher "Erreur : division par 0 !".
3 - Ecrire un algorithme qui lit la moyenne d'un étudiant et affiche la mention associée.
4 - Ecrire un algorithme qui lit trois notes d'un étudiant, calcule sa moyenne et l'affiche avec la mention
associée.
5 - Ecrire un algorithme qui lit un entier et affiche s'il est pair ou impair.
6 - Ecrire un algorithme qui lit trois nombres et affiche s'ils sont ordonnés ou non.
7- Ecrire un algorithme qui demande un nombre de départ, et qui affiche ensuite les dix nombres suivants en
utilisant la boucle [Link] ex : si l’utilisateur entre le nombre 40, le programme affichera 41 jusqu’à 50 105
TD3 – Boucles tantque et répéter .. Jusqu’à
1- Écrire un algorithme qui saisit un nombre pair et qui détermine combien de fois ce nombre est divisible par 2.
• Exemple : le nombre 8 est divisible 3 fois par 2 (ne pas contrôler la parité du nombre).
2- Traiter l‘activité précédentes en effectuant le contrôle sur la parité du nombre et en utilisant la boucle Répéter
jusqu'à
3-Ali s’installe dans un appartement un 1er janvier. Le loyer mensuel s’élève à 650dh et le propriétaire prévoit
d’augmenter le loyer de 1,8% chaque année. Ali souhaite quitter l’appartement juste avant que le loyer ne dépasse
800dh.
3.1) Compléter l’algorithme ci-dessous afin qu’il affiche le nombre d’années où Ali restera dans cet appartement.
Algorithme :
L prend la valeur 650
N prend la valeur 0
----------------
Tant que L<=800 faire
----------------
----------------
----------------
Fin Tant que
Afficher N
3.2) Que faut-il rajouter dans cet algorithme pour qu’il affiche aussi la somme totale qu’Ali aura versé au propriétaire
de son appartement depuis son installation ? 106
TD 3 : Boucle
Écrivez un programme qui fait la somme d’une suite de 6
nombres entrés par l’utilisateur.
o Entrée : 6 nombres
o Sortie : Affichage de la somme
107
Algorithme Div
variable
N,x : entier
début
écrire (‘Saissez un nombre pair :’)
lire (N)
x <- 0
si N % 2 = 0 alors
tantque N<>1 faire
N <- Ndiv2
x <- x+1
fintanque
écrire (‘Le nombre a été divisé’, x ,’fois par2’)
finsi
fin
108
TD 1 (correction)
Ali s’installe dans un appartement un 1er janvier. Le loyer mensuel s’élève à 650dh et le propriétaire prévoit
d’augmenter le loyer de 1,8% chaque année. Ali souhaite quitter l’appartement juste avant que le loyer ne dépasse
800dh.
1) Compléter l’algorithme ci-dessous afin qu’il affiche le nombre d’années où Ali restera dans cet appartement.
Algorithme :
L prend la valeur 650
N prend la valeur 0
S<-0
Tant que L<=800 faire
S<- S+12*L
L <- L + (L*1,8)/100
N <-N+1
Fin Tant que
Afficher N
2) Que faut-il rajouter dans cet algorithme pour qu’il affiche aussi la somme totale qu’Ali aura versé au propriétaire de
son appartement depuis son installation ? 109
Solution : question 2
Fin; 110
CORRECTION
Algorithme Factoriel L’exécution donne :
Variables
f,i,n : entiers
Début
lire (n)
f← 1
Pour i ← 1 à n pas 1 faire
f←f*i
écrireln ( ‘pour i=‘, i , ‘f =‘, f)
Finpour
écrireln (‘le factoriel de’, n , ‘est ‘ , f)
fin
111
Correction
Ecrire un algorithme qui
permet de calculer le
résultat de la division d’un
entier a par un entier b par
soustractions successives.
112
Un Algorithme peut Chaque instruction et chaque
s’écrire aussi en structure de contrôle possède
une représentation graphique.
représentation
Graphique
Organigramme
113
Algorithme par Organigramme
114
Algorithme par Organigramme
● Exemple 1
115
Organigramme
116
Organigramme
● Exemple 3
117
Exercice
représenter l’algorithme
de recherche de Minimum Début
entre 2 entiers
10
min Ecrire (‘ Donner a et b’)
Lire (a,b)
Faux Vrai
a<b
Ecrire (b, ‘ est le minimum’) Ecrire (a, ‘ est le minimum’)
Fin
118
Organigramme – Boucle
119
Organigramme – Boucle Pour
(
120
Exercices:
1- Représenter l’algorithme qui demande à
l’utilisateur de saisir un nombre et afficher sa table
de multiplication.
2- Représenter l’algorithme qui lit la moyenne d'un
étudiant et affiche la mention associée.
121
Début
Ecrire (‘ quelle est votre moyenne?’)
Lire (N)
Faux Vrai
N<10
Faux Vrai Ecrire (‘non admis’)
N<12
Faux Vrai
N<14 Ecrire (‘Passable’)
Faux Vrai
N<16 Ecrire (‘Assez Bien’)
Faux
N<=20
Vrai Ecrire (‘Bien’)
Ecrire (‘note non valide’) Ecrire (‘Excellent’)
122
Fin
Début
Ecrire (‘ quelle table de multiplication voulez-vous ?’)
Lire (n)
i←1
Faux Vrai
i<=10
M←i*n
Ecrire ( i , ‘*’ , n , ’=‘ , M)
Fin
i←i+1
123