From t-o-f

Processing: Tableau ("Array")

Contents (hide)

  1. 1. Déclarer un tableau
  2. 2. Créer un tableau
  3. 3. La taille d'un tableau
  4. 4. Remplir un tableau
  5. 5. Remplir un tableau d'objets
  6. 6. Tableau à deux dimensions
  7. 7. Comparaison d'éléments entre eux
  8. 8. Exemples

1.  Déclarer un tableau

Un tableau ne peut contenir qu'un seul type de variable.

type[] monTableau ;

2.  Créer un tableau

Lorsque l'on crée un tableau, il faut définir sa taille:

float[] tableau = new float[taille] ;

Il est possible de déclarer et de remplir le tableau simultanément:

int[] tableau = {45,43,10};

3.  La taille d'un tableau

La propriété length d'un tableau indique le nombre d'éléments d'un tableau:

monTableau.length

4.  Remplir un tableau

Chaque élément d'un tableau est associé à un index. La numérotation des index commence toujours à 0 et se termine à la taille du tableau - 1. Par exemple, la numérotation des index d'un tableau de 100 éléments commence à 0 et se termine à 99.

Remplir un tableau manuellement:

int[] monTableau   = new int[100];

monTableau[0] = random(100);
monTableau[1] = random(100);
monTableau[2] = random(100);
... // etc
monTableau[99] = random(100);

Remplir un tableau avec une boucle

int[] monTableau   = new int[100];

for (int i = 0; i < monTableau.length; i=i+1 ) {
        monTableau[i] = random(100);
}

5.  Remplir un tableau d'objets

maClasse[] monTableau  = new maClasse[5];

for (int i = 0; i < monTableau.length; i=i+1 ) {
        monTableau[i] = new maClasse();
}

6.  Tableau à deux dimensions

Chaque itération de la boucle imbriquée accède ou modifie une cellule d'un tableau à deux dimensions.
i correspond au numéro de la colonne et j celui la rangée d'une cellule à une itération spécifique.

int colonnes = 5;
int rangees = 5;

int[][] visage; // tableau 2D

void setup(){
        size(400,400);
        smooth();
        noStroke();

        visage = new int[colonnes][rangees]; // chaque cellule prend comme valeur 0

        // Changer la valeur de certaines cellules
        visage[1][1] = 255;
        visage[3][1] = 255;
        visage[1][3] = 255;
        visage[2][3] = 255;
        visage[3][3] = 255;

}

void draw(){
        background(255);

        float largeurColonne = width/colonnes;
        float hateurRangee = height/rangees;

        fill(0);
        for(int i=0 ; i < colonnes ; i++){
                for(int j=0 ; j < rangees ; j++){
                        color couleur =  visage[i][j];
                        fill(couleur);
                        float x = i*largeurColonne;
                        float y = j*hateurRangee;
                        rect( x+1 , y+1 , largeurColonne-2 , hateurRangee-2 );
                }
        }
}

Exemple 1: Tableau à deux dimensions 

Exemple 2: Tableau 2D de plantes 

7.  Comparaison d'éléments entre eux

Chaque itération de la boucle imbriquée suivante permet de comparer tous les éléments entre eux tout en évitant les répétitions.

// Dans cet exemple, "elements" est un tableau qui contient
// des objets de type Element

for ( int i =0 ; i < elements.length ; i++ ) {

        Element element_i = elements[i];

        for ( int j =i+1 ; j < elements.length ; j++ ) {

                Element element_j = elements[j];

                // Effectuer une comparaison entre element_i et element_j ici
        }

Exemple: Cercles (collisions) 

8.  Exemples

Récupéré sur http://wiki.t-o-f.info/Processing/Tableau
Page mise à jour le 28 December 2011 à 14h24