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

  • View
    108

  • Download
    5

Embed Size (px)

Transcript

  • Page 1
  • A LGORITHME ET PROGRAMMATION Les tableaux
  • Page 2
  • P LAN Dfinition dun tableau Dclaration dun tableau Proprits dun tableau Utilisation dun tableau Les matrices et les tableaux multidimensionnels Tableau dchiquet ou en escalier Affectation et recopie de tableaux Parcourir itratif de tableaux
  • Page 3
  • D FINITION D UN TABLEAU Dfinition:
  • Page 4
  • D FINITION D UN TABLEAU
  • Page 5
  • Objectif : Ds que l'on travaille avec de nombreuses donnes homognes ( de mme type) la premire structure de base permettant le regroupement de ces donnes est le tableau.
  • Page 6
  • D FINITION D UN TABLEAU Les tableaux sont dfinis pour un certain type. Les tableaux C# sont indexs uniquement par des entiers et sur un intervalle fixe partir de zro. Lorsqu'une dimension a une longueur N, l'indice associ varie dans l'intervalle [ 0, N 1 ]
  • Page 7
  • D FINITION D UN TABLEAU Ci-dessous un tableau 'tab' une dimension, de n+1 cellules numrotes de 0 n : Il n'y a pas de mot clef spcifique pour la classe tableaux, mais l'oprateur symbolique [ ] indique qu'une variable de type fix est un tableau. La taille d'un tableau doit obligatoirement avoir t dfinie avant que C# accepte que vous l'utilisiez !
  • Page 8
  • P LAN Dfinition dun tableau Dclaration dun tableau Proprits dun tableau Utilisation dun tableau Les matrices et les tableaux multidimensionnels Tableau dchiquet ou en escalier Affectation et recopie de tableaux Parcourir itratif de tableaux
  • Page 9
  • D CLARATION D UN TABLEAU Dclaration d'une variable de tableau, rfrence seule: int [] table1; string[] table2; double[] table3; Etc. Dclaration d'une variable de tableau avec dfinition explicite de taille : int [ ] table1 = new int [5]; float [ ] table3 = new float [8]; string [ ] tableStr = new String [9]; Etc.
  • Page 10
  • D CLARATION D UN TABLEAU Le mot clef new correspond la cration d'un nouvel objet (un nouveau tableau) dont la taille est fixe par la valeur indique entre les crochets. On peut aussi dclarer un tableau sous la forme de deux instructions : une instruction de dclaration et une instruction de dfinition de taille avec le mot clef new, la seconde pouvant tre mise n'importe o dans le corps d'instruction, mais elle doit tre utilise avant toute manipulation du tableau.
  • Page 11
  • D CLARATION D UN TABLEAU Dclaration et initialisation avec dfinition 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
  • D CLARATION D UN TABLEAU
  • Page 13
  • P LAN Dfinition dun tableau Dclaration dun tableau Proprits dun tableau Utilisation dun tableau Les matrices et les tableaux multidimensionnels Tableau dchiquet ou en escalier Affectation et recopie de tableaux Parcourir itratif de tableaux
  • Page 14
  • P ROPRIT 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 proprit Length en lecture seule. Exemple: int [ ] table1 = {17,-9,4,3,57}; int taille; taille = table1.Length; // taille = 5
  • Page 15
  • P LAN Dfinition dun tableau Dclaration dun tableau Proprits dun tableau Utilisation dun tableau Les matrices et les tableaux multidimensionnels Tableau dchiquet ou en escalier Affectation et recopie de tableaux Parcourir itratif de tableaux
  • Page 16
  • U TILISATION DES TABLEAUX Un tableau en C# s'utilise travers une cellule de ce tableau repre par un indice obligatoirement de type entier. Le premier lment d'un tableau est numrot 0, le dernier Length-1. int table1 = new int[5]; table1[0] = 3; Console.WriteLine(table1[0]);
  • Page 17
  • U TILISATION DES TABLEAUX On peut assigner des valeurs ou des expressions du type gnral du tableau dans une cellule du tableau en utilisant lindex dune cellule.
  • Page 18
  • P LAN Dfinition dun tableau Dclaration dun tableau Proprits dun tableau Utilisation dun tableau Les matrices et les tableaux multidimensionnels Tableau dchiquet ou en escalier Affectation et recopie de tableaux Parcourir itratif de tableaux
  • Page 19
  • L ES MATRICES ET LES TABLEAUX MULTIDIMENSIONNELS Les tableaux C# peuvent avoir plusieurs dimensions, ceux qui ont deux dimensions sont dnomms matrices (vocabulaire scientifique). Les matrices s'tendent aux tableaux de dimensions trois, quatre et plus. La dclaration s'effectue avec un oprateur crochet et des virgules, exemples d'une syntaxe de dclaration d'un tableau trois dimensions : [,, ].
  • Page 20
  • L ES MATRICES ET LES TABLEAUX MULTIDIMENSIONNELS Dclaration d'une matrice, rfrence seule: int [, ] table1; float [, ] table3; string [, ] tableStr; Dclaration d'une matrice avec dfinition explicite de taille : int [, ] table1 = new int [5, 2]; float [, ] table3 = new float [2;8]; string [, ] tableStr = new String [3,9];
  • Page 21
  • L ES MATRICES ET LES TABLEAUX MULTIDIMENSIONNELS Exemple: int [, ] table1 = new int [5, 2];
  • Page 22
  • L ES MATRICES ET LES TABLEAUX MULTIDIMENSIONNELS Exemple d'criture de matrices de type int :
  • Page 23
  • L ES 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
  • P LAN Dfinition dun tableau Dclaration dun tableau Proprits dun tableau Utilisation dun tableau Les matrices et les tableaux multidimensionnels Tableau dchiquet ou en escalier Affectation et recopie de tableaux Parcourir itratif de tableaux
  • Page 25
  • T ABLEAU DCHIQUET OU EN ESCALIER Un tableau dchiquet est compos de plusieurs tableaux unidimensionnels de taille variable. La dclaration s'effectue avec des oprateurs crochets [ ] [ ] : autant de crochets que de dimensions.
  • Page 26
  • T ABLEAU DCHIQUET OU EN ESCALIER Ci-dessous le schma d'un tableau T trois dimensions en escalier :
  • Page 27
  • T ABLEAU DCHIQUET OU EN ESCALIER Pour fixer les ides, figurons la syntaxe des dclarations en C# d'un tableau d'lments de type int nomm myArray bi-dimensionnel en escalier :
  • Page 28
  • T ABLEAU DCHIQUET OU EN ESCALIER Dans le cas d'un tableau dchiquet, le champ Length contient la taille du sous-tableau unidimensionnel associ la rfrence.
  • Page 29
  • P LAN Dfinition dun tableau Dclaration dun tableau Proprits dun tableau Utilisation dun tableau Les matrices et les tableaux multidimensionnels Tableau dchiquet ou en escalier Affectation et recopie de tableaux Parcourir itratif de tableaux
  • Page 30
  • A FFECTATION ET RECOPIE DE TABLEAUX Comme les tableaux sont des objets, l'affectation de rfrences de deux tableaux distincts donne les mmes rsultats que pour d'autres objets : les deux rfrences de tableaux pointent vers le mme objet. Donc une affectation d'un tableau dans un autre t1 = t2 ne provoque pas la recopie des lments du tableau t2 dans celui de t1.
  • Page 31
  • A FFECTATION ET RECOPIE DE TABLEAUX Clone( ) : mthode qui renvoie une rfrence sur une nouvelle instance de tableau contenant les mmes lments que l'objet de tableau qui l'invoque. (il ne reste plus qu' transtyper la rfrence retourne puisque clone renvoie un type object).
  • Page 32
  • A FFECTATION ET RECOPIE DE TABLEAUX CopyTo ( Array t2, int long) : mthode de classe qui copie dans un tableau t2 dj existant et dj instanci, long reprsente lindice du premier lment qui sera copi (si l'on veut une copie complte du tableau t1 dans t2, il suffit que long = 0).
  • Page 33
  • A FFECTATION ET RECOPIE DE TABLEAUX Attention: la recopie dans un autre tableau travers les mthodes Clone ou Copy ne recopie que les rfrences, mais pas les objets points, voici un "clone" du tableau t1 de la figure prcdente dans le tableau t2 :
  • Page 34
  • A FFECTATION ET RECOPIE DE TABLEAUX
  • Page 35
  • int[] t = new int[10]; int[] t2 = new int[10]; for (int i = 0; i < 10; i++) t[i] = i; t.CopyTo(t2, 0); 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
  • P LAN Dfinition dun tableau Dclaration dun tableau Proprits dun tableau Utilisation dun tableau Les matrices et les tableaux multidimensionnels Tableau dchiquet ou en escalier Affectation et recopie de tableaux Parcourir itratif de tableaux
  • Page 37
  • P ARCOURIR ITRATIF DE TABLEAUX Les instructions itratives for( ), while, dowhile prcdemment vue permettent le parcours d'un tableau lment par lment 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); 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
  • P ARCOURIR ITRATIF DE TABLEAUX Il existe une instruction d'itration spcifique foreachin qui numre les lments d'une collection, en excutant un ensemble d'actions pour chaque lment de la collection. int[] t = new int[10]; foreach (int i in t) Console.WriteLine(i); int[] t = new int[10]; foreach (int i in t) Console.WriteLin