Académique Documents
Professionnel Documents
Culture Documents
♣ lorsque l’on ouvre un livre de cuisine et que l’on suit pas à pas les
étapes indiquées dans la recette.
Comment décrire l’algorithme qui s’il est exécuté conduit à faire un certain nombre
de tasses de café à l’aide d’une cafetière.
Les étapes de cet algorithme ne sont probablement pas assez détaillées pour
pouvoir être exécutées par quelqu’un qui n’a jamais fait de café et qui ne saura donc
pas quelle quantité d’eau et de café il faut mettre dans la cafetière. Chaque étape
doit donc être affinée en une suite d'étapes plus élémentaires, chacune étant
spécifiée d'une manière plus détaillée que dans la première version. Ainsi l'étape
" Un algorithme est une suite finie de règles à appliquer dans un ordre
déterminé à un nombre fini de données pour arriver, en un nombre fini
d'étapes, à un certain résultat, et cela indépendamment des données. "
être clair
être structuré
LA NOTION DE VARIABLE
Pour pouvoir être traitée par un algorithme, les valeurs des données on besoin d’être
stockées dans la mémoire centrale de l ‘ordinateur. Certains résultats intermédiaires
ou définitifs doivent également être mémorisés.
Dès que l’on a besoin de stocker une information dans un algorithme, on utilise une
variable.
Pour avoir accès au contenu de la boîte, il suffit de la désigner par son étiquette.
Les variables de type numérique sont destinées à recevoir des nombres. Parmi les
variables numériques, on distinguera encore les variables de type byte, entier simple,
entier long, réel simple, réel double.
Un autre type de variable est le type booléen . Les variables de ce type ne peuvent
prendre que la valeur vrai ou faux.
La première chose à faire, lorsque l’on souhaite utiliser une variable, c’est de créer
une boîte et de lui coller une étiquette.
Ceci est fait tout au début du programme, avant les instructions qui vont utiliser ces
variables.
Lors de la déclaration d’une variable, on précisera son nom et ce que l’on veut mettre
dedans car de cela dépendra la taille de la boîte à créer. Les problèmes liés à la
déclaration des variables seront envisagés de façon spécifique dans les différents
langages de programmation .
LE MECANISME D ' AFFECTATION
=
attribuer une valeur à une variable
var 24
attribue la valeur 24 à la variable var.
var var1
attribue à la variable var la même valeur que celle contenue dans la variable var1.
var var + 1
additionne 1 au contenu de la variable var
cette affectation s’appelle une incrémentation.
var var - 1
soustrait 1 au contenu de la variable var
cette affectation s’appelle une décrémentation.
Après l’exécution des instructions d’affectation suivantes :
B 12
C 4
A B
B C
C C+1
A 12 B 4 C 5
D’une manière générale, dans une instruction d’affectation, on trouve :
Les opérandes sont soit des constantes , des variables ou des fonctions.
Parmi les opérateurs on trouve des opérateurs arithmétiques qui portent
évidemment sur des opérandes numériques.
Il s’agit de :
+ addition
- soustraction
* multiplication
/ division
** exponentiation
Les règles d’évaluation sont les suivantes :
Exercice :
Evaluer les expressions suivantes. Utiliser des variables pour stocker les résultats
intermédiaires.
E A+B*C
E A**B*C+D
E (A-B)**C*D
E (A+B/(H+L))**B-(C*F*D)
LE MECANISME D ' ENTREE/SORTIE
Considérons l‘instruction qui permet de calculer le carré d’un nombre dont la valeur
est 12 :
A 12**2
Cette instruction donne le carré de 12, mais si l’on veut le carré d’un autre nombre, il
faut réécrire le programme.
D’autre part, le résultat est certainement calculé par la machine, mais « elle le garde
pour elle » dans une variable appelée A.
LA SEQUENCE
Tout algorithme débute par une instruction qui signifie le point d’entrée dans cet
algorithme, nous la noterons : DEBUT
Tout algorithme se termine par une instruction qui signifie la fin de l’algorithme, nous
la noterons : FIN
Entre ces deux instructions, on va décrire l’ordre dans lequel les instructions
nécessaires pour transformer les données en résultats doivent être exécutées
début
lire (nb1,nb2,nb3,nb4,nb5)
moy (nb1+nb2+nb3+nb4+nb5)/5
ecrire (moy,scar,var)
fin
L'ALTERNATIVE
prendre à droite
Si l’on n’est pas certain du sens de circulation dans les différents rues, les
explications pourraient devenir :
Dans le deuxième algorithme, il y deux façons alternatives d’agir selon que la rue à
droite au premier carrefour est en sens interdit ou non.
Pour que le touriste puisse suivre le bon chemin, il faut qu’il sache analyser la
condition qui est : la rue est-elle a sens unique ?
La rue est-elle a sens unique ? est une condition, elle est soit vraie, soit fausse.
On pourrait écrire, la marche à suivre comme suit :
vrai
condition
faux
instruction1 instruction2
Qu’est-ce qu’une condition ?
Condition simple.
une variable
une constante
une fonction
= égalité
< strictement inférieur
> strictement supérieur
<= inférieur ou égal
>= supérieur ou égal
<> différent
Une expression de comparaison est un affirmation qui a un moment donné sera soit
vraie soit fausse.
Exemple :
A>10 sera en fonction de la valeur contenue dans la variable A, soit vraie soit fausse.
AND
OR
NOT
C1 C2 C1 AND C2
V V V
V F F
F V F
F F F
La proposition C1 OR C2
est vraie quand l’une au moins des deux conditions C1 ou C2 est vraie sinon la
proposition est fausse.
C1 C2 C1 OR C2
V V V
V F V
F V V
F F F
La proposition not C1 est vraie quand C1 est fausse, elle est vraie quand C1 est
vraie.
Les règles d’évaluation sont les suivantes :
1. NOT
2. AND
3. OR
- Toute expression entre parenthèse est évaluée avant son utilisation dans
l’expression
Exemple :
C1 OR C2 OR C3
NOT C1 OR C2 AND C3
1 2
3
Négation d’une condition simple
C1 C2 C1 ANDLR C2
V V V
V F F
F ? F
C1 C2 C1 ORLR C2
F V V
F F F
V ? V
début
lire (nb)
nb>= V
0
ecrire (valabs)
fin
Solutions equivalentes :
début
lire (nb)
F
nb< 0
ecrire (valabs)
fin
début
lire (nb)
nb>= F
0
ecrire (valabs)
fin
début
lire (nb)
V
nb<0
ecrire (valabs)
fin
Exemple : écrire l’algorithme qui calcule et imprime la solution d’une équation du
premier degré dont les coefficients sont quelconques
début
lire (a,b)
V
a=0
and b
<> 0
écrire( « impossible »)
V
a=0
and b =
0
écrire( « indéterminé »)
a <> 0
F
sol -b/a
écrire (sol)
fin
Autres solutions :
début
lire (a,b)
F
a=0
and b
<> 0
F
V a=0
and b =
écrire( « impossible ») 0
V
F
sol -b/a
écrire (sol)
fin
début
lire (a,b)
F
a=0
and b
<> 0
F
V a=0
and b =
écrire( « impossible ») 0
écrire( « indéterminé »)
sol -b/a
écrire (sol)
fin
début
lire (a,b)
V
a <> 0
or b = 0
V
F a <> 0
or b <>
écrire( « impossible ») 0
écrire( « indéterminé »)
sol -b/a
écrire (sol)
fin
début
lire (a,b)
a=0
b=0
F
sol -b/a écrire(« indéterminé »)
écrire (sol)
écrire(« impossible »)
fin
Autres exemples :
début
lire (nb1,nb2)
nb1>nb V
2
ecrire (max)
fin
Algorithme de recherche du minimum parmi 2 nombres
début
lire (nb1,nb2)
nb1<nb V
2
ecrire (min)
fin
Algorithme de recherche du maximum et du minimum parmi 2 nombres
début
lire (nb1,nb2)
nb1>nb V
2
ecrire (max,min)
fin
Algorithme de recherche du maximum parmi 2 nombres. Si les 2 nombres sont
égaux, on imprime le message, il n'y a pas de maximum.
début
lire (nb1,nb2)
V
nb1<>nb2
V
F nb1>nb
2
écrire( « pas de maximum »)
F
fin
Algorithme de recherche du maximum parmi 3 nombres
début
lire (nb1,nb2,nb3)
nb1>nb V
2
F V
nb2>nb V nb1>nb
3 3
F F
ecrire (max)
fin
début
lire (nb1,nb2,nb3)
nb1>nb V
2
nb3>m
ax
max nb3
ecrire (max)
fin
début
lire (nb1,nb2,nb3)
max nb1
nb2>m V
ax
max nb2
nb3>m V
ax
F
max nb3
ecrire (max)
fin
Supposons que les 3 nombres introduits sont des entiers strictement positifs
début
lire (nb1,nb2,nb3)
max 0
nb1>m V
ax
max nb1
nb2>m V
ax
max nb2
nb3>m V
ax
F
max nb3
ecrire (max)
fin
PSEUDO-CODE
l'enchainement séquentiel et la structure
alternative
L’enchaînement séquentiel :
nom du pseudo-code
action 1
action 2
* commentaire
action 3
L’enchaînement conditionnel :
IF condition
actions à réaliser si la condition est vraie
OU
IF condition
actions à réaliser si la condition est vrai
ELSE
action à réaliser si la condition n'est pas vrai
Exemples:
else
if nb2>nb3
max nb2
else
max nb3
ecrire(max)
Recherche du maximum parmi 3 nombres
lire (nb1,nb2,nb3)
max 0
if nb1>max
max nb1
if nb2>max
max nb2
if nb3>max
max nb3
ecrire(max)
LA REPETITIVE
Dans l’algorithme décrivant les actions à exécuter pour faire du café, l’étape 4 de
l’action qui consiste à mettre des cuillères de café dans le filtre s’exprime de la
manière suivante :
Cela signifie que les actions 1 et 2 seront exécutées jusqu’à ce que la condition
nombre de cuillères dans le filtre = nombre de tasses souhaitées
soit vraie.
On aurait pu écrire :
Cela signifie que les actions 1 et 2 seront exécutées tant que la condition
nombre de cuillères dans le filtre <> nombre de tasses souhaitées
soit vraie.
La forme générale de la structure répétitive est :
v
condition
instructions itérées
f
condition
instructions itérées
début
x 0
x x+1
écrire (x*2)
x x+1
écrire (x*2)
x x+1
écrire (x*2)
x x+1
écrire (x*2)
x x+1
écrire (x*2)
fin
x x+1
écrire (x*2)
début
x 0
x<5
v
f
x x+1
écrire (x*2)
fin
ou
début
x 0
x=5
f
x x+1
écrire (x*2)
fin
Si on avait écrit :
début
x 1
écrire (x*2)
x x+1
écrire (x*2)
x x+1
écrire (x*2)
x x+1
écrire (x*2)
x x+1
écrire (x*2)
fin
écrire (x*2)
x x+1
début
x 1
x <=5
v
f
écrire (x*2)
x x+1
fin
ou
début
x 1
x>5
f
écrire (x*2)
x x+1
fin
lire (nb1,nb2,nb3)
max 0
nb1>m V
ax
max nb1
nb2>m V
ax
max nb2
nb3>m V
ax
F
max nb3
ecrire (max)
fin
début
max 0
lire (nb)
V
nb>ma
x
F
max nb
lire (nb)
V
nb>ma
x
F
max nb
lire (nb)
V
nb>ma
x
F
max nb
ecrire (max)
fin
La séquence d’instructions à répéter est :
lire (nb)
max >
nb
max nb
Cette séquence doit être répétée, il faut donc ajouter une condition de sortie ou de
séjour.
max 0
v
conditio
n
lire (nb)
max >
nb
max nb
Comment trouver la condition ?
On doit répéter la séquence trois fois. Il faut donc compter le nombre de fois que
l’on va boucler.
On ajoute une variable dans laquelle on ajoute 1 chaque fois que l’on passe dans la
boucle.
cpt 0
max 0
cpt < 3
lire (nombre)
max >
nombre
max nombre
cpt cpt + 1
Rechercher le maximum parmi n nombres peut donc s’écrire :
début
lire (n)
cpt 0
max 0
cpt < n
lire (nombre)
max >
nombre
max nombre
cpt cpt + 1
fin
De manière générale, répéter n fois s’écrit :
lire (n)
cpt 0
cpt < n
instructions a
itérer
cpt cpt + 1
Ou encore :
lire (n)
cpt 1
v
cpt < =
n
instructions a
itérer
cpt cpt + 1
Ou encore :
lire (n)
cpt n
cpt > 0
f
instructions a
itérer
cpt cpt -1
Application :
lire (n)
cpt 0
tot 0
min 101
max 0
cpt < n
lire (cote)
f
v
max >
cote
moy tot/cpt
f
max cote
v
min
<cote
min cote
cpt cpt + 1
écrire(moy,max,min)
fin
début
lire (nombre)
tot cote
cpt 1
min cote
max cote
v
cpt<n
f lire (cote)
v
max >
cote
moy tot/cpt
f
max cote
v
min
<cote
min cote
cpt cpt + 1
écrire (moy,max,min)
fin
début
cpt 0
tot 0
min 101
max 0
lire (cote)
f
cote = -1
v v
max >
cote
moy tot/cpt
f
max cote
v
min
<cote
min cote
cpt cpt + 1
lire (cote)
écrire (moy,max,min)
fin
début
cpt 0
tot 0
lire (cote)
min cote
max cote
f
cote = -1
v v
max >
cote
moy tot/cpt
f
max cote
v
min
<cote
min cote
cpt cpt + 1
lire (cote)
écrire (moy,max,min)
fin
PSEUDO-CODE
La structure répétitive
DO WHILE condition
action(s) à répéter
DO UNTIL condition
action(s) à répéter
On peut mettre la condition de répétition en dessous mais pour cela, il faut être
certain que les actions peuvent être effectuées au moins une fois.:
DO
action(s) à répéter
WHILE condition
DO
action(s) à répéter
UNTIL condition
Exemples:
cpt 0
max 0
lire (n)
lire (nombre)
cpt cpt + 1
ecrire (max)
cpt 0
max 0
lire (n)
do until (cpt = n)
lire (nombre)
cpt cpt + 1
ecrire (max)