Vous êtes sur la page 1sur 65

CHAPITRE I : NOTIONS DE BASE

I.I La notion d'algorithme


Exemples d’algorithmes :

Sans le savoir, dans la vie quotidienne, on exécute des algorithmes :

♣ lorsque l’on ouvre un livre de cuisine et que l’on suit pas à pas les
étapes indiquées dans la recette.

♣ lorsque l’on déchiffre un mode d’emploi pour faire fonctionner un


DVD.

On décrit un algorithme lorsque :

♣ on indique le chemin à un touriste égaré

♣ on fait chercher un objet à quelqu’un par téléphone


Comment décrire un algorithme.

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.

Une première version pourrait être :

1. remplir le réservoir de la cafetière d’eau


2. mettre des cuillères de café dans le filtre
3. brancher la 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

remplir le réservoir de la cafetière d’eau peut être affinée en :

1. mettre la cafetière sous le robinet


2. ouvrir le robinet
3. remplir jusqu’à ce que le niveau indiqué soit égal au nombre de tasses
souhaitées
4. fermer le robinet
De même l’étape
mettre des cuillères de café dans le filtre peut être affinée en :

1. si il n’y a pas de filtre mettre un filtre dans le porte filtre.


2. ouvrir le pot à café
3. prendre une cuillère à café
4. répéter les 2 actions suivantes jusqu’à ce que le nombre de cuillères de café
versées dans le filtre soit égal au nombre de tasses souhaitées

remplir la cuillère de café


verser le contenu de la cuillère dans le filtre
5. fermer le pot à café

Quand il procède à des affinements des différentes étapes, le concepteur d'un


algorithme doit naturellement savoir où s'arrêter. Autrement dit, il doit savoir quand
une étape constitue une primitive adéquate au point de ne pas avoir besoin
d'affinement supplémentaire. Cela signifie évidemment qu'il doit connaître quelle
sorte d'étape le processeur peut interpréter. Par exemple, le concepteur de
l'algorithme précédent doit savoir que la personne a qui il s’adresse peut interpréter
"brancher la cafetière" ce qui de ce fait n'exige pas d'affinement.
Définition

l'Encyclopédie Universalis donne la définition suivante:

" 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. "

Suite finie de règles


à appliquer dans un ordre déterminé
à un nombre fini de données
pour arriver avec certitude
en un nombre fini d'étapes
à un certain résultat
indépendamment des données

On peut aussi dire qu’un algorithme est la mécanisation de la résolution d'un


problème : Il s'agit de trouver une méthode systématique conduisant au résultat
L'ordinateur n’est pas une machine pensante et intelligente,
capable de résoudre des problèmes. En fait, celui-ci n’est
capable de rien si un programmeur ne lui fourni la liste des
actions à exécuter.

Les opérations élémentaires que peut exécuter un ordinateur


sont en nombre restreint et doivent être communiquées de façon
précise dans un langage qu'il comprendra.

La description des actions à effectuer doit être faite de manière


non ambigüe car il ne faut pas s'attendre à la moindre
interprétation des ordres fournis. Ils seront exécutés de manière
purement mécanique.

Le problème principal du programmeur est donc de lui décrire la


suite des actions élémentaires permettant d'obtenir, à partir des
données fournies, les résultats escomptés.

Cette description doit être précise, envisager le moindre détail et


prévoir les diverses possibilités de solution.
Le rôle de l'algorithme est fondamental. Un programme n'est jamais que sa
traduction dans un langage compréhensible par l'ordinateur. De plus, les algorithmes
sont fondamentaux en un autre sens: ils sont indépendants à la fois de l'ordinateur
qui les exécute, des langages dans lequel ils sont énoncés et traduits.
Qualités d'un algorithme, d'un programme.
Tout programme fourni à l'ordinateur n'est que la traduction dans un langage de
programmation d'un algorithme mis au point pour résoudre un problème donné. Pour
obtenir un bon programme, il faut partir d'un bon algorithme. Il doit, entre autres,
posséder les qualités suivantes:

être clair

être structuré

être conçu de manière à limiter le nombre d'opérations à


effectuer

être bien documenté


NOTIONS DE BASE

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.

Une variable est une « boîte », repérée par une étiquette.

Cette boîte peut contenir des valeurs.

Pour avoir accès au contenu de la boîte, il suffit de la désigner par son étiquette.

L’étiquette de la boîte est le nom que l’on donne a la variable.

En réalité, la mémoire centrale de l’ordinateur peut-être vue comme une grille


composée de « cases », pouvant contenir des informations.

Toutes les cases sont identiques.

Chaque case de la grille a un numéro , c’est son adresse.


L’adresse est un nombre binaire.
A une variable sera associée une zone de l’espace mémoire, c’est-à-dire une case
ou un ensemble de cases contiguës.

Une variable a donc une adresse : l’adresse de la première case occupée.

Heureusement, la gestion fastidieuse de la correspondance entre l’adresse binaire


de l’emplacement mémoire d’une variable et le nom de la variable est gérée par le
langage de programmation.

Une variable a un type

Le type d’une variable indique :

• Le type d’information qu’elle peut contenir.


• Le nombre de cases qu’elle occupe.

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.

Les variables de type alphanumérique ou caractère peuvent contenir des caractères


qu’il s‘agisse de lettres, d’espaces, de chiffres ou d’autres caractères.

Un autre type de variable est le type booléen . Les variables de ce type ne peuvent
prendre que la valeur vrai ou faux.

Déclaration d’une variable

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.

C ‘est ce que l’on appelle la déclaration des 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

affecter une valeur à une variable

=
attribuer une valeur à une variable

En algorithmique, on notera cette affectation avec le signe


Ainsi :

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

le contenu des cellules mémoire correspondant au variable sera :

A 12 B 4 C 5
D’une manière générale, dans une instruction d’affectation, on trouve :

à gauche de la flèche, un nom de variable

à droite de la flèche, une expression

Une expression est une formule de calcul constituée d’opérandes et d’opérateurs.

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 :

- L’évaluation s’effectue de gauche à droite


- Evaluation en ordre décroissant :
1. fonction (ex : sqr)
2. exponentiation
3. opérateur * et /
4. opérateur + et –
- Toute expression entre parenthèse est entièrement évaluée avant son utilisation
dans l’expression

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.

Pour pouvoir introduire des données et visualiser des résultats, la mémoire de


l’ordinateur doit être mise en relation bilatérale avec « le monde extérieur ».
Les unités d’entrée et de sortie assurent la concrétisation de ces deux fonctions.
Les instructions permettant de gérer le transfert entre les périphérique et la mémoire
sont au nombre de deux et seront symbolisée dans ce cours par les mots : lire et
écrire.

lire : commande le transfert d’information depuis le périphérique d’entrée vers la


mémoire.

écrire : commande le transfert d’information depuis la mémoire vers le périphérique.

lire (A) : implique la transmission de la valeur à stocker dans la variable (dans la


cellule mémoire) A.
écrire (A) : implique le transfert de la valeur stockée dans la variable A vers une
unité de sortie
STRUCTURES DE CONTRÔLE

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

L’enchaînement le plus simple pour les instructions est l’enchaînement séquentiel.


Dans une séquence, les instructions sont exécutées l’une après l’autre dans l’ordre
dans lequel elle sont citées.
Remarque : l’ordre est très important !
Exemple d’enchaînement séquentiel.
Algorithme qui saisit 5 nombres au clavier et qui affiche la moyenne, la somme des
carrés et la variance de ces 5 nombres.

début

lire (nb1,nb2,nb3,nb4,nb5)

moy (nb1+nb2+nb3+nb4+nb5)/5

scar nb1**2 + nb2**2 + nb3**2 + nb4**2 + nb5**2

var scar /5 – moy**2

ecrire (moy,scar,var)

fin
L'ALTERNATIVE

Si l’on souhaite expliquer la route à un touriste égaré, on peut décrire l’algorithme à


exécuter de la manière suivante :

aller tout droit jusqu’au prochain carrefour

prendre à droite

tourner a la troisième route à gauche

Si l’on n’est pas certain du sens de circulation dans les différents rues, les
explications pourraient devenir :

aller tout droit jusqu’au prochain carrefour

regarder si on peut tourner à droite si oui tourner à droite puis


tourner à la troisième rue à gauche
si non tourner à la prochaine à droite puis prendre la deuxième à
gauche

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 :

aller tout droit jusqu’au prochain carrefour


SI on peut tourner à droite ALORS
tourner à droite
tourner à la troisième rue à gauche
SINON
tourner à la prochaine à droite
prendre la deuxième à gauche
FINSI
De manière générale la structure alternative s’exprime comme suit :

vrai
condition

faux

instruction1 instruction2
Qu’est-ce qu’une condition ?

Condition simple.

Une condition simple est une expression de comparaison.

Cette expression est composée d’opérandes et d’un opérateur

une opérande est soit :

une variable

une constante

une fonction

Le type des opérandes est soit numérique, alphanumérique ou booléen

Les opérateurs de comparaison (relationnel) sont :

= é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.

5>2 sera toujours vraie

1>5 sera toujours fausse


Expression logique –condition composée

Certains problèmes nécessitent l’écriture de conditions plus compliquées qu’une


simple comparaison. On parlera alors de condition composée.

Une condition composée est une combinaison de comparaisons dans une


expression logique.

Il existe 3 opérateurs logiques

AND

OR

NOT

Les opérateurs opérateurs AND et OR lient deux conditions

L’opérateur NOT sert à nier une condition


La proposition C1 AND C2
est vraie quand C1 et C2 sont toutes les deux vraies sinon la proposition est fausse.

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 :

- L’évaluation s’effectue de gauche à droite

- Evaluation en ordre décroissant :

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

NOT (C1 OR C2) AND C3

3
Négation d’une condition simple

NOT (op1 = op2) op1 <> op2

NOT (op1 > op2) op1<= op2

NOT (op1 < op2) op1>= op2

NOT (op1 >= op2) op1< op2

NOT (op1 <= op2) op1> op2

Négation d’une condition composée

NOT (C1 AND C2) (NOT C1) OR (NOT C2)

NOT (C1 OR C2) (NOT C1) AND (NOT C2)


Les opérateurs ANDLR et ORLR

Lorsque plusieurs conditions sont liées par ces opérateurs, l'évaluation de


l'expression est stoppée dès que la valeur logique de l'expression est connue.

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

Attention ces opérateurs ne sont pas commutatifs !


Exemple : écrire l’algorithme qui calcule et imprime la valeur absolue d'un nombre

début

lire (nb)

nb>= V
0

valabs -nb valabs nb

ecrire (valabs)

fin
Solutions equivalentes :

début

lire (nb)

F
nb< 0

valabs -nb valabs nb

ecrire (valabs)

fin

début

lire (nb)

nb>= F
0

valabs nb valabs -nb

ecrire (valabs)

fin
début

lire (nb)

V
nb<0

valabs nb valabs -nb

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

écrire( « indéterminé ») a <> 0

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 :

Algorithme de recherche du maximum parmi 2 nombres

début

lire (nb1,nb2)

nb1>nb V
2

max nb2 max nb1

ecrire (max)

fin
Algorithme de recherche du minimum parmi 2 nombres

début

lire (nb1,nb2)

nb1<nb V
2

min nb2 min nb1

ecrire (min)

fin
Algorithme de recherche du maximum et du minimum parmi 2 nombres

début

lire (nb1,nb2)

nb1>nb V
2

max nb2 max nb1


min nb1 min nb2

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

max nb2 max nb1


écrire(max) écrire(max)

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

max nb3 max nb2 max nb3 max nb1

ecrire (max)

fin
début

lire (nb1,nb2,nb3)

nb1>nb V
2

max nb2 max nb1

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

Le pseudo-code est une alternative à l’organigramme pour décrire un algorithme, Il


est plus proche de l’écriture du programme en langage de programmation, mais
il reste néanmoins indépendant de tout langage.

On représentera dans un pseudo-code les trois types d’enchainements : sequentiel,


alternatif ou répétitif de la manière suivante :

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:

Recherche du maximum parmi 3 nombres


lire (nb1,nb2,nb3)
if nb1>nb2
if nb1>nb3
max nb1
else
max nb3

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 :

répéter jusqu’à ce que le nombre de cuillères de café versées dans le filtre


soit égal au nombre de tasses souhaitées :

1. remplir la cuillère de café


2. verser le contenu de la cuillère dans le filtre

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 :

répéter tant que le nombre de cuillères de café versées dans le filtre


n’est pas égal au nombre de tasses souhaitées :

3. remplir la cuillère de café


4. verser le contenu de la cuillère dans le filtre

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

Tant que la condition est vérifiée on répète les instructions.

La condition exprime une condition de séjour dans la boucle.


On aurait pu écrire :

f
condition

instructions itérées

on répète les instructions jusqu’à ce que la condition soit vérifiée.

La condition exprime une condition de sortie dans la boucle.


Exemple : écrire un algorithme qui affiche les 5 premières lignes de la table de
multiplication par 2.

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

On remarque que la même séquence d’instructions est exécutée plusieurs fois.

La séquence à répéter est :

x x+1

écrire (x*2)

Quelle est la condition de séjour ?

On remarque que lorsqu’on atteint la fin de l’algorithme, la valeur de x est égale à 5


On pourrait donc écrire :

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

Quelle est la séquence d’instructions répétée ?

Si on ajoute une instruction x x+1

La séquence à répéter est :

é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

On aurait pu écrire x = 6 au lieu de x>5


Recherche du maximum parmi 3 nombres.

Reprenons l'organigramme réalisé précédemment pour lequel on avait supposé 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
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 va donc répéter en comptant.

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 :

écrire un algorithme qui calcule la moyenne, le minimum et le maximum parmi n


nombres représentant les points (/100) obtenus par n étudiants au premier test de
méthode de programmation .

1ère version : on introduit le nombre d’étudiants, c’est à dire la valeur de n.

2ème version : la dernière cote introduite prend la valeur –1


début

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

tot tot + 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

tot tot + 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

tot tot + 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

tot tot + 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

La condition est une condition de séjour

DO UNTIL condition
action(s) à répéter

La condition est une condition de sortie

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:

Recherche du maximum parmi n nombres

cpt 0

max 0

lire (n)

do while (cpt < n)

lire (nombre)

if (nombre > max)


max nombre

cpt cpt + 1

ecrire (max)

Recherche du maximum parmi n nombres

cpt 0

max 0

lire (n)

do until (cpt = n)

lire (nombre)

if (nombre > max)


max nombre

cpt cpt + 1

ecrire (max)

Vous aimerez peut-être aussi