wiki.t-o-f.info

Cours

Ateliers

Processing / Tableau ("Array")

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




Dernière modification: 28 décembre 2011 à 14h24