07 – PROCESSING – Tableaux
Je vous rappelle que chaque exercice doit apparaître sur votre site personnel d’ISN : le résultat (si besoin),
ainsi que son code commenté…
Résumé de cours
Un tableau est une liste, permettant de stocker des informations (nombres, textes, images…etc.). Il y a
autant de types de tableaux que de types de variables.
Voici un exemple de déclaration et d’initialisation ; cette façon de procéder est à utiliser lorsque l’on
connaît à priori le contenu du tableau :
String[] nom_tableau = {”texte1” , ”texte2” , ”texte3”} ;
Une seconde façon de créer un tableau de taille fixée est uniquement de l’initialiser, afin de le remplir à
posteriori :
String[] nom_tableau = new String[3] ;
...
nom_tableau[0] = “texte1” ;
nom_tableau[1] = “texte2” ;
nom_tableau[2] = “texte3” ;
Important : on remarque que le premier élément d’un tableau est doté du numéro 0. Un tableau de taille
𝑁 sera donc composé de 𝑁 éléments, numérotés de 0 à 𝑁 − 1.
Enfin, la troisième façon est lorsque l’on souhaite créer un tableau vide, de taille non connue à l’avance :
int[] tableau_nombres ;
Plusieurs commandes sont très utiles pour modifier les tableaux : splice, concat, append,
shorten…etc. Toutes ces fonctions sont bien évidemment détaillées dans la référence de Processing,
sous l’intitulé Array Functions. La commande tableau.length renvoie la taille du tableau (très
pratique lorsque le tableau est construit au fur et à mesure…).
Selon les mêmes syntaxes vues précédemment, on peut créer des tableaux à plusieurs dimensions :
float tableau3[][] ;
Exercice 16
1. Créer un tableau de 50 nombres réels.
2. Le remplir avec des nombres aléatoires compris entre 0 et 10.
3. Afficher toutes les valeurs du tableau sous la forme :
Valeur 1 du tableau = …
Valeur 2 du tableau = …
…etc.
Exercice 17
Créer une fonction afficheTableau qui fait ce que son nom indique… Donner quelques exemples dans le
programme, afin que je puisse visualiser des résultats.
Exercice 18
Ecrire un programme qui crée et affiche un tableau 5x5 tel que :
Le tableau sera évidemment rempli de manière intelligente et non-répétitive à l’aide des notions étudiées
dans les précédents cours.
Exercice 19
1. Créer un tableau, nommé couleurs, de 50 lignes et 3 colonnes.
2. Créer une fonction creerCouleur (sans argument) qui détermine aléatoirement 3 entiers R, V et B
compris entre 0 et 255.
3. Créer un tableau d’entiers, nommé rayons, de dimension 1 et de taille 50.
4. Créer une fonction creerRayon (sans argument) qui détermine aléatoirement un entier RAYON,
compris entre 5 et 20.
5. Créer une fonction creerDisque, qui prend un entier N en argument, et donne en sortie le tracé
d’un disque de rayon N, dont le centre est placé aléatoirement dans la zone de dessin.
6. Utiliser tous les tableaux et fonctions précédents afin de réaliser un programme qui génère 50
disques de rayon aléatoire (entre 5 et 20), à un endroit aléatoire et avec une couleur RVB aléatoire.
Exercice 20
1. Afin de représenter 𝑛 points du plan, on va utiliser un tableau pour les coordonnées :
int[][] coordonnees = new int [n][2]
b. Ecrire une seconde fonction void dessine(int[][] t){…} ; reliant les points du
tableau précédent afin de dessiner un polygone.
2. Ecrire une fonction dessineRectangle qui tracera en rouge le plus petit rectangle contenant ce
polygone (utiliser rectMode(CORNERS) ;).
3. A présent, l’objectif est d’animer le programme précédent : les points bougent un tout petit peu (1
ou 2 px dans n’importe quelle direction), le polygone se déforme doucement et le rectangle rouge
s’adapte. Il est également nécessaire d’empêcher les points de sortir de la fenêtre…