cours+series_tab 1dim_14-15
DESCRIPTION
Tableaux à une dimension : Cours et execicesTRANSCRIPT
IPEI El Manar Année universitaire 2014/2015
Classe : 1ère Année MP, PC, PT
1
Les tableaux à une dimension
I. Définitions
Un tableau est une structure de données permettant de ranger un nombre fini d’éléments de
même type , qui sont appelées les composantes du tableau. Le nombre de composantes N est
alors la dimension du tableau.
Un tableau est caractérisé par :
Son nom (identificateur)
Sa taille (nombre d’éléments qu’il contient)
Le type des éléments qu’il contient.
II. Déclaration
III. Accès aux composantes En déclarant un tableau par:
T : tableau [1..7] d’entier
On peut accéder directement aux éléments d’un tableau en lecture ou en écriture, en utilisant
les indices (rangs) de chaque élément. Pour accéder au ième
élément : T[i] tel que 1≤ i ≤ taille
du tableau T [1], T [2], ..., T [5] Remarque :
Considérons un tableau T de dimension N:
- l'accès au premier élément du tableau se fait par T [1]
- l'accès au dernier élément du tableau se fait par T [N] La structure pour se prête particulièrement bien au travail avec les tableaux (Saisie,
Affichage, …)
1 ère
méthode 2eme
méthode
<Nom_tableau> : tableau [<borne_inf> ..
<borne_sup>] de type des éléments
Exemples Les déclarations suivantes en langage algorithmique,
var
T1 : tableau [1..25] d’entier
T2 : tableau [1..99] de réel
T3 : tableau [1..10] de booléen
T4 : tableau [1..24] de chaîne
Type <nom_type>= Tableau[bi..bs] de
<type_des_elements>
Déclaration d’une variable tableau :
<Nom_var > :<nom_type>
Exemples Les déclarations suivantes en langage algorithmique,
Type tab =tableau [1..100] d’entier
Var T:tab
Saisie d’un tableau Affichage d’un tableau
Pour i de 1 à N faire
Ecrire(« donner l’élément n : »,i)
Lire(T[i])
Fin pour
Pour i de 1 à N faire
Ecrire (T[i])
Fin pour
IPEI El Manar Année universitaire 2014/2015
Classe : 1ère Année MP, PC, PT
2
Série d’exercices : Les tableaux à une dimension
NB : on suppose avoir les déclarations suivantes :
CONSTANTE NMAX=100
TYPE TAB=TABLEAU[1..NMAX] D’ENTIERS
Exercice N°1 : La distance de Hamming entre deux tableaux de même taille est le nombre de positions ou les
deux tableaux diffèrent. Par exemple, la distance de Hamming entre [0 1 0 0] et [1 1 0 1 ]
égale 2. Ecrire une fonction qui calcule la distance de Hamming entre deux tableaux donnés
(vous pouvez supposer que les deux tableaux sont de même taille).
Exercice N°2 : Écrire une procédure algorithme nommée suit_trie qui à partir d’un tableau d’entiers t de
taille N, affiche le nombre de sous-séquences croissantes de ce tableau, ainsi que les indices
de début et de fin de la plus grande sous-séquence.
Exemple : soit t un tableau de 15 éléments : [1, 2, 5, 3, 12, 25, 13, 8, 4, 7, 24, 28, 32, 11, 14 ]
Les séquences strictement croissantes sont :
[ 1, 2, 5] [ 3, 12, 25 ] [13 ] [8] [4, 7, 24, 28, 32 ] [ 11, 14 ]
Le nombre de sous-séquence est : 6 et la plus grande sous-séquence est : [ 4, 7, 24, 28, 32 ]
Exercice N°3 : Soit n un entier non nul et T un tableau à une ligne de taille N. On dit que T est un
dérangement, si T est formé en utilisant exactement une fois chaque entier de 1 à n de tel sorte
que l’entier i ne soit pas en position i.
1. Ecrire une fonction derangement qui teste si un tableau est un dérangement, si c’est le cas
elle retourne VRAI.
2. Soit T un dérangement, on veut construire un tableau P (de même taille que T) de la façon
suivante : si l’entier j apparait à la position i dans le tableau T alors on met la valeur i à la
position j du tableau P.
Exemple : si T = [5 3 1 2 4] alors P = [3 4 2 5 1]
Ecrire alors la procédure Indice qui construit ce tableau P à partir de la donnée du tableau T.
Exercice N°4: Soient les suites U et V définies par :
3;
5
1
12
2
1
nUVU
U
U
nnn
3;)(
4
3
112
2
1
nUVVV
V
V
nnnn
On se propose de calculer et afficher n termes des deux suites U et V tel que n est une donnée
compris entre 1 et 1000.
L’idée consiste à utiliser deux tableaux T1 et T2 à une dimension stockant respectivement les
n termes de ces deux suites.
Ecrire une procédure nommé « SUITE » permettant de calculer et afficher les n termes de
deux suites U et V.
IPEI El Manar Année universitaire 2014/2015
Classe : 1ère Année MP, PC, PT
3
Exercice N°5 : Considérons un tableau T de bits (entiers valant 0 ou 1) de type TAB, c’est une alternance de
groupes de 1 consécutifs et de groupes de 0 consécutifs.
On cherche à déterminer la longueur maximale d’un groupe constitué uniquement d’éléments
nuls.
Ecrire une fonction algorithmique nommée grpe_nul_maxi qui prend en entrée le tableau T et
son dimension n et qui retourne la longueur du plus long groupe d’éléments nuls de T.
Exemple :
Si T = 1 1 1 1 0 0 1 0 0 0 0 0 1 1 0 0 0 1 0 0 0 0 0 0 1 1
Alors la fonction doit retourner la valeur 6.
Exercice N°6 : On suppose avoir effectué les déclarations suivantes : CONSTANTE NMAX=100
TYPE TAB=TABLEAU [1..NMAX] DE REEL Etant donné un nuage de N points, définis par leur coordonnées X et Y stockées dans deux
tableaux à une dimension, on veut déterminer les coefficients a et b de la droite dite « droite
des moindres carrées » exprimés comme suit :
N
i
N
i
N
i
N
i
N
i
N
i
iXiXiXiXN
iYiXiYiXN
a
1 1 1
1 1 1
][].[][].[.
][].[][].[.
N
iXaiY
b
N
i
N
i
1 1
][.][
Ecrire un procédure nommé « NUAGE » permettant de calculer les coefficients a et b de la
droite.
Exercice N°7 : On suppose avoir effectué les déclarations suivantes : CONSTANTE NMAX=100
TYPE TAB=TABLEAU [-1..NMAX] DES ENTIERS On se propose de définir à partir d’un tableau T un polynôme P de degré n, fonction de x,
développé selon les puissances croissantes de x en utilisant la définition suivante :
0
1 degré de et n
i
i
T P P x T i x
Exemple :
Le polynôme P de degré 4, défini à partir de T est le suivant : 5923)( 234 xxxxxP
1. Ecrire une procédure nommé « SAISIE » permettant de saisir un tableau T à une
dimension représentant un polynômes P de degré n
2. Ecrire une procédure nommé « POLYNOMES » permettant de calculer dans un
tableau résultat la somme de deux polynômes P1 de degré n1 et P2 de degré n2.
Exercice N°8 : Soit le type suivant :
TYPE TAB=tableau [0..100] d’entier
1) Ecrire une fonction algorithmique SOMME qui retourne la valeur de la somme
suivante :
1
1
0
.n
i n i
i
T T
4 5 9 2 -1 3
-1 0 1 2 3 4
T :
IPEI El Manar Année universitaire 2014/2015
Classe : 1ère Année MP, PC, PT
4
iT étant l’élément d’indice i dans un tableau T de n cases.
2) On définit les nombres de Catalan comme suit : 1
*
1
0
0
. Si
1 Si 0
n
n k n k
k
C C C n
C n
Ecrire une procédure algorithmique CATALAN calculant la valeur du nième
nombre de
Catalan nC . Pour ce faire vous utiliserez un tableau de type TAB permettant de stocker
petit à petit les valeurs pour 0,kC k n .
Exercice N°9 : Dans un pays, N parties politiques ont présenté leur liste de candidats aux élections (listes
électorales numérotées de 1 à N). Ces élections ont vu la participation de M votants, chacun
inscrit un numéro de liste dans un bulletin de vote saisi dans un tableau de votes V de taille M.
V[i] = j signifie que le vote i (1 ≤ i < M) est partie pour la liste j (1 ≤ j ≤ N).
Un vote blanc ou annulé n’est pas considéré vote valide et V[i]=0.
Exemple de 25 votants sur 6 listes :
i 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
V 3 3 0 2 5 2 3 0 2 1 3 5 5 0 2 3 4 0 0 6 5 5 5 6 6
Les résultats des listes sont stockées dans un tableau P de taille N+1 où P[i]=j signifie que le
nombre de votes valides obtenus par la liste i est j.
P[0] contient le total des votes blancs ou annulés.
Exemple : Les résultats de l’exemple précédent :
I 0 1 2 3 4 5 6
P 5 1 4 5 1 6 3
Le problème consiste à aider la commission d’organisation des élections à appliquer les règles
électorales pour décompter les résultats, nommer le gagnant majoritaire ou prévoir la coalition
de listes idéale.
Une liste obtenant plus de 50% des voix valides est considérée majoritaire et désignée
vainqueur des élections. De l’exemple précédent, la liste qui obtient au moins 11 voix valides
gagnera les élections.
1. Définir le type du tableau résultat P. 2. Ecrire la procédure scores qui remplit le tableau P des résultats des listes et les votes
blancs.
3. Ecrire la fonction nbVoix qui retourne le nombre de voix valides des élections.
4. Ecrire la fonction gagnant qui retourne le gagnant majoritaire s’il existe sinon -1.
Après décompte des voix, on élimine de V les voix non valides en préservant l’ordre des
votes.
Exemple : V précédent devient :
i 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
V 3 3 2 5 2 3 2 1 3 5 5 2 3 4 6 5 5 5 6 6
5. Ecrire la procédure purger qui réalise l’élimination des voix non valides de V.
6. Si V est trié (ex. tri décroissant), écrire la fonction gagnant2 qui retourne le gagnant
majoritaire.