Vous êtes sur la page 1sur 3

Etablissement : ISET-Charguia Département : Technologies de l’Informatique

ère
Niveau : 1 année Tronc Commun Année Universitaire : 2020 - 2021
Matière : Algorithmique et structure de données1

TD n° 3 : Les structures de données - Tableaux


Exercice 1 : Série de valeurs
Soit T un tableau d'entiers. Une série dans T est une suite d'éléments consécutifs et égaux.
L'objectif de l’algorithme demandé est de trouver la plus longue série dans T en précisant
l’élément qui se répète, l'indice de la première occurrence de cet élément et la longueur de la
série (c'est à dire le nombre de répétitions de cet élément).
Exemple :
T: 2 2 6 6 6 6 9 9 9 9 9 1 0 0 0

 La plus longue série du tableau T est constituée de l’élément 9, elle commence à


l'indice 7 et elle est de longueur 5.
Travail à faire :
- Ecrire un algorithme Série permettant d’afficher l’élément récurrent de la plus longue
série, l’indice de début de cette série ainsi que sa longueur. En suppose qu’il existe une
seule et unique série de taille maximale.

Exercice 2 : Crible d'Eratosthène


Eratosthène, mathématicien grec, inventa un procédé de calcul des nombres premiers, dénommé
"Crible d'Eratosthène", qui est une définition algorithmique des nombres premiers.
Au début, il s'agit de marquer à partir d'un tableau, des entiers de 2 à N, tous les multiples de 2
sauf 2, ensuite marquer tous les multiples de 3 sauf 3, ...etc. A la fin de l'algorithme, il ne restera
que les entiers qui ne sont multiples d'aucun entier, et qui sont donc les nombres premiers.
Soient deux tableaux:
 T un tableau de N cases (N<1000), contenant les valeurs de l'intervalle [2..N+1] en ordre.
 C un tableau de N cases, remplit par des couleurs, initialement 'N' (désignant la couleur
Noir). Chaque case du tableau C est associée à la case ayant le même indice du tableau T.

L'algorithme procède de la manière suivante :


Soit N= 15

T 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

TD n°3 1
C N N N N N N N N N N N N N N N

On change la couleur de la valeur 2 dans le tableau C, par 'B' (Bleu), puis on change la couleur
de chaque case contenant un multiple de 2, par 'R' (Rouge).
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

B N R N R N R N R N R N R N R

Le premier entier non divisible par 2, plus grand que 2 et ayant une couleur 'N' est 3, on change
alors la couleur de 3 par 'B' et on cherche tous ses multiples tout en changeant à chaque fois
leurs couleurs par 'R'.
En poursuivant les mêmes itérations, on obtient à la fin la liste des nombres premiers inférieur
à un nombre donné N.
Travail à faire:
Ecrire un algorithme qui permet de :
1. Saisir le nombre N,
2. Remplir le tableau T,
3. Remplir le tableau C,
4. Afficher tous les nombres premiers, de l'intervalle [2..N], selon le principe décrit ci-
dessus.
Exercice 3 : Compression par redondance
On considère une suite numérique contenu dans un tableau d'entiers T, de taille N (pour les
exemples, N = 12). Le tableau doit contenir des entiers de 1 à 256. L’objectif est de compresser
la suite des nombres du tableau T en utilisant la compression par redondance.
Exemple : Voici la suite numérique à compresser :
T 2 3 3 6 4 5 7 4 5 256 2 2

Le principe est le suivant :


Dans un autre tableau R de 1 à 256, il est question de calculer pour chaque indice son nombre
d’occurrences dans T.
Exemple :
- T ne comporte aucune occurrence de 1, donc la case d’indice 1 du tableau R contiendra 0.
- T comporte 3 occurrences du nombre 2, donc la case d'indice 2 du tableau R contiendra donc
3.
TD n°3 2
- Etc…
T 2 3 3 6 4 5 7 4 5 256 2 2

1 2 3 4 5 6 7 8 9 10 11 12 … 256
R 0 3 2 2 2 1 1 0 0 0 0 0 1

Une fois le tableau R remplit, il est question de rechercher le marqueur qui est relatif au 1er
indice de la case ayant la plus petite valeur dans R.
Dans l’exemple, le marqueur est = 1 car R[1] = 0
Une fois le marqueur est défini, il est question d’afficher la suite numérique compressée comme
suit :
- On affiche le marqueur ;
- Puis on affiche des éléments à partir du tableau R selon le principe suivant :
o Si on trouve une suite successive du même nombre au niveau de R, alors on affiche la
valeur du marqueur, la taille de la suite et le nombre même.
o Si le nombre ne présente pas une suite successive, alors on affiche le nombre
uniquement.
Exemple :
R 0 3 2 2 2 1 1 0 0 0 0 0 … 0 1
1 0 3 1,3,2 1,2,1 1,248,0 1

marqueur 1 fois 0 1 fois 1 (marqueur), 1 (marqueur), 1 (marqueur), 248(nombre de fois), 0 1 fois 1


3 3(nombre de 2(nombre de (élément)
fois), 2 fois), 1
(élément) (élément)
La suite numérique compressée à afficher est = {1}{0}{3}{1,3,2}{1,2,1}{1,248,0}{1}
Travail à faire :
Ecrire un algorithme qui permet de :
1) Définir un nouveau type tableau noté TAB dont la taille maximale = 1000
2) Lire la taille N du tableau T
3) Remplir T par des entiers de 1 à 256
4) Remplir le tableau R qui est de taille = 256 selon le principe cité ci-dessus
5) Chercher le marqueur
6) Afficher la suite numérique compressée selon le principe cité ci-dessus

TD n°3 3

Vous aimerez peut-être aussi