41
ALGORITHME ET PROGRAMMATION Les tableaux

A LGORITHME ET PROGRAMMATION Les tableaux. P LAN Définition dun tableau Déclaration dun tableau Propriétés dun tableau Utilisation dun tableau Les matrices

Embed Size (px)

Citation preview

Page 1: A LGORITHME ET PROGRAMMATION Les tableaux. P LAN Définition dun tableau Déclaration dun tableau Propriétés dun tableau Utilisation dun tableau Les matrices

ALGORITHME ET PROGRAMMATIONLes tableaux

Page 2: A LGORITHME ET PROGRAMMATION Les tableaux. P LAN Définition dun tableau Déclaration dun tableau Propriétés dun tableau Utilisation dun tableau Les matrices

PLAN

Définition d’un tableau Déclaration d’un tableau Propriétés d’un tableau Utilisation d’un tableau Les matrices et les tableaux

multidimensionnels Tableau déchiqueté ou en escalier Affectation et recopie de tableaux Parcourir itératif de tableaux

Page 3: A LGORITHME ET PROGRAMMATION Les tableaux. P LAN Définition dun tableau Déclaration dun tableau Propriétés dun tableau Utilisation dun tableau Les matrices

DÉFINITION D’UN TABLEAU

Définition:

Page 4: A LGORITHME ET PROGRAMMATION Les tableaux. P LAN Définition dun tableau Déclaration dun tableau Propriétés dun tableau Utilisation dun tableau Les matrices

DÉFINITION D’UN TABLEAU

Page 5: A LGORITHME ET PROGRAMMATION Les tableaux. P LAN Définition dun tableau Déclaration dun tableau Propriétés dun tableau Utilisation dun tableau Les matrices

DÉFINITION D’UN TABLEAU

Objectif : Dès que l'on travaille avec de nombreuses données homogènes ( de même type) la première structure de base permettant le regroupement de ces données est le tableau.

Page 6: A LGORITHME ET PROGRAMMATION Les tableaux. P LAN Définition dun tableau Déclaration dun tableau Propriétés dun tableau Utilisation dun tableau Les matrices

DÉFINITION D’UN TABLEAU

Les tableaux sont définis pour un certain type.

Les tableaux C# sont indexés uniquement par des entiers et sur un intervalle fixe à partir de zéro.

Lorsqu'une dimension a une longueur N, l'indice associé varie dans l'intervalle [ 0 , N – 1 ]

Page 7: A LGORITHME ET PROGRAMMATION Les tableaux. P LAN Définition dun tableau Déclaration dun tableau Propriétés dun tableau Utilisation dun tableau Les matrices

DÉFINITION D’UN TABLEAU

Ci-dessous un tableau 'tab' à une dimension, de n+1 cellules numérotées de 0 à n :

Il n'y a pas de mot clef spécifique pour la classe tableaux, mais l'opérateur symbolique [ ] indique qu'une variable de type fixé est un tableau.

La taille d'un tableau doit obligatoirement avoir été définie avant que C# accepte que vous l'utilisiez !

Page 8: A LGORITHME ET PROGRAMMATION Les tableaux. P LAN Définition dun tableau Déclaration dun tableau Propriétés dun tableau Utilisation dun tableau Les matrices

PLAN

Définition d’un tableau

Déclaration d’un tableau Propriétés d’un tableau Utilisation d’un tableau Les matrices et les tableaux

multidimensionnels Tableau déchiqueté ou en escalier Affectation et recopie de tableaux Parcourir itératif de tableaux

Page 9: A LGORITHME ET PROGRAMMATION Les tableaux. P LAN Définition dun tableau Déclaration dun tableau Propriétés dun tableau Utilisation dun tableau Les matrices

DÉCLARATION D’UN TABLEAU

Déclaration d'une variable de tableau, référence seule: int [] table1; string[] table2; double[] table3; Etc.

Déclaration d'une variable de tableau avec définition explicite de taille : int [ ] table1 = new int [5]; float [ ] table3 = new float [8]; string [ ] tableStr = new String [9]; Etc.

Page 10: A LGORITHME ET PROGRAMMATION Les tableaux. P LAN Définition dun tableau Déclaration dun tableau Propriétés dun tableau Utilisation dun tableau Les matrices

DÉCLARATION D’UN TABLEAU

Le mot clef new correspond à la création d'un nouvel objet (un nouveau tableau) dont la taille est fixée par la valeur indiquée entre les crochets.

On peut aussi déclarer un tableau sous la forme de deux instructions : une instruction de déclaration et une instruction de définition de taille avec le mot clef new, la seconde pouvant être mise n'importe où dans le corps d'instruction, mais elle doit être utilisée avant toute manipulation du tableau.

Page 11: A LGORITHME ET PROGRAMMATION Les tableaux. P LAN Définition dun tableau Déclaration dun tableau Propriétés dun tableau Utilisation dun tableau Les matrices

DÉCLARATION D’UN TABLEAU

Déclaration et initialisation avec définition implicite de taille : int [ ] table1 = {17,-9,4,3,57}; float [ ] table3 = {-15.7f, 75, -22.03f, 3 ,57 }; string [ ] tableStr =

{"chat","chien","souris","rat","vache"}

Page 12: A LGORITHME ET PROGRAMMATION Les tableaux. P LAN Définition dun tableau Déclaration dun tableau Propriétés dun tableau Utilisation dun tableau Les matrices

DÉCLARATION D’UN TABLEAU

Page 13: A LGORITHME ET PROGRAMMATION Les tableaux. P LAN Définition dun tableau Déclaration dun tableau Propriétés dun tableau Utilisation dun tableau Les matrices

PLAN

Définition d’un tableau Déclaration d’un tableau

Propriétés d’un tableau Utilisation d’un tableau Les matrices et les tableaux

multidimensionnels Tableau déchiqueté ou en escalier Affectation et recopie de tableaux Parcourir itératif de tableaux

Page 14: A LGORITHME ET PROGRAMMATION Les tableaux. P LAN Définition dun tableau Déclaration dun tableau Propriétés dun tableau Utilisation dun tableau Les matrices

PROPRIÉTÉ D’UN TABLEAU

Il existe en C# un attribut qui contient la taille d'un tableau uni-dimensionnel, quel que soit son type, c'est la propriété Length en lecture seule.

Exemple:int [ ] table1 = {17,-9,4,3,57};int taille;taille = table1.Length; // taille = 5

Page 15: A LGORITHME ET PROGRAMMATION Les tableaux. P LAN Définition dun tableau Déclaration dun tableau Propriétés dun tableau Utilisation dun tableau Les matrices

PLAN

Définition d’un tableau Déclaration d’un tableau Propriétés d’un tableau

Utilisation d’un tableau Les matrices et les tableaux

multidimensionnels Tableau déchiqueté ou en escalier Affectation et recopie de tableaux Parcourir itératif de tableaux

Page 16: A LGORITHME ET PROGRAMMATION Les tableaux. P LAN Définition dun tableau Déclaration dun tableau Propriétés dun tableau Utilisation dun tableau Les matrices

UTILISATION DES TABLEAUX

Un tableau en C# s'utilise à travers une cellule de ce tableau repérée par un indice obligatoirement de type entier.

Le premier élément d'un tableau est numéroté 0, le dernier Length-1.

int table1 = new int[5];

table1[0] = 3;

Console.WriteLine(table1[0]);

Page 17: A LGORITHME ET PROGRAMMATION Les tableaux. P LAN Définition dun tableau Déclaration dun tableau Propriétés dun tableau Utilisation dun tableau Les matrices

UTILISATION DES TABLEAUX

On peut assigner des valeurs ou des expressions du type général du tableau dans une cellule du tableau en utilisant l’index d’une cellule.

Page 18: A LGORITHME ET PROGRAMMATION Les tableaux. P LAN Définition dun tableau Déclaration dun tableau Propriétés dun tableau Utilisation dun tableau Les matrices

PLAN

Définition d’un tableau Déclaration d’un tableau Propriétés d’un tableau Utilisation d’un tableau

Les matrices et les tableaux multidimensionnels

Tableau déchiqueté ou en escalier Affectation et recopie de tableaux Parcourir itératif de tableaux

Page 19: A LGORITHME ET PROGRAMMATION Les tableaux. P LAN Définition dun tableau Déclaration dun tableau Propriétés dun tableau Utilisation dun tableau Les matrices

LES MATRICES ET LES TABLEAUX MULTIDIMENSIONNELS

Les tableaux C# peuvent avoir plusieurs dimensions, ceux qui ont deux dimensions sont dénommés matrices (vocabulaire scientifique).

Les matrices s'étendent aux tableaux de dimensions trois, quatre et plus.

La déclaration s'effectue avec un opérateur crochet et des virgules, exemples d'une syntaxe de déclaration d'un tableau à trois dimensions :

[ , , ] .

Page 20: A LGORITHME ET PROGRAMMATION Les tableaux. P LAN Définition dun tableau Déclaration dun tableau Propriétés dun tableau Utilisation dun tableau Les matrices

LES MATRICES ET LES TABLEAUX MULTIDIMENSIONNELS

Déclaration d'une matrice, référence seule: int [ , ] table1; float [ , ] table3; string [ , ] tableStr;

Déclaration d'une matrice avec définition explicite de taille : int [ , ] table1 = new int [5, 2]; float [ , ] table3 = new float [2;8]; string [ , ] tableStr = new String [3,9];

Page 21: A LGORITHME ET PROGRAMMATION Les tableaux. P LAN Définition dun tableau Déclaration dun tableau Propriétés dun tableau Utilisation dun tableau Les matrices

LES MATRICES ET LES TABLEAUX MULTIDIMENSIONNELS

Exemple:int [ , ] table1 = new int [5, 2];

Page 22: A LGORITHME ET PROGRAMMATION Les tableaux. P LAN Définition dun tableau Déclaration dun tableau Propriétés dun tableau Utilisation dun tableau Les matrices

LES MATRICES ET LES TABLEAUX MULTIDIMENSIONNELS

Exemple d'écriture de matrices de type int :

Page 23: A LGORITHME ET PROGRAMMATION Les tableaux. P LAN Définition dun tableau Déclaration dun tableau Propriétés dun tableau Utilisation dun tableau Les matrices

LES MATRICES ET LES TABLEAUX MULTIDIMENSIONNELS

Dans le cas d'un tableau multidimensionnel, Length correspond au produit des tailles de chaque dimension d'indice :

Page 24: A LGORITHME ET PROGRAMMATION Les tableaux. P LAN Définition dun tableau Déclaration dun tableau Propriétés dun tableau Utilisation dun tableau Les matrices

PLAN

Définition d’un tableau Déclaration d’un tableau Propriétés d’un tableau Utilisation d’un tableau Les matrices et les tableaux

multidimensionnels

Tableau déchiqueté ou en escalier

Affectation et recopie de tableaux Parcourir itératif de tableaux

Page 25: A LGORITHME ET PROGRAMMATION Les tableaux. P LAN Définition dun tableau Déclaration dun tableau Propriétés dun tableau Utilisation dun tableau Les matrices

TABLEAU DÉCHIQUETÉ OU EN ESCALIER

Un tableau déchiqueté est composé de plusieurs tableaux unidimensionnels de taille variable. La déclaration s'effectue avec des opérateurs crochets [ ] [ ]… : autant de crochets que de dimensions.

Page 26: A LGORITHME ET PROGRAMMATION Les tableaux. P LAN Définition dun tableau Déclaration dun tableau Propriétés dun tableau Utilisation dun tableau Les matrices

TABLEAU DÉCHIQUETÉ OU EN ESCALIER

Ci-dessous le schéma d'un tableau T à trois dimensions en escalier :

Page 27: A LGORITHME ET PROGRAMMATION Les tableaux. P LAN Définition dun tableau Déclaration dun tableau Propriétés dun tableau Utilisation dun tableau Les matrices

TABLEAU DÉCHIQUETÉ OU EN ESCALIER

Pour fixer les idées, figurons la syntaxe des déclarations en C# d'un tableau d'éléments de type int nommé myArray bi-dimensionnel en escalier :

Page 28: A LGORITHME ET PROGRAMMATION Les tableaux. P LAN Définition dun tableau Déclaration dun tableau Propriétés dun tableau Utilisation dun tableau Les matrices

TABLEAU DÉCHIQUETÉ OU EN ESCALIER Dans le cas d'un tableau déchiqueté, le

champ Length contient la taille du sous-tableau unidimensionnel associé à la référence.

Page 29: A LGORITHME ET PROGRAMMATION Les tableaux. P LAN Définition dun tableau Déclaration dun tableau Propriétés dun tableau Utilisation dun tableau Les matrices

PLAN

Définition d’un tableau Déclaration d’un tableau Propriétés d’un tableau Utilisation d’un tableau Les matrices et les tableaux

multidimensionnels Tableau déchiqueté ou en escalier

Affectation et recopie de tableaux

Parcourir itératif de tableaux

Page 30: A LGORITHME ET PROGRAMMATION Les tableaux. P LAN Définition dun tableau Déclaration dun tableau Propriétés dun tableau Utilisation dun tableau Les matrices

AFFECTATION ET RECOPIE DE TABLEAUX

Comme les tableaux sont des objets, l'affectation de références de deux tableaux distincts donne les mêmes résultats que pour d'autres objets : les deux références de tableaux pointent vers le même objet. Donc une affectation d'un tableau dans un autre t1 = t2 ne provoque pas la recopie des éléments du tableau t2 dans celui de t1.

Page 31: A LGORITHME ET PROGRAMMATION Les tableaux. P LAN Définition dun tableau Déclaration dun tableau Propriétés dun tableau Utilisation dun tableau Les matrices

AFFECTATION ET RECOPIE DE TABLEAUX

Clone( ) : méthode qui renvoie une référence sur une nouvelle instance de tableau contenant les mêmes éléments que l'objet de tableau qui l'invoque. (il ne reste plus qu'à transtyper la référence retournée puisque clone renvoie un type object).

Page 32: A LGORITHME ET PROGRAMMATION Les tableaux. P LAN Définition dun tableau Déclaration dun tableau Propriétés dun tableau Utilisation dun tableau Les matrices

AFFECTATION ET RECOPIE DE TABLEAUX

CopyTo ( Array t2, int long) : méthode de classe qui copie dans un tableau t2 déjà existant et déjà instancié, long représente l’indice du premier élément qui sera copié (si l'on veut une copie complète du tableau t1 dans t2, il suffit que long = 0).

Page 33: A LGORITHME ET PROGRAMMATION Les tableaux. P LAN Définition dun tableau Déclaration dun tableau Propriétés dun tableau Utilisation dun tableau Les matrices

AFFECTATION ET RECOPIE DE TABLEAUX

Attention: la recopie dans un autre tableau à travers les méthodes Clone ou Copy ne recopie que les références, mais pas les objets pointés, voici un "clone" du tableau t1 de la figure précédente dans le tableau t2 :

Page 34: A LGORITHME ET PROGRAMMATION Les tableaux. P LAN Définition dun tableau Déclaration dun tableau Propriétés dun tableau Utilisation dun tableau Les matrices

AFFECTATION ET RECOPIE DE TABLEAUX

Page 35: A LGORITHME ET PROGRAMMATION Les tableaux. P LAN Définition dun tableau Déclaration dun tableau Propriétés dun tableau Utilisation dun tableau Les matrices

AFFECTATION ET RECOPIE DE TABLEAUX

int[] t = new int[10];int[] t2 = new int[10];for (int i = 0; i < 10; i++) t[i] = i;t.CopyTo(t2, 0);

Page 36: A LGORITHME ET PROGRAMMATION Les tableaux. P LAN Définition dun tableau Déclaration dun tableau Propriétés dun tableau Utilisation dun tableau Les matrices

PLAN

Définition d’un tableau Déclaration d’un tableau Propriétés d’un tableau Utilisation d’un tableau Les matrices et les tableaux

multidimensionnels Tableau déchiqueté ou en escalier Affectation et recopie de tableaux

Parcourir itératif de tableaux

Page 37: A LGORITHME ET PROGRAMMATION Les tableaux. P LAN Définition dun tableau Déclaration dun tableau Propriétés dun tableau Utilisation dun tableau Les matrices

PARCOURIR ITÉRATIF DE TABLEAUX

Les instructions itératives for( …), while, do…while précédemment vue permettent le parcours d'un tableau élément par élément à travers l'indice de tableau.

int[] t = new int[10];int[] t2 = new int[10];for (int i = 0; i < 10; i++) t[i] = i;t.CopyTo(t2, 0);

Page 38: A LGORITHME ET PROGRAMMATION Les tableaux. P LAN Définition dun tableau Déclaration dun tableau Propriétés dun tableau Utilisation dun tableau Les matrices

PARCOURIR ITÉRATIF DE TABLEAUX

Il existe une instruction d'itération spécifique foreach…in qui énumère les éléments d'une collection, en exécutant un ensemble d'actions pour chaque élément de la collection.

int[] t = new int[10];…foreach (int i in t) Console.WriteLine(i);

Page 39: A LGORITHME ET PROGRAMMATION Les tableaux. P LAN Définition dun tableau Déclaration dun tableau Propriétés dun tableau Utilisation dun tableau Les matrices

PARCOURIR ITÉRATIF DE TABLEAUX

Avantage : la simplicité d'écriture, toujours la même quelle que soit le type du tableau.

Inconvénient : on ne peut qu'énumérer en lecture les éléments d'un tableau.

Page 40: A LGORITHME ET PROGRAMMATION Les tableaux. P LAN Définition dun tableau Déclaration dun tableau Propriétés dun tableau Utilisation dun tableau Les matrices

CONCLUSION

Les tableaux permettent de rassembler une grande quantité de données dans une seule variable.

Les propriétés et les méthodes associées. L’instruction foreach…in

Page 41: A LGORITHME ET PROGRAMMATION Les tableaux. P LAN Définition dun tableau Déclaration dun tableau Propriétés dun tableau Utilisation dun tableau Les matrices

QUESTION

Vous avez des questions?