Académique Documents
Professionnel Documents
Culture Documents
Les Tableaux
F. Chaieb Chakchouk
faten.chaieb@gnet.tn
Introduction
Problme
Ecrire un algorithme qui permet de lire les notes de 100 tudiants
et dafficher les notes des 10 premiers dentre eux.
Introduction
ALGORITHME tudiant
Var n1, n2, .., n100 : rel;
Dbut
Lire (n1);
Lire (n2) ;
Lire (n100);
Ecrire (Voici les notes des dix premiers tudiants) ;
Ecrire (n1);
Ecrire (n2);
..
Ecrire (n10);
Fi t
Fin
tudiant
di t
3
Introduction
Ncessit d
dutiliser
utiliser 100 variables de mme type pour saisir les notes
de tous les tudiants,
ce q
qui augmente
g
la taille de lalgorithme
g
Tableau mono-dimensionnel
mono dimensionnel ou vecteur
Lorsque les donnes sont nombreuses et de mme type, afin
d'viter de multiplier le nombre des variables, on les regroupe dans
un tableau
Dfi i i
Dfinition
Un tableau mono-dimensionnel ou vecteur est une manire de
ranger des
d lments
l
ou des
d valeurs
l
d mme type, ill regroupe ces
de
lments dans une structure fixe et permet daccder chaque
lment par llintermdiaire
intermdiaire de son rang ou indice.
Tableau mono-dimensionnel
mono dimensionnel ou vecteur
Le type d'un tableau prcise le type (commun) de tous les
lments
lments.
12
10
15
7.5
20
3.5
17
Nom tableau
N
bl
Ex. Notes
8
7
4
8
IIndice
di tableau
bl
Ex. 0..9
Syntaxe :
tableau [borne_inf .. borne_sup] de type_des_lments
6
9
Type tableau
T
bl
Ex. rel
Exemple :
45
54
-56
22
134
49
12
90
-26
`
`
x Tab[0]
[ ]
La variable
L
bl x prend
d la
l valeur
l
d
du premier lment
l
d
du tableau,
bl
c'est
' d
dire
: 45
Tab[6] 43
Cette instruction a modifie le contenu du tableau
Algorithme Parcours
Var
i : entier,
T : tableau
bl
[0..n-1]
[0 1] d
de type_lment,
l
Dbut
Fin
Cas
T non ordonn
11
Cas
T ordonn
i = n,
ii+1
val T[0..n-1]
llalgorithme
algorithme est termin
et val T.
12
T[i] = val,
val T[0..n-1],
lalgorithme sarrte
et val est trouv
T[i] val,
val T[0..i],
13
ALGORITHME RechercheSeq
Var
T : tableau [0..n-1] dentiers
val, i : entiers
Trouve : boolen
Dbut
i0;
trouve faux
f
;
tantque (i <= n-1) ET (non Trouve) faire
si T[i] = val alors
T
Trouve
vrai;
i
sinon
ii+1;
finsi
Fintantque
Fin
ALGORITHME RechercheSeq
Var
T : tableau [0..n
[0..n-1]
1] dentiers
d entiers
elem, i: entier
Trouve: boolen
Dbut
i 0;
tantque (T[i] elem) ET (i < n-1) faire
ii+1;
fintantque
Trouv (T[i] = elem) ;
Fin
14
i = n,
i <= n-1,
on a ttrouv li
lindice
di i ttell que
T[0..i-1] < elem <= T[i..n-1],
ii+1
T[i] < elem,
T[0..i] < elem
16
ALGORITHME RechercheSeqTrie
Var
T : tableau [0..n-1] de entier
i, elem : entiers
T
Trouve
: boolen
b l
Dbut
si elem > T[n-1] alors
T
Trouve
faux
f
sinon
i0
tantque T[i] < elem faire
ii+1
fintantque
Trouv (T[i] = elem)
finsi
Fin
17
18
T bl u deux
Tableau
d u dim
dimensions
n i n :m
matrice
tri
Nbre de
lignes
Nbre de colonnes
Rcapitulons .
Dclaration dun tableau mono-dimensionnel
Var
V
Tab : tableau [0 .. NMAX] de type_des_lments
OU
Type
Tab : tableau [0 .. NMAX] de type_des_lments
Var
T : Tab
20
Rcapitulons .
Remarques
1.
2
2.
3.
21
Rcapitulons .
Gestion dun tableau
Initialisation dun
d un tableau
Algorithme InitTableau
Algorithme InitTableau
Const
Const
(N 100): entier
Var
i : entier,
entier
Tab : tableau [0..N-1] dentier
Dbut
Pour i 0 N
N-11 faire
Tab[i] 0
FinPour
Fin
(N ,M 100): entier
Var
i j : entier
i,j
entier,
Tab : tableau [0..N-1, 0..M-1] dentier
Dbut
Pour i 0 N
N-11 faire
Pour j 0 M-1 faire
Tab[i,j] 0
FinPour
FinPour
Fin
22
Rcapitulons .
Gestion dun
d un tableau
Saisie des lments dun tableau :
Var
i ,nb : entier,
Tab : tableau [0..N-1] dentier
Dbut
nb 0
i0
Ecrire("Entrer la liste des notes (-1 pour terminer ) : ")
TantQue (nb<> -1) Faire
Lire(nb)
Si nb <>-1 alors
Tab[i] nb
Fin Si
FinTantQue
nbnotes i
Fin
23
Rcapitulons .
Gestion dun
d un tableau
Exemple (suite) :
- Le surdimensionnement du tableau : une seule partie contiendra des donnes
- Contenu des autres cases doit tre ignor
- Solution : utiliser une variable qui indique le nombre dlments contenus dans le tableau
Var
nbnotes ,nb : entier,
Tab : tableau [0..N-1] dentier
Dbut
nb 0
nbnotes 0
E i ("E t la
Ecrire("Entrer
l liste
li t des
d notes
t (-1
( 1 pour tterminer
i
) : ")
TantQue (nb<> -1) et
TantQue (nb<> -1) Faire
nbnotes < N Faire
Lire(nb)
Si nb <>-1 alors
Tab[nbnotes ] nb
Eviter dpassement de la taille
nbnotes nbnotes +1
Fin Si
Fi T tQ
FinTantQue
Fin
24
Rcapitulons .
Gestion dun tableau
Affichage des lments dun
d un tableau :
Algorithme AfficheTableau
Algorithme AfficheTableau
Const
Const
(N 100): entier
Var
i nb : entier,
i,nb
entier
Tab : tableau [0..N-1] dentier
Dbut
Pour i 0 nb faire
Ecrire(Tab[i])
FinPour
Fin
(N ,M 100): entier
Var
i j nbc,
i,j,
nbc nbl : entier,
entier
Tab : tableau [0..N-1, 0..M-1] dentier
Dbut
Pour i 0 nbc faire
Pour j 0 nbl faire
Ecrire(Tab[i,j])
FinPour
FinPour
Fin
25
Rcapitulons .
Recherche dune valeur dans un tableau
Recherche squentielle dans un Tableau non ordonn
ALGORITHME RechercheSeq
Var
T : tableau
t bl u [0..N-1]
[0 N 1] d
dentiers
ti
elem, i,nb: entier
Trouve: boolen
Dbut
i 0;
tantque (T[i] elem) ET (i < nb-1) faire
ii+1;
fintantque
Trouv ((T[i]
[ ] = elem)) ;
Fin
26
Rcapitulons .
Recherche dune valeur dans un tableau
Recherche squentielle dans un Tableau Tri
ALGORITHME RechercheSeqTrie
Var
T : tableau [0..N-1] de entier
i, nb, elem : entier
Trouve : boolen
Dbut
Db
si elem > T[nb-1] alors
Trouve faux
sinon
in n
i0
Tantque T[i] < elem faire
ii+1
FinTantque
Trouv (T[i] = elem)
FinSi
Fin
27
Rcapitulons .
Recherche dune valeur dans un tableau
Recherche dichotomique dans un Tableau Tri
28
ALGORITHME RechercheDicho
Var
T : tableau [0..N-1] de entier
elem ,Binf, bsup : entier
Trouve : boolen
Dbut
p nb-1;; Trouve faux
binf0;; bsup
Rpeter
mil (binf+bsup) div 2
si elem=T[mil] alors
trouve vrai
sinon Si elem<T[mil] alors
bsup mil-1
sinon binf mil+1
Finsi
Finsi
J
Jusqu
(Trouve
(T
ou binf>bsup)
b f b )
Fin
Rcapitulons .
Insertion dun nouvel lment
Cas Tableau non tri
1. Ajout la fin du tableau
2. Dduire le Num de la case de rangement
g
partir
p
du nombre dlments de T
29