Vous êtes sur la page 1sur 7

Algorithmes et Structures de

Données:

Les Tableaux

Séance 7:
Semaine du
16/11/2009

Institut Supérieur d’Informatique et MultiMedia Année Universitaire


2009/2010

Structures Itératives
LES TABLEAUX UNIDIMENTIONNELS
Positionnement du problème
Définition
Déclaration
Résolution d'un problème avec les tableaux
LES TABLEAUX BIDIMENTIONNELS
Positionnement du problème
Définition
Déclaration
Exemples
Les Tableaux unidimensionnels

Positionnement du problème:
 Supposons que nous souhaitons déterminer, à partir de 20 notes
d'élèves (fournies en données), combien d'entre elles sont
supérieures à la moyenne de la classe.
 S'il ne s'agissait que de calculer la moyenne de ces notes,
nous ayons calculé la somme, en les cumulant dans une
variable, au fur et à mesure de leur lecture.
Mais, il faudrait de nouveau consulter ces notes pour
déterminer combien d'entre elles sont supérieures à la
moyenne. Il est donc nécessaire de mémoriser ces notes. Il ne
serait pas raisonnable d'utiliser 20 variables différentes.
Le tableau offre une solution à ce problème.

Les Tableaux unidimensionnels

Définition:
Un tableau est une structure linéaire de données constituée d'un
nombre fini d'éléments de même type. Un tableau possède un
identificateur et chaque élément du tableau est repéré par un indice
précisant sa position au sein du tableau.

Tableau notes:
Les Tableaux unidimensionnels
Tableau notes:

Un indice peut être une expression arithmétique par exemple :


NOTE[i+2],
NOTE[2*i+j]
On notera un élément i du tableau T de la manière suivante T[i]
1er élément : T[1]
2ème élément T[2]
3ème élément T[3] etc.
Un élément du tableau est assimilable à une variable et prend, à un
instant donné, une valeur et une seule. De même, il peut faire l'objet
d'une affectation, il peut figurer dans une expression ou dans une
action de lecture et écriture.

Les Tableaux unidimensionnels

Exemple1:
Soit un tableau T ayant N éléments entiers. Calculer la somme de
ses éléments.

debut
lire (N);
pour i de 1 à N faire
lire T[i];
fin pour
S  0;
pour i de 1 à N faire
S  S + T[i];
fin pour
ecrire (S);
fin
Les Tableaux unidimensionnels

Exemple2:
Soit un tableau Tab ayant M éléments entiers. Compter le nombre
d'éléments
… nuls.
debut
lire (M);
pour i de 1 à M faire
lire Tab[i];
fin pour
Nb  0;
pour i de 1 à M faire
Si Tab[i] = 0 alors
Nb  Nb + 1;
fin si
fin pour
ecrire (Nb);
fin

Les Tableaux unidimensionnels

Déclaration:
Dans tous les langages, le Traducteur (compilateur ou interpréteur)
doit nécessairement connaître le nombre d'éléments d'un tableau
(sa taille).
Cette information lui permet de réserver l'emplacement mémoire
correspondant. De même, comme pour une variable, il faut préciser
quel est le type d'un tableau et donc, le type de tous ses éléments.
Syntaxe:
T ( tableau [indiceInitial..indiceFinal] de type_element)

indiceInitial est toujours inférieure à indiceFinal

Type_element : les éléments d'un tableau sont toujours


caractérisés par leur type (entier, réel, chaîne de caractère, etc..)
Les Tableaux unidimensionnels
Déclaration
Var
i, j (entier)

T1 (Tableau [1..10] de entier)
T2 (Tableau [0..10] de réel)

Remarques:
Le Tableau T1 comporte 10 cases pouvant contenir des entiers, les
indices de ces cases varient de 1 à 10
Le Tableau T2 comporte 11 cases pouvant contenir des réels, les
indices de ces cases varient de 0 à 10
La taille du tableau ne peut pas changer dans le corps de l'algorithme
Si le nombre d'éléments qui vont être placés dans le tableau est
déterminé par l'utilisateur, il faut prévoir une taille assez grande pour
satisfaire les besoins de l'application

Les Tableaux unidimensionnels


Résolution d'un problème avec les tableaux:
Revenons à notre problème initial:
déterminer, à partir de 20 notes d'élèves (fournies en données),
combien d'entre elles sont supérieures à la moyenne de la classe.

Solution

algorithme Statistiques_Moyennes
Var
i (int)
Moyenne_Classe (int)
Tab_Notes (Tableau [1..20] de réel) --pour mémoriser les 20 notes
Nb_Notes_Sup (int) -- contiendra le nombre de notes supérieures à la
--moyenne de la classe
Les Tableaux unidimensionnels
Début
-- initialisation des variables
Moyenne_Classe  0;
Nb_Notes_Sup  0;
-- saisie des notes et mémorisation dans le tableau
Pour i de 1 à 20 faire
Ecrire ("Donner la ", i , "ème note SVP");
Lire (Tab_Notes[i]); -- la ième note est mémorisée dans la case i du tableau
Moyenne_Classe  Moyenne_Classe + Tab_Notes[i]/20;
Fin pour
-- Calcul du nombre de notes supérieurs à la moyenne de la classe
Pour i de 1 à 20 faire
si (Tab_Notes[i] > Moyenne_Classe ) alors
Nb_Notes_Sup  Nb_Notes_Sup + 1;
fin si
Fin pour
--Affichage du résultat demandé
Ecrire ("Le nombre de notes supérieurs à la moyenne de la classe est :",
Nb_Notes_Sup )
fin

Les Tableaux unidimensionnels

Exemple2:
Nous pouvons aussi contrôler le faite que la note soit comprise entre
1 et 20.


Pour i de 1 à 20 faire
Répéter
Écrire ("Donner la ", i , "ème note SVP")
Lire (Tab_Notes[i]) -- la ième note est mémorisée dans la case i du tableau
Jusqu'à (Tab_Notes[i] >=0 et Tab_Notes[i] <= 20 )
Moyenne_Classe  Moyenne_Classe + Tab_Notes[i]/20;
Fin pour
Les Tableaux unidimensionnels
Travail à faire:
Écrire l'algorithme qui traite les deux types de transactions (dépôt et retrait) sur
N comptes bancaires.
Les N comptes des clients de la banque sont enregistrés dans deux tableaux,
un tableaux de numéro de comptes NUMERO et un tableau de
solde SOLDE.
Exemple: Num compte: C56
montant de la transaction 123
Remarques:
1) SOLDE[i] est le solde du compte NUMERO[i]
2) On lit au départ le numéro de compte et le montant de la
transaction puis on met à jour le solde correspondant au numéro de
compte du client
3) les codes de transactions sont:
D: dépôt
E: retrait
F: fin des opérations

Vous aimerez peut-être aussi