cours+series_tab 1dim_14-15

4
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 2 eme 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

Upload: anis-said

Post on 18-Jul-2016

251 views

Category:

Documents


2 download

DESCRIPTION

Tableaux à une dimension : Cours et execices

TRANSCRIPT

Page 1: cours+series_TAB 1dim_14-15

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

Page 2: cours+series_TAB 1dim_14-15

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.

Page 3: cours+series_TAB 1dim_14-15

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 :

Page 4: cours+series_TAB 1dim_14-15

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.