Cours Algorithmique
Cours Algorithmique
Cours Algorithmique
1
Objectif et plan du cours
Objectif :
2
Objectif et plan du cours
Plan du cours
3
Objectif et plan du cours
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:
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
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
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
Lamia Benameur Introduction à l’informatique
Notion de variable, affectation, lecture et écriture
Instructions 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
45
Définitions Introduction générale
Notion d’algorithme
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
47
Définitions Introduction générale
Notion d’algorithme
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
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
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
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
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
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
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
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
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
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
58
Définitions Introduction générale
Notion d’algorithme
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
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
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
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
64
Définitions Introduction générale
Notion d’algorithme
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
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
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
67
Définitions Introduction générale
Notion d’algorithme
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
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
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
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
72
Définitions Introduction générale
Notion d’algorithme
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
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
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
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
77
Définitions Introduction générale
Notion d’algorithme
78
Définitions Introduction générale
Notion d’algorithme
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
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)
80
Définitions Introduction générale
Notion d’algorithme
81
Définitions Introduction générale
Notion d’algorithme
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
83
Définitions Les structures de données statiques
Notion d’algorithme
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
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
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
87
Définitions Les structures de données statiques
Notion d’algorithme
88
Définitions Les structures de données statiques
Notion d’algorithme
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
ê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
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
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
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
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
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
97
Définitions Les structures de données statiques
Notion d’algorithme
98