Vous êtes sur la page 1sur 98

Introduction à l’Algorithmique

1
Objectif et plan du cours

Objectif :

1 Apprendre les concepts de base de l'algorithmique

2 Être capable de mettre en œuvre ces concepts pour analyser des


problèmes simples et écrire les algorithmes correspondants

2
Objectif et plan du cours

Plan du cours

1 Généralités sur l’algorithmique et les langages de programmation

2 Notion de variable, affectation, lecture et écriture


3 Instructions conditionnels et instructions itératives

4 Les Tableaux, les fonctions et procédures, la récursivité

3
Objectif et plan du cours

1 Généralités sur l’algorithmique et les langages de programmation

2 Notion de variable, affectation, lecture et écriture


3 Instructions conditionnels et instructions itératives

4 Les Tableaux, les fonctions et procédures, la récursivité

4
Généralités sur l’algorithmique et les langages de programmation

Programme

 Un
 Un programme
programme correspond
correspond àà la
la description
description d’une
d’une méthode
méthode de
de résolution
résolution pour
pour
un problème
un problème donné.
donné.

 Cette
 Cette description
description est
est effectuée
effectuée par
par une
une suite
suite d’instructions
d’instructions d’un
d’un langage
langage de
de
programmation
programmation

 Ces
 Ces instructions
instructions permettent
permettent de
de traiter
traiter et
et de
de transformer
transformer les
les données
données (entrées)
(entrées)
du problème
du problème àà résoudre
résoudre pour
pour aboutir
aboutir àà des
des résultats
résultats (sorties).
(sorties).

 Un
 Un programme
programme n’est
n’est pas
pas une
une solution
solution en
en soi
soi mais
mais une
une méthode
méthode àà suivre
suivre pour
pour
trouver les
trouver les solutions.
solutions.

5
Généralités sur l’algorithmique et les langages de programmation

Langages informatiques

 Un
 Un langage
langage informatique
informatique est
est un
un code
code de
de communication,
communication, permettant
permettant àà un
un
être humain
être humain de
de dialoguer
dialoguer avec
avec une
une machine
machine enen lui
lui soumettant
soumettant des
des instructions
instructions
et en
et en analysant
analysant les
les données
données matérielles
matérielles fournies
fournies par
par le
le système.
système.
 Le
 Le langage
langage informatique
informatique est
est l’intermédiaire
l’intermédiaire entre
entre le
le programmeur
programmeur et
et la
la
machine.
machine.

 IlIl permet
permet d’écrire
d’écrire des
des programmes
programmes (suite
(suite consécutive
consécutive d’instructions)
d’instructions) destinés
destinés
àà effectuer
effectuer une
une tache
tache donnée
donnée
•• Exemple
Exemple :: un
un programme
programme de de résolution
résolution d’une
d’une équation
équation du
du second
second degré
degré

 Programmation
 Programmation :: ensemble
ensemble des
des activités
activités orientées
orientées vers
vers la
la conception,
conception, la
la
réalisation, le
réalisation, le test
test et
et la
la maintenance
maintenance de
de programmes.
programmes.

6
Généralités sur l’algorithmique et les langages de programmation

Notion d’algorithme

 Un
 Un programme
programme informatique
informatique permet
permet àà l’ordinateur
l’ordinateur de
de résoudre
résoudre un
un problème
problème
 Avant
Avant de
de communiquer
communiquer àà l’ordinateur
l’ordinateur comment
comment résoudre
résoudre ce
ce problème,
problème, ilil
faut en
faut en premier
premier lieu
lieu pouvoir
pouvoir le
le résoudre
résoudre nous
nous même
même

 Un
 Un algorithme
algorithme peut
peut se
se comparer
comparer àà uneune recette
recette de
de cuisine
cuisine
 Le
Le résultat
résultat c’est
c’est comme
comme le le plat
plat àà cuisiner
cuisiner
 Les
Les données
données sont
sont l’analogues
l’analogues des
des ingrédients
ingrédients de
de la
la recette
recette
 Les
Les règles
règles de
de transformations
transformations se se comparent
comparent auxaux directives
directives ou
ou instructions
instructions
de la
de la recette
recette

7
Généralités sur l’algorithmique et les langages de programmation

Algorithme informatique

Un algorithme
Un algorithme est
est une
une suite
suite d’instructions
d’instructions ayant
ayant pour
pour but
but de
de résoudre
résoudre un
un
problème donné.
problème donné. Ces
Ces instructions
instructions doivent
doivent être
être exécutées
exécutées de
de façon
façon automatique
automatique
par un
par un ordinateur.
ordinateur.

Exemples:
Exemples:

Préparer une recette de cuisine

Montrer le chemin à un touriste

Régler l’heure et la date dans un téléphone portable

8
Généralités sur l’algorithmique et les langages de programmation

Algorithme : exemple

 Résoudre
 Résoudre l’équation
l’équation du
du second
second degré:
degré:
XX22+2X+1
+2X+1

9
Généralités sur l’algorithmique et les langages de programmation

Algorithmique

 algorithme
 algorithme == méthode
méthode de
de résolution
résolution

 algorithme
 algorithme vient
vient du
du nom
nom du
du célèbre
célèbre mathématicien
mathématicien arabe
arabe Al
Al Khawarizmi
Khawarizmi
(Abu Ja'far
(Abu Ja'far Mohammed
Mohammed BenBen Mussa
Mussa Al-Khwarismi)
Al-Khwarismi)

 L’algorithmique
 L’algorithmique désigne
désigne aussi
aussi la
la discipline
discipline qui
qui étudie
étudie les
les algorithmes
algorithmes et
et leurs
leurs
applications en
applications en Informatique
Informatique

 Une
 Une bonne
bonne connaissance
connaissance de
de l’algorithmique
l’algorithmique permet
permet d’écrire
d’écrire des
des algorithmes
algorithmes
exacts et
exacts et efficaces
efficaces

10
Généralités sur l’algorithmique et les langages de programmation

Propriétés d’un algorithme

 Un
 Un algorithme
algorithme doit:
doit:
 avoir
avoir un
un nombre
nombre fini
fini d’étapes,
d’étapes,
 avoir
avoir un
un nombre
nombre fini
fini d’opérations
d’opérations par
par étape,
étape,
 se
se terminer
terminer après
après unun nombre
nombre fini
fini d’opérations,
d’opérations,
 fournir
fournir un
un résultat.
résultat.

 Chaque
 Chaque opération
opération doit
doit être:
être:
 définie
définie rigoureusement
rigoureusement et et sans
sans ambiguïté
ambiguïté
 effective,
effective, c-à-d
c-à-d réalisable
réalisable par
par une
une machine
machine

11
Généralités sur l’algorithmique et les langages de programmation

Représentation d’un algorithme

Historiquement, deux
Historiquement, deux façons
façons pour
pour représenter
représenter un
un algorithme:
algorithme:

 L’Organigramme:
 L’Organigramme: représentation
représentation graphique
graphique avec
avec des
des symboles
symboles (carrés,
(carrés,
losanges, etc.)
losanges, etc.)
 offre
offre une
une vue
vue d’ensemble
d’ensemble de
de l’algorithme
l’algorithme
 représentation
représentation quasiment
quasiment abandonnée
abandonnée aujourd’hui
aujourd’hui

 Le
 Le pseudo-code:
pseudo-code: représentation
représentation textuelle
textuelle avec
avec une
une série
série de
de conventions
conventions
ressemblant àà un
ressemblant un langage
langage dede programmation
programmation
 plus
plus pratique
pratique pour
pour écrire
écrire un
un algorithme
algorithme
 représentation
représentation largement
largement utilisée
utilisée

12
1 Généralités sur l’algorithmique et les langages de programmation

2 Notion de variable, affectation, lecture et écriture


3 Instructions conditionnels et instructions itératives

4 Les Tableaux, les fonctions et procédures, la récursivité

2
Lamia Benameur Introduction à l’informatique
Notion de variable, affectation, lecture et écriture

Instructions de base

 Un programme informatique est formé de quatre types


d’instructions considérées comme des petites briques de base :

 l’affectation de variables
 la lecture et/ou l’écriture
 les tests
 les boucles

14
Notion de variable

 Une
Une variable
variable sert
sert àà stocker
stocker la
la valeur
valeur d’une
d’une donnée
donnée dans
dans un
un langage
langage de
de
programmation
programmation

 Une
Une variable
variable désigne
désigne un
un emplacement
emplacement mémoire
mémoire dont
dont le
le contenu
contenu peut
peut changer
changer
au cours
au cours d’un
d’un programme
programme (d’où
(d’où le
le nom
nom de
de variable)
variable)

 Chaque
Chaque emplacement
emplacement mémoire
mémoire aa un
un numéro
numéro qui
qui permet
permet d'y
d'y faire
faire référence
référence de
de
façon unique
façon unique :: c'est
c'est l'adresse
l'adresse mémoire
mémoire de
de cette
cette cellule.
cellule.

15
Notion de variable

Règle :: La
Règle La variable
variable doit
doit être
être déclarée
déclarée avant
avant d’être
d’être utilisée,
utilisée, elle
elle doit
doit être
être
caractérisée par
caractérisée par ::
 un
un nom
nom (Identificateur)
(Identificateur)
 un
un type
type qui
qui indique
indique l’ensemble
l’ensemble des
des valeurs
valeurs que
que peut
peut prendre
prendre lala
variable (entier,
variable (entier, réel,
réel, booléen,
booléen, caractère,
caractère, chaîne
chaîne de
de caractères,
caractères, …)
…)
 Une
Une valeur
valeur

16
Identificateurs : règles

Le choix
Le choix du
du nom
nom d’une
d’une variable
variable est
est soumis
soumis àà quelques
quelques règles
règles qui
qui varient
varient selon
selon le
le
langage, mais
langage, mais en
en général:
général:
 Un
Un nom
nom doit
doit commencer
commencer parpar une
une lettre
lettre alphabétique
alphabétique
Exemple :: E1
Exemple E1 (1E
(1E n’est
n’est pas
pas valide)
valide)
 Doit
Doit être
être constitué
constitué uniquement
uniquement de de lettres,
lettres, de
de chiffres
chiffres et
et du
du
soulignement («
soulignement (« __ »)
») (Éviter
(Éviter les
les caractères
caractères de
de ponctuation
ponctuation etet les
les
espaces)
espaces)
Exemples :: SMI2008,
Exemples SMI2008, SMI_2008
SMI_2008
(SMP 2008,
(SMP 2008, SMP-2008,
SMP-2008, SMP;2008
SMP;2008 :: sont
sont non
non valides)
valides)
 Doit
Doit être
être différent
différent des
des mots
mots réservés
réservés du
du langage
langage (par
(par exemple
exemple en
en
langage C:
langage C: int,
int, float,
float, double,
double, switch,
switch, case,
case, for,
for, main,
main, return,
return, …)
…)
 La
La longueur
longueur dudu nom
nom doit
doit être
être inférieure
inférieure àà la
la taille
taille maximale
maximale spécifiée
spécifiée
par le
par le langage
langage utilisé
utilisé

17
Identificateurs : conseils
Conseil: pour
Conseil: pour la
la lisibilité
lisibilité du
du code
code choisir
choisir des
des noms
noms significatifs
significatifs qui
qui décrivent
décrivent les
les
données manipulées
données manipulées
exemples: NoteEtudiant,
exemples: NoteEtudiant, Prix_TTC,
Prix_TTC, Prix_HT
Prix_HT
Remarque: en
Remarque: en pseudo-code
pseudo-code algorithmique,
algorithmique, on
on va
va respecter
respecter les
les règles
règles citées,
citées,
même si
même si on
on est
est libre
libre dans
dans la
la syntaxe
syntaxe

18
Types des variables

Le type
Le type d’une
d’une variable
variable détermine
détermine l’ensemble
l’ensemble des
des valeurs
valeurs qu’elle
qu’elle peut
peut prendre.
prendre.
Les types
Les types offerts
offerts par
par la
la plus
plus part
part des
des langages
langages sont:
sont:
 Type
Type numérique
numérique (entier
(entier ou
ou réel)
réel)
•• Byte
Byte (codé
(codé sur
sur 1octet):
1octet): de
de [-2
[-277,2
,277[[ ou
ou [0,
[0, 2288[[
•• Entier
Entier court
court (codé
(codé sur
sur 22 octets)
octets) :: [-2
[-21515,2
,21515[[
•• Entier
Entier long
long (codé
(codé sur
sur 44 octets):
octets): [-2
[-23131,2
,23131[[
•• Réel
Réel simple
simple précision
précision (codé
(codé sur
sur 44 octets)
octets) :: précision
précision d’ordre
d’ordre 10-
10-77
•• Réel
Réel double
double précision
précision (codé
(codé sur
sur 88 octets)
octets) :: précision
précision d’ordre
d’ordre 10-
10-1414
 Type
Type logique
logique ou
ou booléen:
booléen: deux
deux valeurs
valeurs VRAI
VRAI ou
ou FAUX
FAUX
 Type
Type caractère:
caractère: lettres
lettres majuscules,
majuscules, minuscules,
minuscules, chiffres,
chiffres, symboles,..
symboles,..
Exemples :: ’A’,
Exemples ’A’, ’b’,
’b’, ’1’,
’1’, ’?’,
’?’, …

 Type
Type chaîne
chaîne de
de caractère:
caractère: toute
toute suite
suite de
de caractères
caractères
Exemples: "" "" ,, "" Nom,
Exemples: Nom, Prénom",
Prénom", "code
"code postale:
postale: 1000",
1000", …

19
Déclaration des variables

 Rappel:
Rappel: toute
toute variable
variable utilisée
utilisée dans
dans unun programme
programme doit
doit avoir
avoir fait
fait l’objet
l’objet d’une
d’une
déclaration préalable
déclaration préalable
 En
En pseudo-code,
pseudo-code, la la déclaration
déclaration dede variables
variables est
est effectuée
effectuée parpar la
la forme
forme
suivante:
suivante:
Variables liste
Variables liste d'identificateurs
d'identificateurs :: type
type
Exemple:
Exemple:
Variables i,i, j,j, kk :: entier
Variables entier
x, yy :: réel
x, réel
OK: booléen
OK: booléen
Ch1, ch2
Ch1, ch2 :: chaîne
chaîne dede caractères
caractères

20
Variables : remarques
 Pour
Pour le
le type
type numérique,
numérique, on
on va
va se
se limiter
limiter aux
aux entiers
entiers et
et réels
réels sans
sans considérer
considérer
les sous
les sous types
types
 Pour
Pour chaque
chaque type
type de
de variables,
variables, ilil existe
existe un
un ensemble
ensemble d'opérations
d'opérations
correspondant.
correspondant.
 Une
Une variable
variable est
est l'association
l'association d'un
d'un nom
nom avec
avec un
un type,
type, permettant
permettant de
de
mémoriser une
mémoriser une valeur
valeur de
de ce
ce type.
type.

21
Constante
 Une
Une constante
constante est
est une
une variable
variable dont
dont la
la valeur
valeur ne
ne change
change pas
pas au
au cours
cours de
de
l'exécution du
l'exécution du programme,
programme, elle
elle peut
peut être
être un
un nombre,
nombre, un
un caractère,
caractère, ou
ou une
une
chaine de
chaine de caractères.
caractères.
 En
En pseudo-code,
pseudo-code,
Constante identificateur
Constante identificateur == valeur
valeur :: type,…
type,…
(par convention,
(par convention, les
les noms
noms de
de constantes
constantes sont
sont en
en majuscules)
majuscules)

Exemple
Exemple ::
pour calculer
pour calculer la
la surface
surface des
des cercles,
cercles, la
la valeur
valeur de
de pi
pi est
est une
une constante
constante mais
mais le
le
rayon est
rayon est une
une variable.
variable.

Constante PI=3.14
Constante PI=3.14 :: réel,
réel, MAXI=32
MAXI=32 :: entier
entier

 Une
Une constante
constante doit
doit toujours
toujours recevoir
recevoir une
une valeur
valeur dès
dès sa
sa déclaration.
déclaration.

22
Affectation

 L’affectation
L’affectation consiste
consiste àà attribuer
attribuer une
une valeur
valeur àà une
une variable(c’est-à-dire
variable(c’est-à-dire remplir
remplir
ou modifier
ou modifier le
le contenu
contenu d'une
d'une zone
zone mémoire)
mémoire)

 En
En pseudo-code,
pseudo-code, l'affectation
l'affectation est
est notée
notée par
par le
le signe
signe ←

Var← ee :: attribue
Var← attribue la
la valeur
valeur de
de ee àà la
la variable
variable Var
Var

•• ee peut
peut être
être une
une valeur,
valeur, une
une autre
autre variable
variable ou
ou une
une expression
expression
•• Var
Var et
et ee doivent
doivent être
être de
de même
même type
type ou
ou de
de types
types compatibles
compatibles
•• l’affectation
l’affectation ne
ne modifie
modifie que
que ce
ce qui
qui est
est àà gauche
gauche de
de la
la flèche
flèche

23
Affectation

Exemples ::
Exemples
 ii ←1
←1
 jj ←i
←i
 kk ←i+j
←i+j
 xx ←10.3
←10.3
 OKOK ←FAUX
←FAUX
 ch1
ch1 ←"SMI"
←"SMI"
 ch2
ch2 ←ch1
←ch1
 xx ←4
←4
 xx ←j
←j
(avec i,i, j,j, kk :: entier;
(avec entier; xx :réel;
:réel; ok
ok :booléen;
:booléen; ch1,ch2
ch1,ch2 :chaine
:chaine de
de caractères)
caractères)

 Exemples
Exemples non
non valides:
valides:
 ii ←10.3
←10.3
 OK
OK ←"SMI"
←"SMI"
 jj ←x
←x
24
Affectation

 Les
Les langages
langages de
de programmation
programmation C,
C, C++,
C++, Java,
Java, …
… utilisent
utilisent le
le signe
signe égal
égal == pour
pour
l’affectation ←.
l’affectation ←.
Remarques
Remarques ::
 Lors
Lors d’une
d’une affectation,
affectation, l’expression
l’expression de
de droite
droite est
est évaluée
évaluée et
et la
la valeur
valeur trouvée
trouvée
est affectée
est affectée àà la
la variable
variable de
de gauche.
gauche. Ainsi,
Ainsi, A←B
A←B est
est différente
différente de
de B←A
B←A
 l'affectation
l'affectation est
est différente
différente d'une
d'une équation
équation mathématique
mathématique ::
•• Les
Les opérations
opérations xx ←
← x+1
x+1 et
et xx ←
← x-1
x-1 ont
ont un
un sens
sens en
en programmation
programmation et
et se
se
nomment respectivement
nomment respectivement incrémentation
incrémentation et
et décrémentation.
décrémentation.
•• A+1
A+1 ←
← 33 n'est
n'est pas
pas possible
possible en
en langages
langages de
de programmation
programmation et
et n'est
n'est
pas équivalente
pas équivalente àà AA ←
← 22
 Certains
Certains langages
langages donnent
donnent des des valeurs
valeurs par
par défaut
défaut aux
aux variables
variables déclarées.
déclarées.
Pour éviter
Pour éviter tout
tout problème
problème ilil est
est préférable
préférable d'initialiser
d'initialiser les
les variables
variables déclarées.
déclarées.

25
Syntaxe générale de l’algorithme
Algo exemple
/* La partie déclaration de l’algorithme */
Constantes // les constantes nécessitent une valeur dès leur déclaration
const1←20 : entier
const2←"bonjour!" : chaîne
Variables // les variables proprement dites
var1, var2 : réels
var3 : chaîne
Début // corps de l’algorithme
/* instructions */
Fin

26
Syntaxe générale de l’algorithme

 Les
Les opérations
opérations d'un
d'un algorithme
algorithme sont
sont habituellement
habituellement exécutées
exécutées une
une àà la
la suite
suite
de l'autre,
de l'autre, en
en séquence
séquence (de
(de haut
haut en
en bas
bas et
et de
de gauche
gauche àà droite).
droite).

 L'ordre
L'ordre est
est important.
important.

 On
On ne
ne peut
peut pas
pas changer
changer cette
cette séquence
séquence de
de façon
façon arbitraire.
arbitraire.

 Par
Par exemple,
exemple, enfiler
enfiler ses
ses chaussettes
chaussettes puis
puis enfiler
enfiler ses
ses bottes
bottes n’est
n’est pas
pas équivalent
équivalent
àà enfiler
enfiler ses
ses bottes
bottes puis
puis enfiler
enfiler ses
ses chaussettes.
chaussettes.

27
Affectation : exercices
 Donnez
Donnez lesles valeurs
valeurs des
des variables
variables A,
A, BB et
et CC après
après exécution
exécution des
des instructions
instructions
suivantes ??
suivantes
Variables A,
Variables A, B,
B, C:
C: Entier
Entier
Début
Début
AA ←
← 77
BB ←
← 17
17
AA ←
← BB
BB ←
← A+5
A+5
CC ←
← AA ++ BB
CC ←
← BB –– AA
Fin
Fin

28
Affectation : exercices
 Écrire
Écrire un
un algorithme
algorithme permettant
permettant d’échanger
d’échanger les
les valeurs
valeurs de
de deux
deux variables
variables AA et
et BB ??

29
Affectation : exercices

Réponse ::
Réponse
On utilise
On utilise une
une variable
variable auxiliaire
auxiliaire CC et
et on
on écrit
écrit les
les instructions
instructions suivantes
suivantes ::

CC AA ;;
AA BB ;;
BB CC ;;

30
Expressions et opérateurs

Une
Une expression
expression peut
peut être
être une
une valeur,
valeur, une
une variable
variable ou
ou une
une opération
opération constituée
constituée de
de
variables reliées
variables reliées par
par des
des opérateurs
opérateurs
exemples: 1,
exemples: 1, b,
b, a*2,
a*2, a+
a+ 3*b-c,
3*b-c, …

 L'évaluation
L'évaluation de
de l'expression
l'expression fournit
fournit une
une valeur
valeur unique
unique qui
qui est
est le
le résultat
résultat de
de
l'opération
l'opération
 Les
Les opérateurs
opérateurs dépendent
dépendent du du type
type de
de l'opération,
l'opération, ils
ils peuvent
peuvent être
être ::
•• des
des opérateurs
opérateurs arithmétiques:
arithmétiques: +,+, -,-, *,
*, /,
/, %
% (modulo),
(modulo), ^(puissance)
^(puissance)
•• des
des opérateurs
opérateurs logiques:
logiques: NON(!),
NON(!), OU(||),
OU(||), ET ET (&&)
(&&)
•• des
des opérateurs
opérateurs relationnels:
relationnels: =,
=, <,
<, >,
>, <=,
<=, >=
>=
•• des
des opérateurs
opérateurs sur
sur les
les chaînes:
chaînes: && (concaténation)
(concaténation)
 Une
Une expression
expression est
est évaluée
évaluée de
de gauche
gauche àà droite
droite mais
mais en
en tenant
tenant compte
compte des
des
priorités des
priorités des opérateurs.
opérateurs.

31
Expression : remarques
On
On ne
ne peut
peut pas
pas additionner
additionner un
un entier
entier et
et un
un caractère
caractère
 Toutefois
Toutefois dans
dans certains
certains langages
langages on
on peut utiliser
peut utiliser un
un opérateur
opérateur avec deux
avec deux
opérandes de
opérandes de types
types différents,
différents, c’est
c’est par exemple
par exemple le le cas avec
cas avec les types
les types
arithmétiques (4
arithmétiques (4 ++ 5.5)
5.5)

 La
La signification
signification d’un
d’un opérateur
opérateur peutpeut changer
changer en en fonction
fonction du
du type
type des
des opérandes
opérandes
•• l’opérateur
l’opérateur ++ avec
avec des
des entiers
entiers effectue
effectue l’addition,
l’addition, 3+6
3+6 vaut
vaut 99
•• avec
avec des
des chaînes
chaînes dede caractères
caractères ilil effectue
effectue la
la concaténation
concaténation
"bonjour" ++ "" tout
"bonjour" tout le
le monde
monde ""
vaut "bonjour
vaut "bonjour tout
tout le
le monde"
monde"

32
Expression : remarques

Pour
Pour le
le langage
langage C,
C, si
si xx et
et yy sont
sont entiers,
entiers, x/y
x/y est
est une
une division
division entière
entière alors
alors que
que si
si
l’un des
l’un des deux
deux ne
ne l’est
l’est pas
pas la
la division
division est
est réelle
réelle

 x+y/z
x+y/z :: est
est une
une expression
expression arithmétique
arithmétique dont
dont le
le type
type dépend
dépend des
des types
types de
de x,
x, yy
et zz
et

 (x>y)
(x>y) |||| !(x=y+1)
!(x=y+1) :: est
est une
une expression
expression booléenne
booléenne (( ||
|| dénote
dénote l’opérateur
l’opérateur logique
logique
ou et
ou et !! Dénote
Dénote la
la négation)
négation)

 Avant
Avant d’utiliser
d’utiliser une
une variable
variable dans
dans une
une expression,
expression, ilil est
est nécessaire
nécessaire qu’une
qu’une
valeur lui
valeur lui ait
ait été
été affectée.
affectée.

33
Expression : remarques
La
La valeur
valeur dede l’expression
l’expression est
est évaluée
évaluée au
au moment
moment de de l’affectation
l’affectation
•• xx 44
•• yy 66
•• zz x+y
x+y
•• Ecrire(z)
Ecrire(z) 10
10
•• yy 20
20
•• Ecrire(z)
Ecrire(z) 10 10 la
la modification
modification de
de yy après
après affectation
affectation n’a
n’a aucun
aucun effet
effet sur
sur la
la
valeur de
valeur de zz

34
Priorité des opérateurs
Pour
Pour les
les opérateurs
opérateurs arithmétiques
arithmétiques donnés
donnés ci-dessous,
ci-dessous, l'ordre
l'ordre de
de priorité
priorité est
est le
le
suivant (du
suivant (du plus
plus prioritaire
prioritaire au
au moins
moins prioritaire)
prioritaire) ::

• () : les parenthèses
• ^ : (élévation à la puissance)
• * , /: (multiplication, division)
• % : (modulo)
• + , - : (addition, soustraction)

exemple: 99 ++ 33 ** 44 vaut
exemple: vaut 2121
 En
En cas
cas de
de besoin,
besoin, on on utilise
utilise les
les parenthèses
parenthèses pour
pour indiquer
indiquer les
les opérations
opérations àà effectuer
effectuer
en priorité
en priorité
exemple: (9
exemple: (9 ++ 3)
3) ** 44 vaut
vaut 4848
 ÀÀ priorité
priorité égale,
égale, l’évaluation
l’évaluation de de l’expression
l’expression se
se fait
fait de
de gauche
gauche àà droite
droite

35
Les opérateurs booléens

Associativité
Associativité des
des opérateurs
opérateurs et
et et
et ou
ou
aa et
et (b
(b et
et c)
c) == (a
(a et
et b)
b) et
et cc

Commutativité
Commutativité des
des opérateurs
opérateurs et
et et
et ou
ou
aa et
et bb == bb et
et aa
aa ou
ou bb == bb ou
ou aa

Distributivité
Distributivité des
des opérateurs
opérateurs et et et
et ou
ou
aa ou
ou (b
(b et
et c)
c) == (a
(a ou
ou b)
b) et
et (a
(a ou
ou c)
c)
aa et
et (b
(b ou
ou c)
c) == (a
(a et
et b)
b) ou
ou (a
(a et
et c)
c)

36
Les opérateurs booléens

Associativité
Associativité des
des opérateurs
opérateurs et
et et
et ou
ou
aa et
et (b
(b et
et c)
c) == (a
(a et
et b)
b) et
et cc
Commutativité
Commutativité des
des opérateurs
opérateurs et
et et
et ou
ou
aa et
et bb == bb et
et aa
aa ou
ou bb == bb ou
ou aa
Pour
Pour les
les opérateurs
opérateurs arithmétiques
arithmétiques donnés
donnés ci-dessus,
ci-dessus, l'ordre
l'ordre de
de priorité
priorité est
est le
le
suivant (du
suivant (du plus
plus prioritaire
prioritaire au
au moins
moins prioritaire)
prioritaire) ::

37
Les opérateurs booléens

Involution
Involution (homographie
(homographie réciproque)
réciproque) :: non
non non
non aa == aa

Loi
Loi de
de Morgan
Morgan :: non
non (a
(a ou
ou b)
b) == non
non aa et
et non
non bb
non (a
non (a et
et b)
b) == non
non aa ou
ou non
non bb

Exemple
Exemple :: soient
soient a,
a, b,
b, cc et
et dd quatre
quatre entiers
entiers quelconques
quelconques ::

(a<b)||((a>=b)&&(c==d))
(a<b)||((a>=b)&&(c==d)) (a<b)||(c==d)
(a<b)||(c==d)

car (a<b)
car (a<b) ||
|| (!(a<b))
(!(a<b)) est
est toujours
toujours vraie
vraie

38
Tables de vérité

39
Les instructions d’entrées et sorties : lecture et écriture

Les
Les instructions
instructions dede lecture
lecture et
et d'écriture
d'écriture permettent
permettent àà la
la machine
machine de
de
communiquer avec
communiquer avec l'utilisateur
l'utilisateur

La
La lecture
lecture permet
permet d'entrer
d'entrer des
des donnés
donnés àà partir
partir du
du clavier
clavier
•• En
En pseudo-code,
pseudo-code, on
on note:
note: lire
lire (var)
(var)
la machine
la machine met
met la
la valeur
valeur entrée
entrée au
au clavier
clavier dans
dans lala zone
zone mémoire
mémoire nommée
nommée var
var

Remarque
Remarque :: LeLe programme
programme s'arrête
s'arrête lorsqu'il
lorsqu'il rencontre
rencontre une
une instruction
instruction Lire
Lire et
et ne
ne
se poursuit
se poursuit qu'après
qu'après la
la saisie
saisie de
de l’entrée
l’entrée attendue
attendue par
par le
le clavier
clavier et
et de
de la
la touche
touche
Entrée (cette
Entrée (cette touche
touche signale
signale la
la fin
fin de
de l’entrée)
l’entrée)

Conseil
Conseil :: Avant
Avant dede lire
lire une
une variable,
variable, ilil est
est fortement
fortement conseillé
conseillé d’écrire
d’écrire des
des
messages àà l’écran,
messages l’écran, afin
afin de
de prévenir
prévenir l’utilisateur
l’utilisateur de
de ce
ce qu’il
qu’il doit
doit frapper
frapper

40
Les instructions d’entrées et sorties : lecture et écriture

L'écriture
L'écriture permet
permet d'afficher
d'afficher des
des résultats
résultats àà l'écran
l'écran (ou
(ou de
de les
les écrire
écrire dans
dans un
un fichier)
fichier)
•• En
En pseudo-code,
pseudo-code, onon note:
note: écrire
écrire (liste
(liste d’expressions)
d’expressions)
la machine
la machine affiche
affiche les
les valeurs
valeurs des
des expressions
expressions décrite
décrite dans
dans la
la liste.
liste.
Ces instructions
Ces instructions peuvent
peuvent être
être des
des variables
variables ayant
ayant des
des valeurs,
valeurs, des
des nombres
nombres ou
ou des
des
commentaires sous
commentaires sous forme
forme de
de chaines
chaines dede caractères.
caractères.
 Exemple
Exemple :: écrire(a,
écrire(a, b+2,
b+2, "Message")
"Message")

41
Exemple : lecture et écriture
Écrire
Écrire un
un algorithme
algorithme qui
qui demande
demande un
un nombre
nombre entier
entier àà l'utilisateur,
l'utilisateur, puis
puis qui
qui calcule
calcule
et affiche
et affiche le
le carré
carré de
de ce
ce nombre
nombre

42
Exemple : lecture et écriture

Algorithme Calcul_du_Carre
Rôle : calcul du carre
Données : un entier
Résultats : le carre du nombre
variables A, B : entier
Début
écrire("entrer la valeur de A ")
lire(A)
B ← A*A
écrire("le carre de ", A, "est :", B)
Fin
43
Exercice : lecture et écriture
Écrire
Écrire un
un algorithme
algorithme qui
qui permet
permet d’effectuer
d’effectuer la
la saisie
saisie d’un
d’un nom,
nom, d’un
d’un prénom
prénom et
et
affiche ensuite
affiche ensuite le
le nom
nom complet
complet

44
Exercice : lecture et écriture

Algorithme AffichageNomComplet

variables Nom, Prenom, Nom_Complet : chaîne de caractères


Début
écrire("entrez le nom")
lire(Nom)
écrire("entrez le prénom")
lire(Prenom)
Nom_Complet ← Nom & " " & Prenom
écrire("Votre nom complet est : ", Nom_Complet)
Fin

45
Définitions Introduction générale
Notion d’algorithme

Tests: instructions conditionnelles

Définition
 Une
Une condition
condition est
est une
une expression
expression écrite
écrite entre
entre parenthèse
parenthèse àà valeur
valeur booléenne
booléenne

 Les
Les instructions
instructions conditionnelles
conditionnelles servent
servent àà n'exécuter
n'exécuter une
une instruction
instruction ou
ou une
une
séquence d'instructions
séquence d'instructions que
que si
si une
une condition
condition est
est vérifiée.
vérifiée.

 En
En pseudo-code
pseudo-code ::
Si condition
Si condition alors
alors
instruction ou
instruction ou suite
suite d'instructions1
d'instructions1
Sinon
Sinon
instruction ou
instruction ou suite
suite d'instructions2
d'instructions2
Finsi
Finsi

46
Définitions Introduction générale
Notion d’algorithme

Tests: instructions conditionnelles

47
Définitions Introduction générale
Notion d’algorithme

Tests: instructions conditionnelles

Remarques :

•• la
la condition
condition ne
ne peut
peut être
être que
que vraie
vraie ou
ou fausse
fausse
•• si
si la
la condition
condition est
est vraie
vraie alors
alors seules
seules les
les instructions1
instructions1 sont
sont exécutées
exécutées
•• si
si la
la condition
condition est
est fausse
fausse seules
seules les
les instructions2
instructions2 sont
sont exécutées
exécutées
•• la
la condition
condition peut
peut être
être une
une expression
expression booléenne
booléenne simple
simple ou
ou une
une suite
suite composée
composée
d’expressions booléennes
d’expressions booléennes

La
La partie
partie Sinon
Sinon est
est optionnelle,
optionnelle, on
on peut
peut avoir
avoir la
la forme
forme simplifiée
simplifiée suivante:
suivante:
Si condition
Si condition alors
alors
instruction ou
instruction ou suite
suite d'instructions1
d'instructions1
Finsi
Finsi

48
Définitions Introduction générale
Notion d’algorithme

Tests: instructions conditionnelles

Si…Alors…Sinon : exemple

Algorithme ValeurAbsolue1
Rôle : affiche la valeur absolue d’un entier
Données : la valeur à calculer
Résultat : la valeur absolue
Variable x : réel
Début
Ecrire (" Entrez un réel : ")
Lire (x)
Si x < 0 alors
Ecrire ("la valeur absolue de ", x, "est:",-x)
Sinon
Ecrire ("la valeur absolue de ", x, "est:",x)
Finsi
Fin
49
Définitions Introduction générale
Notion d’algorithme

Tests: instructions conditionnelles

Si…Alors : exemple

Algorithme ValeurAbsolue2

Variable x, y : réel
Début
Ecrire (" Entrez un réel : " )
Lire (x)
y← x
Si x < 0 alors
y ← -x
Finsi
Ecrire ("la valeur absolue de ", x, "est:",y)
Fin

50
Définitions Introduction générale
Notion d’algorithme

Tests: instructions conditionnelles

Exercice (tests)
•• Écrire
Écrire un
un algorithme
algorithme quiqui demande
demande un un nombre
nombre entier
entier àà l'utilisateur,
l'utilisateur, puis
puis qui
qui teste
teste
et affiche
et affiche s'il
s'il est
est divisible
divisible par
par 77 ou
ou non
non

51
Définitions Introduction générale
Notion d’algorithme

Tests: instructions conditionnelles

Algorithme Divsible_par7

Variable n : entier
Début
Ecrire (" Entrez un entier : ")
Lire (n)
Si (n%7=0) alors
Ecrire (n," est divisible par 7")
Sinon
Ecrire (n," n'est pas divisible par 7")
Finsi
Fin

52
Définitions Introduction générale
Notion d’algorithme

Tests: instructions conditionnelles

Conditions composées
•• Une
Une condition
condition composée
composée estest une
une condition
condition formée
formée de
de plusieurs
plusieurs conditions
conditions
simples reliées
simples reliées par
par des
des opérateurs
opérateurs logiques:
logiques:
ET, OU,
ET, OU, OU
OU exclusif
exclusif (XOR)
(XOR) et
et NON
NON
Exemples ::
Exemples
•• xx compris
compris entre
entre 22 et
et 66 :: (x
(x >=
>= 2)
2) ET
ET (x
(x << =6)
=6)
•• nn divisible
divisible par
par 33 ou
ou par
par 22 :: (n%3=0)
(n%3=0) OU
OU (n%2=0)
(n%2=0)
•• deux
deux valeurs
valeurs et
et deux
deux seulement
seulement sontsont identiques
identiques parmi
parmi a,
a, bb et
et
cc :: (a=b)
(a=b) XOR
XOR (a=c)
(a=c) XOR
XOR (b=c)
(b=c)
•• L'évaluation
L'évaluation d'une
d'une condition
condition composée
composée se se fait
fait selon
selon des
des règles
règles présentées
présentées
généralement dans
généralement dans ce
ce qu'on
qu'on appelle
appelle tables
tables de
de vérité
vérité

53
Définitions Introduction générale
Notion d’algorithme

Tests: instructions conditionnelles


Tests imbriqués
•• Les
Les tests
tests peuvent
peuvent avoir
avoir un
un degré
degré quelconque
quelconque d'imbrications
d'imbrications

Si condition1 alors
Si condition2 alors
instructionsA
Sinon
instructionsB
Finsi
Sinon
Si condition3 alors
instructionsC
Finsi
Finsi

54
Définitions Introduction générale
Notion d’algorithme

Tests: instructions conditionnelles


Tests imbriqués : exemple 1

Variable n : entier
Début
Ecrire ("entrez un nombre : ")
Lire (n)
Si n < 0 alors
Ecrire ("Ce nombre est négatif")
Sinon
Si n = 0 alors Ecrire ("Ce nombre est nul")
Sinon Ecrire ("Ce nombre est positif")
Finsi
Finsi
Fin

55
Définitions Introduction générale
Notion d’algorithme

Tests: instructions conditionnelles

Tests imbriqués : exemple 2

Variable n : entier
Début
Ecrire ("entrez un nombre : ")
Lire (n)
Si n < 0 alors Ecrire ("Ce nombre est négatif")
Finsi
Si n = 0 alors Ecrire ("Ce nombre est nul")
Finsi
Si n > 0 alors Ecrire ("Ce nombre est positif")
Finsi
Fin

56
Définitions Introduction générale
Notion d’algorithme

Tests: instructions conditionnelles

Tests imbriqués : exemple 2

Remarque:

•• dans
dans l’exemple
l’exemple 22 on
on fait
fait trois
trois tests
tests systématiquement
systématiquement alors
alors que
que
dans l’exemple
dans l’exemple 1,
1, si
si le
le nombre
nombre est est négatif
négatif on
on ne
ne fait
fait qu'un
qu'un seul
seul test
test

Conseil :
•• utiliser
utiliser les
les tests
tests imbriqués
imbriqués pour
pour limiter
limiter le
le nombre
nombre de
de tests
tests et
et placer
placer
d'abord les
d'abord les conditions
conditions les
les plus
plus probables
probables

57
Définitions Introduction générale
Notion d’algorithme

Tests: instructions conditionnelles

Tests imbriqués : exercice


Le prix
Le prix de
de disques
disques compacts
compacts (CDs)
(CDs) dans
dans espace
espace de
de vente
vente varie
varie selon
selon le
le nombre
nombre àà
acheter:
acheter:
55 DH
DH l’unité
l’unité si
si le
le nombre
nombre dede CDs
CDs àà acheter
acheter est
est inférieur
inférieur àà 10,
10,
44 DH
DH l’unité
l’unité si
si le
le nombre
nombre dede CDS
CDS àà acheter
acheter est
est compris
compris entre
entre 1010 et
et
20 et
20 et 33 DH
DH l’unité
l’unité si
si le
le nombre
nombre de
de CDs
CDs àà acheter
acheter est
est au-delà
au-delà dede 20.
20.
 Écrivez
Écrivez un
un algorithme
algorithme quiqui demande
demande àà l’utilisateur
l’utilisateur le
le nombre
nombre de
de CDs
CDs àà acheter,
acheter, qui
qui
calcule et
calcule et affiche
affiche le
le prix
prix àà payer
payer

58
Définitions Introduction générale
Notion d’algorithme

Tests: instructions conditionnelles

Tests imbriqués : corrigé

Variables unites : entier


prix : réel
Début
Ecrire ("Nombre d’unités : ")
Lire (unites)
Si unites < 10 Alors
prix ← unites*5
Sinon Si unites < 20 alors prix ← unites*4
Sinon prix ← unites*3
Finsi
Finsi
Ecrire (“Le prix à payer est : ”, prix)
Fin
59
Définitions Introduction générale
Notion d’algorithme

Tests: instructions conditionnelles

Tests : remarques

 Un
Un sinon
sinon se
se rapporte
rapporte toujours
toujours au
au dernier
dernier si
si qui
qui n’a
n’a pas
pas encore
encore de
de sinon
sinon associé
associé
 IlIl est
est recommandé
recommandé de
de structurer
structurer le
le bloc
bloc associé
associé àà si
si et
et celui
celui associé
associé àà sinon
sinon

60
Définitions Introduction générale
Notion d’algorithme

Tests: instructions conditionnelles

Exemple:

Lire(a)
x ←1
Si (a>= 0) alors
si (a==0) alors x ←2
sinon x ←3
finsi
finsi
écrire(x)

 a: -1 0 1
affichage : 1 2 3
61
Définitions Introduction générale
Notion d’algorithme

Tests: instructions conditionnelles

L'instruction cas
 Lorsque
Lorsque l’on
l’on doit
doit comparer
comparer une
une même
même variable
variable avec
avec plusieurs
plusieurs valeurs,
valeurs, comme
comme par
par
exemple ::
exemple
si a=1
si a=1 alors
alors instruction1
instruction1
sinon si
sinon si a=2
a=2 alors
alors instruction2
instruction2
sinon si
sinon si a=4
a=4 alors
alors instruction4
instruction4
sinon .. .. ..
sinon
finsi
finsi
finsi
finsi
finsi
finsi

On
On peut
peut remplacer
remplacer cette
cette suite
suite de
de si
si par
par l’instruction
l’instruction cas
cas

62
Définitions Introduction générale
Notion d’algorithme

Tests: instructions conditionnelles


L'instruction cas
 Sa
Sa syntaxe
syntaxe en en pseudo-code
pseudo-code est est ::
cas où
cas où vv vautvaut
v1 :: action1
v1 action1
v2 :: action2
v2 action2
.. .. ..
vn :: actionn
vn actionn
autre :: action
autre action autre
autre
fincas
fincas
v1,. .. .. ,vn
v1,. ,vn sont
sont des
des constantes
constantes de de type
type scalaire
scalaire (entier,
(entier, naturel,
naturel, énuméré,
énuméré, ou
ou
caractère)
caractère)
action ii est
action est exécutée
exécutée si
si vv == vi
vi (on
(on quitte
quitte ensuite
ensuite l’instruction
l’instruction cas)
cas)

action autre
action autre est
est exécutée
exécutée si
si quelque
quelque soit
soit i,i, vv ≠≠ vi
vi

63
Définitions Introduction générale
Notion d’algorithme

Tests: instructions conditionnelles


L'instruction cas : exemple


Variables cc :: caractère
Variables caractère
Début
Début
Ecrire(«entrer un
Ecrire(«entrer un caractère»)
caractère»)
Lire (c)
Lire (c)
Si((c>=’A’) et
Si((c>=’A’) et (c<=‘Z’))
(c<=‘Z’)) alors
alors
cas où
cas où cc vaut
vaut
‘A’,’E’, ‘I’,
‘A’,’E’, ‘I’, ‘O’,
‘O’, ‘U’,
‘U’, ‘Y’
‘Y’ :: ecrire(c,
ecrire(c, “est
“est une
une voyelle
voyelle majuscule”)
majuscule”)
autre :: ecrire(c,
autre ecrire(c, ““ est
est une
une consonne
consonne majuscule”)
majuscule”)
fincas
fincas
sinon ecrire(c,
sinon ecrire(c, “n’est
“n’est pas
pas une
une lettre
lettre majuscule”)
majuscule”)
Finsi
Finsi
Fin
Fin

64
Définitions Introduction générale
Notion d’algorithme

Instructions itératives : les boucles

Introduction
•• Les
Les boucles
boucles servent
servent àà répéter
répéter l'exécution
l'exécution d'un
d'un groupe
groupe d'instructions
d'instructions un
un certain
certain
nombre de
nombre de fois
fois
•• On
On distingue
distingue trois
trois sortes
sortes de
de boucles
boucles en
en langages
langages de
de programmation
programmation ::
 Les
Les boucles
boucles tant
tant que
que :: on
on yy répète
répète des
des instructions
instructions tant
tant qu'une
qu'une certaine
certaine
condition est
condition est réalisée
réalisée
 Les
Les boucles
boucles jusqu'à
jusqu'à :: on
on yy répète
répète des
des instructions
instructions jusqu'à
jusqu'à ce
ce qu'une
qu'une certaine
certaine
condition soit
condition soit réalisée
réalisée
 Les
Les boucles
boucles pour
pour ou
ou avec
avec compteur
compteur :: on
on yy répète
répète des
des instructions
instructions enen faisant
faisant
évoluer un
évoluer un compteur
compteur (variable
(variable particulière)
particulière) entre
entre une
une valeur
valeur initiale
initiale et
et une
une
valeur finale
valeur finale

65
Définitions Introduction générale
Notion d’algorithme

Instructions itératives : les boucles


La boucle Tant que

TantQue (condition)
instructions
FinTantQue

la condition
la condition (dite
(dite condition
condition de
de contrôle
contrôle de
de la
la boucle)
boucle) est
est évaluée
évaluée avant
avant chaque
chaque
itération
itération
 si
si la
la condition
condition est
est vraie,
vraie, on
on exécute
exécute lesles instructions
instructions (corps
(corps de
de la
la boucle),
boucle), puis,
puis, on
on
retourne tester
retourne tester la
la condition.
condition. Si
Si elle
elle est
est encore
encore vraie,
vraie, on
on répète
répète l'exécution,
l'exécution, …

 si
si la
la condition
condition est
est fausse,
fausse, on
on sort
sort de
de la
la boucle
boucle et
et on
on exécute
exécute l'instruction
l'instruction qui
qui est
est
après FinTantQue
après FinTantQue
IlIl est
est possible
possible que
que les
les instructions
instructions àà répéter
répéter ne
ne soient
soient jamais
jamais exécutées.
exécutées.
66
Définitions Introduction générale
Notion d’algorithme

Instructions itératives : les boucles


Boucle Tant que : exemple1

 Le
Le nombre
nombre d'itérations
d'itérations dansdans une
une boucle
boucle TantQue
TantQue n'est
n'est pas
pas connu
connu au
au moment
moment
d'entrée dans
d'entrée dans lala boucle.
boucle. IlIl dépend
dépend dede l'évolution
l'évolution de
de la
la valeur
valeur de
de la
la condition
condition
 Une
Une des
des instructions
instructions du
du corps
corps de
de la
la boucle
boucle doit
doit absolument
absolument changer
changer la
la valeur
valeur de
de la
la
condition de
condition de vrai
vrai àà faux
faux (après
(après un un certain
certain nombre
nombre d'itérations),
d'itérations), sinon
sinon le
le programme
programme
va tourner
va tourner indéfiniment
indéfiniment

Attention aux boucles infinies

Exemple de boucle infinie Correction


i 1 i 1
Tant Que i>0 Tant Que i<20
i i+1 i i+1
Fin Tant Que Fin Tant Que

67
Définitions Introduction générale
Notion d’algorithme

Instructions itératives : les boucles


Boucle Tant que : exemple1

 Contrôle
Contrôle de de saisie
saisie d'une
d'une lettre
lettre alphabétique
alphabétique jusqu’à
jusqu’à ce
ce que
que le
le caractère
caractère entré
entré soit
soit
valable
valable
……
Variable CC :: caractère
Variable caractère
Debut
Debut
Écrire ("
Écrire (" Entrez
Entrez une
une lettre
lettre majuscule
majuscule ")
")
Lire (C)
Lire (C)
TantQue (C
TantQue (C << 'A'
'A' ou
ou CC >> 'Z')
'Z')
Ecrire ("Saisie
Ecrire ("Saisie erronée.
erronée. Recommencez")
Recommencez")
Lire (C)
Lire (C)
FinTantQue
FinTantQue
Écrire ("Saisie
Écrire ("Saisie valable")
valable")
Fin
Fin

68
Définitions Introduction générale
Notion d’algorithme

Instructions itératives : les boucles

Boucle Tant que : exemple2

On veut
On veut afficher
afficher tous
tous les
les nombres
nombres inferieurs
inferieurs àà 1000.
1000.

69
Définitions Introduction générale
Notion d’algorithme

Instructions itératives : les boucles

Boucle Tant que : exemple3

On veut
On veut afficher
afficher tous
tous les
les nombres
nombres divisibles
divisibles par
par 77 et
et inférieurs
inférieurs àà 10000.
10000.

70
Définitions Introduction générale
Notion d’algorithme

Instructions itératives : les boucles


La boucle Répéter … jusqu’à …

Répéter
instructions
Jusqu'à condition

 Condition
Condition est
est évaluée
évaluée après
après chaque
chaque itération
itération

 les
les instructions
instructions entre
entre Répéter
Répéter et
et jusqu’à
jusqu’à sont
sont exécutées
exécutées auau moins
moins une
une fois
fois et
et leur
leur
exécution est
exécution est répétée
répétée jusqu’à
jusqu’à ce
ce que
que la
la condition
condition soit
soit vraie
vraie (tant
(tant qu'elle
qu'elle est
est fausse)
fausse)

71
Définitions Introduction générale
Notion d’algorithme

Instructions itératives : les boucles

Boucle Répéter jusqu’à : exemple


 Un
Un algorithme
algorithme qui
qui détermine
détermine le
le premier
premier nombre
nombre entier
entier N
N tel
tel que
que la
la somme
somme de
de 11 àà
NN dépasse
dépasse strictement
strictement 100
100 (version
(version avec
avec répéter
répéter jusqu'à)
jusqu'à)

72
Définitions Introduction générale
Notion d’algorithme

Instructions itératives : les boucles

Différences entre les boucles Tant que et Répéter jusqu'à :


 la
la séquence
séquence d'instructions
d'instructions est
est exécutée
exécutée au
au moins
moins une
une fois
fois dans
dans la
la boucle
boucle Répéter
Répéter
jusqu'à, alors
jusqu'à, alors qu'elle
qu'elle peut
peut ne
ne pas
pas être
être exécutée
exécutée dans
dans le
le cas
cas du
du Tant
Tant que.
que.

 la
la séquence
séquence d'instructions
d'instructions est
est exécutée
exécutée si
si la
la condition
condition est
est vraie
vraie pour
pour Tant
Tant que
que et
et si
si
la condition
la condition est
est fausse
fausse pour
pour Répéter
Répéter jusqu'à.
jusqu'à.

Dans
Dans les
les deux
deux cas,
cas, la
la séquence
séquence d'instructions
d'instructions doit
doit nécessairement
nécessairement faire
faire évoluer
évoluer la
la
condition, faute
condition, faute de
de quoi
quoi on
on obtient
obtient une
une boucle
boucle infinie
infinie

73
Définitions Introduction générale
Notion d’algorithme

Instructions itératives : les boucles

La boucle Pour
Pour compteur
Pour compteur allant
allant de
de initiale
initiale àà finale
finale par
par pas
pas valeur
valeur du
du pas
pas
instructions
instructions
FinPour
FinPour

74
Définitions Introduction générale
Notion d’algorithme

Instructions itératives : les boucles

Les boucles Pour

Remarque
Remarque :: le
le nombre
nombre d'itérations
d'itérations dans
dans une
une boucle
boucle Pour
Pour est
est connu
connu avant
avant le
le début
début
de la
de la boucle
boucle

 Compteur
Compteur est
est une
une variable
variable de
de type
type entier
entier (ou
(ou caractère).
caractère). Elle
Elle doit
doit être
être déclarée
déclarée

 Pas
Pas est
est unun entier
entier qui
qui peut
peut être
être positif
positif ou
ou négatif.
négatif. Pas
Pas peut
peut ne
ne pas
pas être
être mentionné,
mentionné,
car par
car par défaut
défaut sa
sa valeur
valeur est
est égal
égal àà 1.
1. Dans
Dans ce
ce cas,
cas, le
le nombre
nombre d'itérations
d'itérations est
est égal
égal àà
finale -- initiale+
finale initiale+ 11

 Initiale
Initiale et
et finale
finale peuvent
peuvent être
être des
des valeurs,
valeurs, des
des variables
variables définies
définies avant
avant le
le début
début de
de
la boucle
la boucle ou
ou des
des expressions
expressions de
de même
même type
type que
que compteur
compteur

75
Définitions Introduction générale
Notion d’algorithme

Instructions itératives : les boucles

Déroulement des boucles Pour

1) La
1) La valeur
valeur initiale
initiale est
est affectée
affectée àà la
la variable
variable compteur
compteur
2) On
2) On compare
compare la la valeur
valeur du
du compteur
compteur et et la
la valeur
valeur de
de finale
finale ::

a) Si
a) Si la
la valeur
valeur du
du compteur
compteur estest >> àà la
la valeur
valeur finale
finale dans
dans le
le cas
cas d'un
d'un pas
pas positif
positif (ou
(ou
si compteur
si compteur est
est << àà finale
finale pour
pour un un pas
pas négatif),
négatif), on
on sort
sort de
de la
la boucle
boucle et
et on
on
continue avec
continue avec l'instruction
l'instruction qui
qui suit
suit FinPour
FinPour
b) Si
b) Si compteur
compteur estest <=
<= àà finale
finale dans
dans le
le cas
cas d'un
d'un pas
pas positif
positif (ou
(ou si
si compteur
compteur est
est >=
>= àà
finale pour
finale pour un
un pas
pas négatif),
négatif), instructions
instructions seront
seront exécutées
exécutées
Ensuite,
Ensuite, la
la valeur
valeur dudu compteur
compteur est est incrémentée
incrémentée de de la
la valeur
valeur du
du pas
pas si
si pas
pas est
est
positif (ou
positif (ou décrémenté
décrémenté si si pas
pas est
est négatif)
négatif)
On
On recommence
recommence l'étape
l'étape 22 :: LaLa comparaison
comparaison entre
entre compteur
compteur et et finale
finale est
est de
de
nouveau effectuée,
nouveau effectuée, et et ainsi
ainsi de
de suite
suite … …

76
Définitions Introduction générale
Notion d’algorithme

Instructions itératives : les boucles

Boucle Pour : exemple 1 (forme 1)


Calcul de
Calcul de xx àà la
la puissance
puissance nn où
où xx est
est un
un réel
réel non
non nul
nul et
et nn un
un entier
entier positif
positif ou
ou nul
nul

77
Définitions Introduction générale
Notion d’algorithme

Instructions itératives : les boucles

Boucle Pour : exemple 1 (forme 2)


Calcul de
Calcul de xx àà la
la puissance
puissance nn où
où xx est
est un
un réel
réel non
non nul
nul et
et nn un
un entier
entier
positif ou
positif ou nul
nul (forme
(forme 22 avec
avec un
un pas
pas négatif)
négatif)

78
Définitions Introduction générale
Notion d’algorithme

Instructions itératives : les boucles

Boucle Pour : remarques


 IlIl faut
faut éviter
éviter de
de modifier
modifier la la valeur
valeur du
du compteur
compteur (et(et de
de finale)
finale) àà l'intérieur
l'intérieur de
de la
la
boucle. En
boucle. En effet,
effet, une
une telle
telle action
action ::
•• perturbe
perturbe lele nombre
nombre d'itérations
d'itérations prévu
prévu par
par la
la boucle
boucle Pour
Pour
•• rend
rend difficile
difficile la
la lecture
lecture dede l'algorithme
l'algorithme
•• présente
présente lele risque
risque d'aboutir
d'aboutir àà une
une boucle
boucle infinie
infinie

Exemple :: Pour
Exemple Pour ii allant
allant dede 11 àà 55
ii ←i
←i -1
-1
écrire(" ii == ",
écrire(" ", i)i)
Finpour
Finpour

79
Définitions Introduction générale
Notion d’algorithme

Instructions itératives : les boucles

Lien entre Pour et TantQue

 La
La boucle
boucle Pour
Pour est
est un
un cas
cas particulier
particulier de
de Tant
Tant Que
Que (cas
(cas où
où le
le nombre
nombre d'itérations
d'itérations
est connu
est connu et
et fixé)
fixé) .. Tout
Tout ce
ce qu'on
qu'on peut
peut écrire
écrire avec
avec Pour
Pour peut
peut être
être remplacé
remplacé avec
avec
TantQue (la
TantQue (la réciproque
réciproque estest fausse)
fausse)

Pour compteur allant de initiale à finale par pas valeur du pas


instructions
FinPour

peut être remplacé par : compteur ← initiale


TantQue compteur <= finale
(cas d'un pas positif)
instructions
compteur ← compteur+pas
FinTantQue

80
Définitions Introduction générale
Notion d’algorithme

Instructions itératives : les boucles

Lien entre Pour et TantQue: exemple 1


 Calcul
Calcul de
de xx àà la
la puissance
puissance nn où
où xx est
est un
un réel
réel non
non nul
nul et
et nn un
un entier
entier positif
positif ou
ou nul
nul
(forme avec
(forme avec TantQue)
TantQue)

81
Définitions Introduction générale
Notion d’algorithme

Instructions itératives : les boucles

Boucles imbriquées
Les instructions
Les instructions d'une
d'une boucle
boucle peuvent
peuvent être
être des
des instructions
instructions itératives.
itératives. Dans
Dans ce
ce cas,
cas,
on aboutit
on aboutit àà des
des boucles
boucles imbriquées
imbriquées

Exemple:
Exécution
Pour i allant de 1 à 5
OK
Pour j allant de 1 à i
OOk
écrire("O" )
OOOK
FinPour
OOOOK
écrire("K")
OOOOOK
FinPour

82
Définitions Introduction générale
Notion d’algorithme

Instructions itératives : les boucles

Choix d'un type de boucle


 Si
Si on
on peut
peut déterminer
déterminer le le nombre
nombre d'itérations
d'itérations avant
avant l'exécution
l'exécution de
de la
la boucle,
boucle, ilil est
est
plus naturel
plus naturel d'utiliser
d'utiliser la
la boucle
boucle Pour
Pour
 S'il
S'il n'est
n'est pas
pas possible
possible de
de connaître
connaître le
le nombre
nombre d'itérations
d'itérations avant
avant l'exécution
l'exécution de
de la
la
boucle, on
boucle, on fera
fera appel
appel àà l'une
l'une des
des boucles
boucles TantQue
TantQue ou
ou répéter
répéter jusqu'à
jusqu'à
 Pour
Pour le
le choix
choix entre
entre TantQue
TantQue et
et jusqu'à
jusqu'à ::
•• Si
Si on
on doit
doit tester
tester la
la condition
condition de
de contrôle
contrôle avant
avant de
de commencer
commencer les
les instructions
instructions
de la
de la boucle,
boucle, on
on utilisera
utilisera TantQue
TantQue
•• Si
Si la
la valeur
valeur de
de la
la condition
condition de
de contrôle
contrôle dépend
dépend d'une
d'une première
première exécution
exécution des
des
instructions de
instructions de la
la boucle,
boucle, on
on utilisera
utilisera répéter
répéter jusqu'à
jusqu'à

83
Définitions Les structures de données statiques
Notion d’algorithme

Tableaux à une dimension

Introduction
 UnUn ensemble
ensemble de de valeurs
valeurs portant
portant ainsi
ainsi le
le même
même nomnom de de variable
variable et
et repérées
repérées par
par un
un
nombre, s’appelle
nombre, s’appelle un
un tableau,
tableau, et
et le
le nombre
nombre quiqui sert
sert àà repérer
repérer chaque
chaque valeur
valeur s’appelle
s’appelle
un indice.
un indice.
Un
Un tableau
tableau dede taille
taille nn est
est une
une structure
structure très
très simple
simple constituée
constituée dede nn emplacements
emplacements
consécutifs en
consécutifs en mémoire.
mémoire.
IlIl est
est donc
donc possible
possible d'accéder
d'accéder àà un
un élément
élément d'un
d'un tableau
tableau enen temps
temps constant
constant pourvu
pourvu
que l'on
que l'on connaisse
connaisse sa sa position
position (ou
(ou indice).
indice).
Un
Un tableau
tableau est
est donc
donc une
une structure
structure très
très simple
simple etet très
très efficace.
efficace.

84
Définitions Les structures de données statiques
Notion d’algorithme

Tableaux à une dimension

Déclaration

Tableau
Tableau identificateur
identificateur [taille
[taille maximale]
maximale] :: type
type

Exemple:
Exemple:
Tableau Note[25]
Tableau Note[25] :: réels
réels

Cette
Cette déclaration
déclaration réserve
réserve l’emplacement
l’emplacement de
de 25
25 éléments
éléments de
de type
type réels.
réels.
 Chaque
Chaque élément
élément est
est repéré
repéré par
par son
son indice
indice (position
(position de
de l’élément
l’élément dans
dans le
le tableau).
tableau).
Dans la
Dans la plus
plus part
part des
des langages
langages de
de programmation
programmation (en (en particulier
particulier en
en langage
langage C),
C), la
la
première position
première position porte
porte le
le numéro
numéro 0.
0.
Dans
Dans notre
notre exemple,
exemple, les
les indices
indices vont
vont de
de 00 àà 24.
24. Le
Le premier
premier élément
élément du
du tableau
tableau sera
sera
désigné par
désigné par Note[0],
Note[0], le
le deuxième
deuxième par par Note[1],
Note[1], lele dernier
dernier par
par Note[24].
Note[24]. L’utilisation
L’utilisation de
de
Note[25] déclenchera
Note[25] déclenchera une
une erreur.
erreur.

85
Définitions Les structures de données statiques
Notion d’algorithme

Tableaux à une dimension

Remarques:

 On
On peut
peut créer
créer des
des tableaux
tableaux contenant
contenant des
des variables
variables de
de tous
tous types
types :: tableaux
tableaux de
de
numériques, tableaux
numériques, tableaux dede caractères,
caractères, tableaux
tableaux de
de booléens,
booléens, tableaux
tableaux dede tout
tout ce
ce qui
qui
existe dans
existe dans un
un langage
langage donné
donné comme
comme type
type de
de variables.
variables. Par
Par contre,
contre, on
on ne
ne peut
peut pas
pas
faire un
faire un mixage
mixage dede types
types différents
différents de
de valeurs
valeurs au
au sein
sein d’un
d’un même
même tableau.
tableau.

• L’énorme
L’énorme avantage
avantage des
des tableaux,
tableaux, c’est
c’est qu’on
qu’on va
va pouvoir
pouvoir les
les traiter
traiter en
en faisant
faisant des
des
boucles.
boucles.

86
Définitions Les structures de données statiques
Notion d’algorithme

Tableaux à une dimension


Exemple:
Pour
Pour effectuer
effectuer le
le calcul
calcul de
de moyenne
moyenne des
des notes
notes de
de la
la classe
classe de
de 25
25 étudiants,
étudiants,

87
Définitions Les structures de données statiques
Notion d’algorithme

Tableaux à une dimension


Exemple : Amélioration

88
Définitions Les structures de données statiques
Notion d’algorithme

Tableaux à une dimension

Exemple : Remarque
 AA la
la compilation
compilation lala constante
constante Max
Max sera
sera remplacée
remplacée par par le
le nombre
nombre 200.
200.
 Ici
Ici le
le nombre
nombre de de note
note n’est
n’est pas
pas fixé
fixé àà 25,
25, mais
mais ilil est
est seulement
seulement inférieur
inférieur àà 200.
200.
Même si
Même si on
on donne
donne àà nn la
la valeur
valeur 10,
10, l’ordinateur
l’ordinateur aa réservé
réservé quand
quand même
même lala place
place
pour 200
pour 200 variables
variables de
de types
types réels.
réels.

89
Définitions Les structures de données statiques
Notion d’algorithme

Tableaux à une dimension

Les caractéristiques de l’indice d’un tableau


L’indice qui
L’indice qui sert
sert àà parcourir
parcourir les
les éléments
éléments d’un
d’un tableau
tableau peut
peut être
être exprimé
exprimé directement
directement
comme un
comme un nombre
nombre ou ou une
une variable.
variable.
La valeur
La valeur d’un
d’un indice
indice doit
doit toujours
toujours ::

 être
être égale
égale au
au moins
moins àà 0,nous
0,nous avons
avons choisi
choisi ici
ici de
de commencer
commencer lala numérotation
numérotation des
des
indices àà zéro,
indices zéro, comme
comme c’est
c’est le
le cas
cas en
en langage
langage C. C. Donc
Donc attention,
attention, Tab[2]
Tab[2] est
est le
le
troisième élément
troisième élément du
du tableau
tableau Tab
Tab !!
 être
être un
un nombre
nombre entier.
entier. Quel
Quel que
que soit
soit le
le langage,
langage, l’élément
l’élément Tab[3,1416]
Tab[3,1416] n’existe
n’existe
jamais.
jamais.
 être
être inférieure
inférieure ou
ou égale
égale au
au nombre
nombre d’éléments
d’éléments du
du tableau
tableau moins
moins 1.
1. Si
Si le
le tableau
tableau
Tab aa été
Tab été déclaré
déclaré comme
comme ayant
ayant 10
10 éléments,
éléments, la
la présence
présence dans
dans une
une ligne,
ligne, sous
sous une
une
forme ou
forme ou sous
sous une
une autre,
autre, de
de Tab[10]
Tab[10] déclenchera
déclenchera automatiquement
automatiquement une une erreur.
erreur.

90
Définitions Les structures de données statiques
Notion d’algorithme

Tableaux à une dimension

Les caractéristiques de l’indice d’un tableau: Remarques

1. La
1. La déclaration
déclaration ::
tableau Tab[10]
tableau Tab[10] :: entier
entier

créera un
créera un tableau
tableau Tab
Tab de
de 10
10 éléments,
éléments, le
le plus
plus petit
petit indice
indice étant
étant 00 et
et le
le plus
plus grand
grand
indice est
indice est 9.
9.

2. Ne
2. Ne pas
pas confondre
confondre l’indice
l’indice d’un
d’un élément
élément d’un
d’un tableau
tableau avec
avec le le contenu
contenu de
de cet
cet
élément. La
élément. La première
première maison
maison dede la
la rue
rue n’a
n’a pas
pas forcément
forcément un un habitant,
habitant, et
et la
la dixième
dixième
maison n’a
maison n’a pas
pas dix
dix habitants.
habitants. En
En notation
notation algorithmique,
algorithmique, ilil n’y
n’y aa aucun
aucun rapport
rapport entre
entre
ii et
et Tab[i].
Tab[i].

91
Définitions Les structures de données statiques
Notion d’algorithme

Tableaux à une dimension

Exercices:
1. Ecrire
1. Ecrire un
un algorithme
algorithme qui
qui lit
lit la
la taille
taille nn d’un
d’un tableau
tableau T,
T, ilil saisi
saisi les
les nn éléments
éléments du
du
tableau T,
tableau T, ilil effectue
effectue la
la somme
somme des des nn éléments
éléments dudu tableau
tableau et et ilil affiche
affiche cette
cette somme.
somme.

2. Ecrivez
2. Ecrivez un
un algorithme
algorithme qui qui lit
lit la
la taille
taille nn de
de deux
deux tableaux
tableaux T1
T1 et
et T2,
T2, ilil effectue
effectue la
la
lecture de
lecture de ces
ces deux
deux tableaux,
tableaux, ensuite
ensuite ilil effectue
effectue la
la somme
somme des
des tableaux
tableaux T1 T1 et
et T2
T2
dans un
dans un tableau
tableau TT et
et ilil affiche
affiche lele tableau
tableau T. T.
Exemple ::
Exemple
pour n=8
pour n=8
T1=[4,5,8,-2,5,6,0,-5],
T1=[4,5,8,-2,5,6,0,-5],
T2=[1,-5,-7,0,-1, 3,-8,9],
T2=[1,-5,-7,0,-1, 3,-8,9],
le tableau
le tableau TT obtenu
obtenu est
est :: T=[5,0,1,-2,4,9,-8,4],
T=[5,0,1,-2,4,9,-8,4],

92
Définitions Les structures de données statiques
Notion d’algorithme

Tableaux à une dimension

Exercices:

3. Ecrire
3. Ecrire un
un algorithme
algorithme qui qui permet
permet àà l’utilisateur
l’utilisateur de
de saisir
saisir les
les notes
notes d'une
d'une classe,
classe,
ensuite ilil renvoie
ensuite renvoie le
le nombre
nombre de
de ces
ces notes
notes supérieures
supérieures àà lala moyenne
moyenne dede la
la classe.
classe.
4. Ecrire
4. Ecrire un
un algorithme
algorithme qui
qui permet
permet àà l’utilisateur
l’utilisateur de
de saisir
saisir un
un tableau
tableau de
de taille
taille nn et
et
d’afficher le
d’afficher le plus
plus grand
grand et
et le
le plus
plus petit
petit élément
élément dudu tableau.
tableau.

93
Définitions Les structures de données statiques
Notion d’algorithme

Tableaux à deux dimensions

Déclaration
Tableau
Tableau identificateur
identificateur [taille
[taille maximale]
maximale] [taille
[taille maximale]:
maximale]: type
type

Exemple:
Exemple:
tableau matrice[10][10]
tableau matrice[10][10] :: entier
entier

Cette
Cette déclaration
déclaration signifie
signifie :: réserver
réserver un
un espace
espace dede mémoire
mémoire pour
pour 10
10 xx 10
10 entiers,
entiers, et
et
quand j’aurai
quand j’aurai besoin
besoin de
de l’une
l’une dede ces
ces valeurs,
valeurs, je
je les
les repèrerai
repèrerai par
par deux
deux indices.
indices.

matrice[i][j]
matrice[i][j] est
est l’élément
l’élément de de la
la matrice
matrice qui
qui se
se trouve
trouve àà l’intersection
l’intersection de de la
la ligne
ligne ii et
et
la colonne
la colonne j.j.
matrice[2][3]
matrice[2][3] 55
Cette
Cette instruction
instruction signifie
signifie :: mettre
mettre àà l’emplacement
l’emplacement quiqui se
se trouve
trouve àà l’intersection
l’intersection de de
la deuxième
la deuxième ligne
ligne avec
avec la
la troisième
troisième colonne
colonne la
la valeur
valeur 5.
5.

94
Définitions Les structures de données statiques
Notion d’algorithme

Tableaux à deux dimensions


Initialisation de matrice

Pour initialiser
Pour initialiser uneune matrice
matrice on on peut
peut utiliser
utiliser par par exemple
exemple les
les instructions
instructions suivantes
suivantes ::
T1[3][3] == {{ {{ 1,
T1[3][3] 1, 2,
2, 33 },}, {{ 4,
4, 5,
5, 66 },}, {{ 7,
7, 8,
8, 99 }} };};
T2[3][3] == {{ 1,
T2[3][3] 1, 2,
2, 3,
3, 4,
4, 5, 5, 6,
6, 7, 8, 9 };
T3[4][4] == {{ {{ 1,
T3[4][4] 1, 2,
2, 33 },}, {{ 4,
4, 5,
5, 66 },}, {{ 7,
7, 8,
8, 99 }} };};
T4[4][4] == {{ 1,
T4[4][4] 1, 2,
2, 3,
3, 4,
4, 5, 5, 6,
6, 7, 8, 9 };
Ces instructions
Ces instructions initialisent
initialisent quatrequatre tableaux
tableaux de de la
la manière
manière suivantes
suivantes ::

95
Définitions Les structures de données statiques
Notion d’algorithme

Tableaux à deux dimensions


Lecture et écriture d’une matrice
Lecture d’une
Lecture d’une matrice
matrice ::

variable Tableau matrice[10][10],i,j,n,k : entiers


début
écrire("donner le nombre de ligne de la matrice :")
lire(n)
écrire("donner le nombre de colonne de la matrice :")
lire(k)
pour i allant de 1 à n faire
écrire("donner les éléments de la ",i," ligne:")
pour j allant de 1 à k faire
écrire("donner l’ éléments de la matrice M[ ",i," ][",j, ,"]")
lire(matrice[i][j])
finpour
fipour
fin
96
Définitions Les structures de données statiques
Notion d’algorithme

Tableaux à deux dimensions


Lecture et écriture d’une matrice
Ecriture d’une
Ecriture d’une matrice
matrice ::

97
Définitions Les structures de données statiques
Notion d’algorithme

Tableaux à deux dimensions


Exemples d’utilisation d’une matrice
Somme de
Somme de deux
deux matrices:
matrices:
Ecrire un
Ecrire un algorithme
algorithme quiqui demande
demande àà l’utilisateur
l’utilisateur de
de calculer
calculer la
la matrice
matrice CC somme
somme dede
deux matrices
deux matrices AA et
et B.
B.
C=A+B
C=A+B
Produit de
Produit de deux
deux matrices:
matrices:
Ecrire un
Ecrire un algorithme
algorithme quiqui demande
demande àà l’utilisateur
l’utilisateur de
de calculer
calculer la
la matrice
matrice DD Produit
Produit de
de
deux matrices
deux matrices AA et
et B.
B.
D=A*B
D=A*B

98