Vous êtes sur la page 1sur 8

K.

Zabo tableaux Centre Universitaire Professionnalis

CHAPITRE 5 : LES TABLEAUX A UNE DIMENSION

I. Introduction aux tableaux 1 dimension

A. Exemple introductif
Saisir la liste des 12 notes sur 30
16 23 8 19 28 20 18 14 10 9 15 24
Voici la liste de ces notes sur 20
10.67 15.33 5.33 12.67 18.67 13.33 12 9.33 6.67 6 10 16

Dans l'tat actuel de vos connaissances, pour crire l'algorithme qui donne la sortie d'cran suivante, vous tes
oblig de dclarer 12 variables diffrentes. On ne peut pas utiliser une seule variable qui prend successivement
chaque valeur. Passe encore avec 12 notes, mais si l'on voulait raliser ce traitement avec 30 ou 40 notes, cela
deviendrait fastidieux.
En outre, le mme traitement est effectu 12 fois sur des variables diffrentes. Comme les variables ont des
noms diffrents, on ne peut pas utiliser de boucle, ce qui allonge considrablement le code et le rend trs
rptitif.

Pour rsoudre ces problmes, il est tentant d'utiliser un nom commun pour toutes les variables et de les
reprer par un numro. Ainsi, on pourrait dclarer toutes les variables d'un seul coup et utiliser une boucle
pour effectuer le traitement en faisant varier le numro des variables. Cela est possible grce l'utilisation
d'un tableau.

Programme conv_note
Var
note: tableau[1..12] de rels i:
entier

Dbut
Afficher "Saisir la liste des 12 notes sur 30" Pour
i de 1 jq 12 Faire
Saisir note[i]
FinPour
Afficher "Voici la liste de ces notes sur 20"
Pour i de 1 jq 12 Faire Afficher
note[i]*2/3
FinPour Fin

B. Caractristiques d'un tableau une dimension


Un tableau une dimension (ou vecteur) peut tre vu comme une liste d'lments.
On le reprsente souvent comme une suite de cases contenant chacune une valeur.

ex: Tableau salaire

1ire case 2ime case 3ime case 4ime case 19ime case 20ime case

10000 8500 12300 13000 6500 9800

Un tableau possde un nom (ici salaire) et un nombre d'lments (de cases) qui reprsente sa taille
(ici 20).
Tous les lments d'un tableau ont le mme type (c'est normal car ils reprsentent des valeurs
logiquement quivalentes).

L3-M1-M2-INFORMATIQUE-TELECOMS 1
K. Zabo tableaux Centre Universitaire Professionnalis
Pour dsigner un lment, on indique le nom du tableau suivi son indice (son numro) entre crochets:
salaire [3] reprsente le 3ime lment du tableau salaire et vaut 12300

Remarque:
Dans un programme, chaque lment d'un tableau est repr par un indice. Dans la vie
courante, nous utilisons souvent d'autres faons de reprer une valeur. Par exemple, au lieu de
parler de salaire [1], salaire[2], salaire [3], nous prfrons parler des salaires de Mr Dupond, de
Mme Giraud et de Mr Fournier. Le tableau ne permet pas de reprer ses valeurs autrement que
par un numro d'indice. Donc si cet indice n'a pas de signification, un tableau ne permet pas de
savoir quoi correspondent les diffrentes valeurs.

les variables d'un tableau

La notion de case contenant une valeur doit faire penser celle de variable. Et, en effet, les
cases du tableau, encore appeles lments du tableau, sont des variables, qualifies d'indices.

Diffrence entre variables classiques et variables indices:


- les variables classiques sont dclares individuellement et ont un nom distinct ;
- les variables indices (constituant le tableau) sont implicitement dclares lors de la
dclaration du tableau. Pour bien montrer que ces variables nont pas de signification propre, mais sont
juste une des variables du tableau , elles ne possdent pas de nom propre, mais juste un numro appel
indice (de 1 n si le tableau possde n cases). Chaque case (variable) est donc totalement identifie par
son indice et le nom du tableau.

Le tableau lui-mme constitue aussi une variable. Cest une variable complexe (par
opposition aux variables simples) car il est constitu d'autres variables (les lments du
tableau).

II. Dclaration et manipulation des tableaux 1 dimension

A. Dclaration
1. Tableau variable
La syntaxe de la dclaration d'une variable tableau est la suivante:

identificateur: tableau [valeur_indice_minimum .. valeur_indice_maximum] de type_des_lments

ex: sal : tableau[1.. 20] de rels


notes : tableau [1..10] de rels
nom_clients: tableau [1..20] de chanes

Remarques:
Lorsqu'on dclare un tableau, on dclare aussi de faon implicite toutes les variables indices qui le
constituent.

En rgle gnrale, l'indice minimum vaut 1. Mais on peut aussi utiliser un autre indice
minimum, comme 0. Dans ce cas, l'indice maximum sera gal au nombre d'lments 1.

lorsque l'indice minimum est 1, la taille du tableau (nombre d'lments) est gale la valeur de
l'indice maximum

Certains langages acceptent que les valeurs minimales et maximales d'indice soient des variables.
Mais comme ce n'est pas le cas de tous les langages, nous nous limiterons des valeurs d'indice
constantes.

2. Tableau constant
Il est parfois utile de dclarer un tableau constant, cest--dire un tableau dont les valeurs ne peuvent pas
changer. Dans ce cas, comme pour toutes les autres constantes, il faut initialiser les valeurs du tableau ds la
dclaration. Pour cela, on utilise une liste dinitialisation entre accolades :

L3-M1-M2-INFORMATIQUE-TELECOMS 2
K. Zabo tableaux Centre Universitaire Professionnalis

Exemple : Voici un tableau constant qui mmorise le libell des mois:

libmois[1..12] ={"janvier", "fvrier", "mars", "avril", "mai", "juin", "juillet", "aut", "septembre", "octobre",
"novembre", "dcembre"}

B. Manipulation
Les tableaux peuvent se manipuler de deux manires:
soit travers leurs lments le nom du tableau est alors suivi d'un indice entre crochets c'est
la mthode que nous utiliserons
soit dans sa globalit le nom du tableau n'est pas suivi d'indice nous n'tudierons pas cette
possibilit de manipulation car elle fait appel des concepts mathmatiques qui n'ont pas t vus.

Les lments d'un tableau sont des variables indices qui s'utilisent exactement comme n'importe
quelles autres variables classiques. Autrement dit, elles peuvent faire l'objet d'une affectation, elles
peuvent figurer dans une expression arithmtique, dans une comparaison, elles peuvent tre affiches et
saisies

L'indice d'un lment peut tre:


- directement une valeur ex: salaire [10]
- une variable ex: salaire [i]
- une expression entire ex: salaire [k+1] avec k de type entier

Quelque soit sa forme, la valeur de l'indice doit tre : -


entire
- comprise entre les valeurs minimales et maximales dtermines la dclaration du tableau.
Par exemple, avec le tableau tab [1..20], il est impossible d'crire tab[0] et tab[21]. Ces
expressions font rfrence des lments qui n'existent pas.

Applications: Exercices 2 et 3

Le fait que les lments constituant un tableau soient indics permet de parcourir tous les lments avec
une boucle. Le Pour est gnralement la boucle la plus adapte, puisque lon connat le nombre de fois qu'on
doit effectuer le traitement (une fois par lment). On utilise une variable qui sert d'indice et s'incrmente
chaque tour de boucle.

Applications:
Exercices 4 et 5

Remarques :
Il est trs grave de confondre l'indice d'un lment et la valeur de cet lment. En d'autres termes, il
ne faut pas confondre i avec tab[i]

De mme quune variable possde toujours une valeur (qui peut tre indtermine), un tableau peut
trs bien possder des lments dont la valeur est indtermine. Donc avant d'utiliser un tableau, il
est donc ncessaire de l'initialiser

C. Synthse
Un tableau est une structure de donne permettant de mmoriser des valeurs de mme type et
logiquement quivalentes.
Un vecteur est un tableau une dimension (un seul indice permet d'identifier toutes les valeurs)
Chaque lment d'un tableau est repr par un indice indiquant sa position.
La taille d'un tableau est le nombre de ses lments.
La taille d'un tableau est fixe.
Les indices doivent obligatoirement tre entiers et varier entre une valeur minimale ( en gnral 1)
et une valeur maximale constante.
Chaque lment du tableau est une variable indice, identifie par le nom du tableau suivi de
l'indice entre crochets. Les variables indices s'utilisent comme des variables classiques.

L3-M1-M2-INFORMATIQUE-TELECOMS 3
K. Zabo tableaux Centre Universitaire Professionnalis
Dclaration
ex: un tableau nomm toto de 10 lments entiers se dclare ainsi:

toto: tableau[1..10] d'entiers

L3-M1-M2-INFORMATIQUE-TELECOMS 4
K. Zabo tableaux Centre Universitaire Professionnalis

PARTIE 4 les tableaux (une dimension) Enonce des Exercices


Exercice 4.1

Ecrire un algorithme qui dclare et remplisse un tableau de 7 valeurs numriques en les mettant
toutes zro.

Exercice 4.2

Ecrire un algorithme qui dclare et remplisse un tableau contenant les six voyelles de lalphabet
latin.

Exercice 4.3

Ecrire un algorithme qui dclare un tableau de 9 notes, dont on fait ensuite saisir les valeurs par
lutilisateur.

Exercice 4.4

Que produit lalgorithme suivant ?


Tableau Nb(5) en Entier
Variable i en Entier
Dbut
Pour i 0 5

Nb(i) i * i
i suivant Pour
i 0 5
Ecrire Nb(i) i
suivant Fin

Peut-on simplifier cet algorithme avec le mme rsultat ?

Exercice 4.5

Que produit lalgorithme suivant ?


Tableau N(6) en Entier
Variables i, k en Entier
Dbut
N(0) 1 Pour k 1
6 N(k) N(k-1)
+ 2 k Suivant Pour
i 0 6 Ecrire
N(i) i suivant Fin

Peut-on simplifier cet algorithme avec le mme rsultat ?

Exercice 4.6

Que produit lalgorithme suivant ?


Tableau Suite(7) en Entier
Variable i en Entier

L3-M1-M2-INFORMATIQUE-TELECOMS 5
K. Zabo tableaux Centre Universitaire Professionnalis
Dbut
Suite(0) 1
Suite(1) 1
Pour i 2 7
Suite(i) Suite(i-1) + Suite(i-2)
i suivant Pour i 0 7 Ecrire
Suite(i) i suivant
Fin

Exercice 4.7

Ecrivez la fin de lalgorithme 6.3 afin que le calcul de la moyenne des notes soit effectu et affich
lcran.

Exercice 4.8

Ecrivez un algorithme permettant lutilisateur de saisir un nombre quelconque de valeurs, qui


devront tre stockes dans un tableau. Lutilisateur doit donc commencer par entrer le nombre de
valeurs quil compte saisir. Il effectuera ensuite cette saisie. Enfin, une fois la saisie termine, le
programme affichera le nombre de valeurs ngatives et le nombre de valeurs positives.

Exercice 4.9

Ecrivez un algorithme calculant la somme des valeurs dun tableau (on suppose que le tableau a t
pralablement saisi).

Exercice 4.10

Ecrivez un algorithme constituant un tableau, partir de deux tableaux de mme longueur


pralablement saisis. Le nouveau tableau sera la somme des lments des deux tableaux de dpart.
Tableau 1 :

4 8 7 9 1 5 4 6

Tableau 2 :

7 6 5 2 1 3 7 4

Tableau constituer :
11 14 12 11 2 8 11 10

Exercice 4.11

Toujours partir de deux tableaux prcdemment saisis, crivez un algorithme qui calcule le
schtroumpf des deux tableaux. Pour calculer le schtroumpf, il faut multiplier chaque lment du
tableau 1 par chaque lment du tableau 2, et additionner le tout. Par exemple si l'on a :

Tableau 1 :

L3-M1-M2-INFORMATIQUE-TELECOMS 6
K. Zabo tableaux Centre Universitaire Professionnalis
4 8 7 12

Tableau 2 :
3 6

Le Schtroumpf sera :
3 * 4 + 3 * 8 + 3 * 7 + 3 * 12 + 6 * 4 + 6 * 8 + 6 * 7 + 6 * 12 = 279

Exercice 4.12

Ecrivez un algorithme qui permette la saisie dun nombre quelconque de valeurs, sur le principe de
lex 6.8. Toutes les valeurs doivent tre ensuite augmentes de 1, et le nouveau tableau sera affich
lcran.

Exercice 4.13

Ecrivez un algorithme permettant, toujours sur le mme principe, lutilisateur de saisir un nombre
dtermin de valeurs. Le programme, une fois la saisie termine, renvoie la plus grande valeur en
prcisant quelle position elle occupe dans le tableau. On prendra soin deffectuer la saisie dans un
premier temps, et la recherche de la plus grande valeur du tableau dans un second temps.

Exercice 4.14

Toujours et encore sur le mme principe, crivez un algorithme permettant, lutilisateur de saisir
les notes d'une classe. Le programme, une fois la saisie termine, renvoie le nombre de ces notes
suprieures la moyenne de la classe.
Exercice 4.15
Ecrivez un algorithme qui permette de saisir un nombre quelconque de valeurs, et qui les range au
fur et mesure dans un tableau. Le programme, une fois la saisie termine, doit dire si les lments
du tableau sont tous conscutifs ou non.

Par exemple, si le tableau est :

12 13 14 15 16 17 18

ses lments sont tous conscutifs. En revanche, si le tableau est :

9 10 11 15 16 17 18

ses lments ne sont pas tous conscutifs.

Exercice 4.16

Ecrivez un algorithme qui trie un tableau dans lordre dcroissant.


Vous crirez bien entendu deux versions de cet algorithme, l'une employant le tri par insertion, l'autre
le tri bulles.

L3-M1-M2-INFORMATIQUE-TELECOMS 7
K. Zabo tableaux Centre Universitaire Professionnalis

Exercice 4.17

Ecrivez un algorithme qui inverse lordre des lments dun tableau dont on suppose qu'il a t
pralablement saisi ( les premiers seront les derniers )

Exercice 4.18

Ecrivez un algorithme qui permette lutilisateur de supprimer une valeur dun tableau
pralablement saisi. Lutilisateur donnera lindice de la valeur quil souhaite supprimer. Attention,
il ne sagit pas de remettre une valeur zro, mais bel et bien de la supprimer du tableau lui-mme
! Si le tableau de dpart tait :

12 8 4 45 64 9 2

Et que lutilisateur souhaite supprimer la valeur dindice 4, le nouveau tableau sera :

12 8 4 45 9 2

Exercice 4.19

Ecrivez l'algorithme qui recherche un mot saisi au clavier dans un dictionnaire. Le dictionnaire est
suppos tre cod dans un tableau pralablement rempli et tri.

L3-M1-M2-INFORMATIQUE-TELECOMS 8

Vous aimerez peut-être aussi