Tableaux de variables

Description

Un tableau est une collection de variables qui sont accessibles àl'aide d'un numéro d'index. En programmation en langage C, langage sur lequel le langage Arduino est basé, les tableaux peuvent être compliqués, mais utilisé de simples tableaux est relativement simple.

Créer (Déclarer) un tableau

Toutes les méthodes suivantes sont des façons correctes de créer (déclarer) un tableau de variables.

int myInts[6]; int myPins[] = {2, 4, 8, 3, 6}; int mySensVals[6] = {2, 4, -8, 3, 2, -7}; char message[6] = "hello";

Vous pouvez déclarer un tableau de variables sans les initialiser, tel que le tableau myInts dans l'exemple.

Dans le tableau myPins de l'exemple, nous déclarons un tableau sans déclarer explicitement une taille. Le compilateur compte les éléments et crée un tableau de la taille appropriée.

Enfin, vous pouvez à la fois initialiser et dimensionner votre tableau, comme avec le tableau mySensVals de l'exemple. Noter que lorsque l'on déclare un tableau de type char, un élément supplémentaire doit être prévu lors de votre initialisation pour y stocker le caractère nul de fin de chaîne.

Accéder aux éléments d'un tableau

Les éléments d'un tableau sont "zero indexés", ce qui veut dire, si l'on se reporte aux initialisations de tableau ci-dessus, que le premier élément du tableau est à l'index 0. Ainsi:

mySensVals[0] == 2, mySensVals[1] == 4, et ainsi de suite

Cela signifie également que dans un tableau de 10 éléments, l'index 9 est les dernier élément. Ainsi:

int myArray[10] = {9, 3, 2, 4, 3, 2, 7, 8, 9, 11}; // myArray[9] contient 11 // myArray[10] n'est pas valide et contient une information aléatoire (autre adresse mémoire)

Pour cette raison, vous devez faire attention lors de l'accès aux tableaux. Accéder à un tableau en dépassant la fin (càd en utilisant un index supérieur à la taille du tableau -1) entraîne la lecture d'emplacement mémoire qui sont utilisés dans d'autres buts. Lire des valeurs depuis ces emplacements n'aura probablement pas beaucoup de conséquence si ce n'est d'obtenir des données invalides. Par contre, écrire des valeurs à des localisation aléatoire de la mémoire est définitivement une mauvaise idée et peut souvent conduire à des résultats malheureux tel qu'un arrêt ou des dysfonctionnement du programme. Et ceci peut être un bogue très difficile à débusquer.

A la différence du langage BASIC ou du langage JAVA, le compilateur C ne vérifie pas si l'accès à un tableau se fait dans les limites autorisées par la taille du tableau que vous avez déclarée.

Utilisation du tableau

Pour attribuer une valeur à un emplacement du tableau:

mySensVals[0] = 10;

Pour obtenir une valeur depuis un emplacement du tableau:

x = mySensVals[4];

Tableau et boucles for:

Les tableaux sont souvent utilisés à l'intérieur de boucle for, où le compteur de la boucle est utilisé en tant qu'index pour chaque élément du tableau. Par exemple, pour afficher les éléments d'un tableau sur le port série, vous pouvez écrire quelque chose comme çà:

int i; for (i = 0; i < 5; i = i + 1) { Serial.println(myPins[i]); }

Exemple

Un exemple de tableau à 2 dimensions (remarquer la syntaxe):

char touches[LIGNES][COLONNES] = { // tableau de char à 2 dimensions {'1','2','3','A'}, {'4','5','6','B'}, {'7','8','9','C'}, {'*','0','#','D'} };

Pour un programme d'exemple complet de démonstration de l'utilisation des tableaux, voir le programme d'exemple K2000 dans les Tutoriels (en anglais).

ARDUINO BUY RECOMMENDATION

Arduino UNO R3
Arduino Starter Kit
Please note: These are Amazon affiliate links. If you buy the components through these links, We will get a commission at no extra cost to you. We appreciate it.

※ OUR MESSAGES