Les tableaux :

  1. INTERET DES TABLEAUX :
  2. Lorsqu'on regroupe des objets, il est fréquemment utile de pouvoir faire un accès direct à un objet particulier du groupe, sans avoir à considérer séquentiellement tous ceux qui le précédent dans le groupe.

    La notion de table et ses réalisations sous forme de tableau et de fichier à accès direct répondent à ces besoins.

  3. CARACTERISTIQUES :
  1. Définition d'un tableau :

Un tableau est une collection finie et ordonnée d'éléments de même nature, accessibles directement, en utilisant un ou plusieurs indices.

  1. Définition formelle

Un tableau est un ensemble d'informations, tel qu'à chaque information soit associé un nom et un seul (clé ou indicatif).

  1. Les différents types de tableaux :
  1. Unidimensionnel : Le vecteur :
  2.  

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    8

    13

    6

    14

    29

    17

    3

    9

       

  3. Bidimensionnel Les matrices d'ordre deux :
  4. Exemples de matrices à deux dimensions particulières:

    Matrice carrée

    Matrice dont le nombre de lignes est égal au nombre de colonnes.

    Matrice diagonale

    Les éléments de la matrice se trouvent sur la diagonale seulement.

     

     

    1

    2

    3

    4

    1

    X

         

    2

     

    X

       

    3

       

    X

     

    4

         

    X

    Matrice triangulaire

    Les éléments de cette matrice sont placés de façon triangulaire.

     

    1

    2

    3

    4

    1

    A

         

    2

    B

    C

       

    3

    D

    E

    F

     

    4

    G

    H

    I

    J

    Matrice partiellement remplie ou éparse

    Matrice qui contient plusieurs éléments nuls répartis un peu partout dans la matrice.

    Il n'existe pas de définition précise pour identifier une matrice éparse, nous le reconnaissons de façon intuitive.

  5. Multidimensionnel :

Les matrices à plus de deux dimensions sont généralement regroupées sous le terme de matrices multidimensionnelles.

  1. Les notions d'indice et de rang :
  2. Les tableaux sont des structures à accès direct, c'est-à-dire que nous pouvons accéder directement à l'information en utilisant des indices.

    Les données individuelles sont donc repérées par un sélecteur que l'on nomme indice du tableau

    Le rang d’un tableau est le nombre de dimensions de ce tableau

  3. Le principe d'utilisation :

La dimension d'un tableau est donnée par la (ou les) valeur(s) maximales des indices.

Exemple:

Un vecteur de dimension (5) est un tableau à 1 ligne et 5 colonnes

Une matrice de dimension(3,5) est un tableau ayant 3 lignes et 5 colonnes...

Notation:

Tab [ 3 , 5 ] Û tableau ayant 3 lignes et 5 colonnes.

Exemple:

Tableau = ( 1.2 4.3 3.1 )

( 2.1 2.0 -5.7 )

Nom d'élément Place information

(1,1) P1 1.2

(2.1) P2 2.1

(1,2) P3 4.3

(2,2) P4 2.0

(1,3) P5 3.1

(2,3) P6 -5.7

  1. Accès aux éléments du tableau :

Contrairement aux fichiers séquentiels, il n'existe qu'une primitive d'accès aux éléments d'un vecteur: l'opération d'indiçage.

Soit T un vecteur, et [1, N] l'intervalle d'entiers repérant les éléments du vecteur.

On accède au Ième élément de T par l'opération d'indiçage que l'on note T[I].

Si I n'appartient pas à [1, N], le résultat est indéterminé

.Dans le cadre des matrices à deux dimensions, on accède à un élément par l'opération d'indiçage que l'on note T[L,C], ou L représente le numéro de ligne et C celui de colonne.

ATTENTION LE FAIT QUE LES INDICES SOIENT ENTRE CROCHETS NE VEUT ABSOLUMENT PAS DIRE QU'ILS SONT FACULTATIFS.

 

  1. OPERATIONS SUR LES TABLEAUX :
  1. Etude du tableau unidimentionnel : le vecteur :
  1. La création et le chargement :
  2. A un indice du vecteur correspond une valeur bien précise, alors le contenu nous donne l’indice.

    exemple :

    Clairmois

    A un indice du vecteur correspond une valeur quelconque, alors à l’indice1 correspond la 1ère valeur.

  3. La recherche :

Il existe plusieurs méthodes de recherche. Pour déterminer la meilleure méthode, il faut considérer la taille du vecteur, son utilisation et son contenu.

Recherche séquentielle

Les éléments sont dans un vecteur et l'ordre n'a pas d'importance. Lors de la recherche, on compare l'élément recherché avec tous ceux du vecteur en commençant par l'indice 1.

Exemple :

         

1

2

3

4

5

6

7

8

9

10

         
         

8

13

6

14

29

17

3

9

             

Si on cherche 14 - on le compare avec V(1) ® 8

avec V(2) ® 13

avec V(3) ® 6

avec V(4) ® 14 trouvé

Si des éléments sont recherchés plus souvent, il est bon de les placer en tête du vecteur et d'avoir un vecteur ordonné selon la fréquence d'utilisation décroissante ; ceci réduit le temps de recherche.

Si le vecteur est trié de façon ascendante, on arrête la recherche dès que l'on trouve une valeur supérieure à celle recherchée (et bien sûr inférieure si le tri est descendant).

Recherche binaire

Les éléments du vecteur doivent être classés par ordre croissant ou décroissant.

Le principe consiste à diviser en deux l'étendue de la recherche et de comparer l'élément recherché avec l'élément milieu. Si ce dernier est plus grand que l'élément recherché, nous continuons la recherche dans la moitié inférieure du vecteur. Par contre, s'il est plus petit, nous travaillerons avec la moitié supérieure.

Exemple :

         

1

2

3

4

5

6

7

8

9

10

         
         

8

12

19

24

29

33

38

42

             

Comparaison entre la recherche séquentielle et la recherche binaire

En principe, la recherche dichotomique est plus efficace que la recherche séquentielle mais il est important de noter que :

  1. L'ajout ou l'insertion :

Si aucune position n'est libre dans le vecteur alors l'insertion est impossible.

Insérer à la fin du vecteur

Nous gardons en mémoire l'indice du dernier élément et nous ajoutons après le dernier élément.

Insérer à l'intérieur du vecteur

Si la position est libre, ajouter à cette position.

Si la position n’est pas libre :

- Insérer après le Ke élément si N position occupée (vecteur trié ou non)

- Trouver le Ke élément

Faire de la place c'est à dire transférer N dans N+1, N-1 dans N, N-2 dans N1, etc

- Insérer l'élément à K+1 ;

  1. La suppression et le tassement :
  2. Si peu importe les zones inoccupées, nous remplaçons l'élément à supprimer par un élément nul.

    Si toutes les positions doivent être non nulles, nous transférons les positions. Si on enlève le Ke élément. (vecteur ‘’TASSE’’)

    transfert K+1 dans K, K+2 dans K+1, etc.

    Soit le vecteur suivant :

             

    1

    2

    3

    4

    5

    6

    7

             
             

    A

    B

    C

    D

    E

    F

               

    Si on enlève le 4e élément soit D, on doit transférer le 5e élément dans le 4e et le 6e dans le 5e.

             

    1

    2

    3

    4

    5

    6

    7

             
             

    A

    B

    C

    E

    F

                 

    Le vecteur résultant contiendra 5 éléments.

  3. La copie :
  4. La copie d'un vecteur sur un autre ne présente aucune difficulté dès lors que les dimensions sont compatibles.

  5. Le tri :

Plusieurs méthodes de tri sont envisageables, nous verrons en particulier celle du tri à bulle.

  1. Approche du tableau bidimensionnel :

la matrice d'ordre deux

Afin de nous exercer au maniement des tableaux à plusieurs indices, nous allons voir le chargement d'un vecteur dans une matrice d'ordre deux.

  1. FORMALISME DES OBJETS COMPOSES DANS L'ETUDE DES STRUCTURES DE DONNEES :

Nous avons vu que les différents types d'objets peuvent être associés en les regroupant au sein d'un type particulier le type structure.

Les objets composés de ce type sont généralement appelés structure ou enregistrement.

Ce type étant modulable à volonté il faut le définir avec précision chaque fois que l'on veut l'employer.

Déclaration des types structure.

NOM TYPE STRUCTURE

Pers

NOM CHAMP

TYPE

SIGNIFICATION

Insee

Nom

Prenom

Adresse

Entier

Chaîne

Chaîne

Chaîne

Numéro d'immatriculation de la personne

Nom de la personne

Prénom de la personne

Adresse de la personne

Dans le module de déclaration les types structure sont déclarés avant les variables puisque celles-ci peuvent avoir pour type une structure.

Lorsque l'on veut faire un traitement sur un champ précis de la structure on nommera ce champ de la manière suivante : Nom de la structure suivi d'un point et du nom du champ concerné.

NOM_STRUC.NOM_CHAMP

Déclaration des variables

VARIABLE

TYPE

SIGNIFICATION

VECTEUR

 

Indiv

 

Tab[IMAX](Pers)

 

Pers

 

Vecteur contenant les renseignements généraux des stagiaires

Renseignements concernant un individu précis

 

Home