Correction TD 05 :Structures de donn´ ees index´ ees
Licence 1 MASS semestre 2, 2007/2008
Exercice 1 : D´ eclarations, affectations
a- Algorithme creerTabZero7() : tableau de r´eels d´ebut
variable t: tableau de 7 r´eels variable i: entier
pouride 0`a 6faire t[i]←0
fin pour retournert fin
b- Algorithme creerTabZero(n : entier) : tableau de r´eels d´ebut
variable t: tableau de n r´eels variable i: entier
pouride 0`a n-1faire t[i]←0
fin pour retournert fin
Il faut ex´ecutercreerTabZero(106).
c- Algorithme creerTab(n : entier,vIni: r´eel) : tableau de r´eels d´ebut
variable t: tableau de n r´eels variable i: entier
pouride 0`a n-1faire t[i]←vIni
fin pour retournert fin
Il faut ex´ecutercreerTab(10, 1).
d- Algorithme creerVoyelles() : tableau de caract`eres variable t: tableau de 6 caract`eres
d´ebut t[0]←’a’
t[1]←’e’
t[2]←’i’
t[3]←’o’
t[4]←’u’
t[5]←’y’
retournert fin
Il faut ex´ecutercreerVoyelles().
Exercice 2 : Myst` ere
Myst`ereA : L’ex´ecution de l’algorithme mystereA(6) cr´ee un tableau de 6 entiers dont la ie case contient l’entier i2. Ensuite, ce tableau est affich´e par afficheTab.
Myst`ereB : L’ex´ecution de l’algorithmemystereB() cr´ee un tableau de 7 entiers dont laie case contient lei+ 1eme terme de la suite arithm´etique de premier terme 1 et de raison 2. Ensuite, ce tableau est affich´e parafficheTab.
Myst`ereC : L’ex´ecution de l’algorithmemystereC(8) cr´ee un tableau de 8 entiers dont laiecase contient lei+ 1eme terme de la suite de Fibonacci. Ensuite, ce tableau est affich´e parafficheTab.
Exercice 3 : Copie et ´ echange
a- Algorithme cr´eeTab(n: entier) : tableau d’entier d´ebut
variable i: entier
variable t: tableau denentiers pouride 0`a n−1 faire
t[i]←2i fin pour retournert fin
b- Algorithme ajoute1(t: tableau d’entier;n: entier) : d´ebut
variable i: entier
pouride 0`a n−1 faire t[i]←t[i] + 1
fin pour fin
c- Algorithme echange(t : tableau d’entier;i, j : entier) : d´ebut
variable tmp: entier tmp←t[i]
t[i]←t[j]
t[j] ←tmp fin
d- Algorithme echangeTrois(t: tableau d’entier;i, j, k : entier) : d´ebut
variable tmp: entier tmp←t[i]
t[i]←t[j]
t[j] ←t[k]
t[k]←tmp fin
e- Algorithme copierTableau(t1, t2 : tableau d’entier;n : entier) : d´ebut
variable i: entier
pouride 0`a n−1 faire t2[i]←t1[i]
fin pour fin
f- Algorithme echangerTableau(t1, t2 : tableau d’entier;n: entier) : d´ebut
variable i,tmp: entier pouride 0`a n−1 faire
tmp←t2[i] t2[i]←t1[i]
t1[i]←tmp fin pour fin
g- Algorithme permuterTableau(t: tableau d’entier;n: entier) : d´ebut
variable i,tmp: entier tmp←t[0]
pouride 0`a n−2 faire t[i]←t[i+ 1]
fin pour t[n−1]←tmp fin
Exercice 4 : Recherche de valeurs extr´ emales
a- La diff´erence minimum qu’il peut y avoir entre deux cases cons´ecutives est 0, c’est pourquoi on initialisem`a 0.
Algorithme differenceMaximum(t: tableau d’entier;n: entier) : entier d´ebut
variable i,max: entier max←0
pouride 0`a n−2 faire simax <|t[i+ 1]−t[i]|alors
max← |t[i+ 1]−t[i]|
fin si fin pour retournermax fin
b- Algorithme premierPair(t: tableau d’entier;n: entier) : entier d´ebut
variable i: entier i←0
tant quei < net modulo(t[i], 2)6= 0faire i←i+ 1
fin tant que retourneri fin
S’il n’y a pas de nombre pair, l’ex´ecution de l’algorithme retournen.
c- Algorithme rechercheMinimumPair(t : tableau d’entier; n : entier) : entier
d´ebut
variable i,k,min: entier i←premierPair(t, n) sii < n alors
min←t[i]
sinon min← −1 fin si
pourkde i+ 1`an−1faire
simin > t[k] et modulo(t[k], 2) = 0alors min←t[k]
fin si fin pour retournermin fin
Exercice 5 : Somme de tableaux
a- Algorithme somme(t : tableau d’entier;n: entier) : entier d´ebut
variable i,s: entier s←0
pouride 0`a n−1 faire s←s+t[i]
fin pour
retourners fin
b- Algorithme sommeTableaux(t1, t2: tableau d’entier;n: entier) : tableau d’entier
d´ebut
variable i: entier
variable t: tableau d’entier pouride 0`a n−1 faire
t[i]←t1[i] +t2[i]
fin pour retournert fin
Exercice 6 : Produit de tableaux
Algorithme produitTableaux(t1, t2 : tableau d’entier;n,p: entier) : entier d´ebut
variable i,k,s: entier s←0
pouride 0`a n−1faire pourkde 0 `a p−1 faire
s←s+t1[i]×t2[k]
fin pour fin pour retourners fin