Vous êtes sur la page 1sur 5

Correction TD 05 :Structures de données indexées

Licence 1 MASS semestre 2, 2007/2008

Exercice 1 : Déclarations, affectations


a- Algorithme creerTabZero7() : tableau de réels
début
variable t : tableau de 7 réels
variable i : entier
pour i de 0 à 6 faire
t[i] ← 0
fin pour
retourner t
fin
b- Algorithme creerTabZero(n : entier) : tableau de réels
début
variable t : tableau de n réels
variable i : entier
pour i de 0 à n-1 faire
t[i] ← 0
fin pour
retourner t
fin
Il faut exécuter creerTabZero(106 ).
c- Algorithme creerTab(n : entier, vIni : réel) : tableau de réels
début
variable t : tableau de n réels
variable i : entier
pour i de 0 à n-1 faire
t[i] ← vIni
fin pour
retourner t
fin
Il faut exécuter creerTab(10, 1).
d- Algorithme creerVoyelles() : tableau de caractères
variable t : tableau de 6 caractères
début
t[0] ← ’a’
t[1] ← ’e’

1
t[2] ← ’i’
t[3] ← ’o’
t[4] ← ’u’
t[5] ← ’y’
retourner t
fin
Il faut exécuter creerVoyelles().

Exercice 2 : Mystère
MystèreA : L’exécution de l’algorithme mystereA(6) crée un tableau de 6 entiers
dont la ie case contient l’entier i2 . Ensuite, ce tableau est affiché par
afficheTab.
MystèreB : L’exécution de l’algorithme mystereB() crée un tableau de 7 entiers dont
la ie case contient le i + 1eme terme de la suite arithmétique de premier
terme 1 et de raison 2. Ensuite, ce tableau est affiché par afficheTab.
MystèreC : L’exécution de l’algorithme mystereC(8) crée un tableau de 8 entiers dont
la ie case contient le i + 1eme terme de la suite de Fibonacci. Ensuite, ce
tableau est affiché par afficheTab.

Exercice 3 : Copie et échange


a- Algorithme créeTab(n : entier) : tableau d’entier
début
variable i : entier
variable t : tableau de n entiers
pour i de 0 à n − 1 faire
t[i] ← 2i
fin pour
retourner t
fin
b- Algorithme ajoute1(t : tableau d’entier; n : entier) :
début
variable i : entier
pour i de 0 à n − 1 faire
t[i] ← t[i] + 1
fin pour
fin
c- Algorithme echange(t : tableau d’entier; i, j : entier) :
début
variable tmp : entier
tmp ← t[i]
t[i] ← t[j]

2
t[j] ← tmp
fin
d- Algorithme echangeTrois(t : tableau d’entier; i, j, k : entier) :
début
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ébut
variable i : entier
pour i de 0 à n − 1 faire
t2 [i] ← t1 [i]
fin pour
fin
f- Algorithme echangerTableau(t1, t2 : tableau d’entier; n : entier) :
début
variable i, tmp : entier
pour i de 0 à 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ébut
variable i, tmp : entier
tmp ← t[0]
pour i de 0 à n − 2 faire
t[i] ← t[i + 1]
fin pour
t[n − 1] ← tmp
fin

Exercice 4 : Recherche de valeurs extrémales


a- La différence minimum qu’il peut y avoir entre deux cases consécutives est
0, c’est pourquoi on initialise m à 0.
Algorithme differenceMaximum(t : tableau d’entier; n : entier) : entier
début
variable i, max : entier
max ← 0

3
pour i de 0 à n − 2 faire
si max < |t[i + 1] − t[i]| alors
max ← |t[i + 1] − t[i]|
fin si
fin pour
retourner max
fin
b- Algorithme premierPair(t : tableau d’entier; n : entier) : entier
début
variable i : entier
i←0
tant que i < n et modulo(t[i], 2) 6= 0 faire
i ← i+1
fin tant que
retourner i
fin
S’il n’y a pas de nombre pair, l’exécution de l’algorithme retourne n.
c- Algorithme rechercheMinimumPair(t : tableau d’entier; n : entier) :
entier
début
variable i, k, min : entier
i ← premierPair(t, n)
si i < n alors
min ← t[i]
sinon
min ← −1
fin si
pour k de i + 1 à n − 1 faire
si min > t[k] et modulo(t[k], 2) = 0 alors
min ← t[k]
fin si
fin pour
retourner min
fin

Exercice 5 : Somme de tableaux


a- Algorithme somme(t : tableau d’entier; n : entier) : entier
début
variable i, s : entier
s←0
pour i de 0 à n − 1 faire
s ← s + t[i]
fin pour

4
retourner s
fin
b- Algorithme sommeTableaux(t1 , t2 : tableau d’entier; n : entier) : tableau
d’entier
début
variable i : entier
variable t : tableau d’entier
pour i de 0 à n − 1 faire
t[i] ← t1 [i] + t2 [i]
fin pour
retourner t
fin

Exercice 6 : Produit de tableaux


Algorithme produitTableaux(t1 , t2 : tableau d’entier; n, p : entier) : entier
début
variable i, k, s : entier
s←0
pour i de 0 à n − 1 faire
pour k de 0 à p − 1 faire
s ← s + t1 [i] × t2 [k]
fin pour
fin pour
retourner s
fin

Vous aimerez peut-être aussi