Programmation informatique - Tableaux
Prenons une situation où nous devons stocker cinq nombres entiers. Si nous utilisons les concepts de variables simples et de types de données de programmation, nous avons besoin de cinq variables deint type de données et le programme sera comme suit -
#include <stdio.h>
int main() {
int number1;
int number2;
int number3;
int number4;
int number5;
number1 = 10;
number2 = 20;
number3 = 30;
number4 = 40;
number5 = 50;
printf( "number1: %d\n", number1);
printf( "number2: %d\n", number2);
printf( "number3: %d\n", number3);
printf( "number4: %d\n", number4);
printf( "number5: %d\n", number5);
}
C'était simple, car nous devions stocker seulement cinq nombres entiers. Supposons maintenant que nous devions stocker 5000 nombres entiers. Allons-nous utiliser 5000 variables?
Pour gérer de telles situations, presque tous les langages de programmation fournissent un concept appelé array. Un tableau est une structure de données, qui peut stocker une collection d'éléments de taille fixe du même type de données. Un tableau est utilisé pour stocker une collection de données, mais il est souvent plus utile de considérer un tableau comme une collection de variables du même type.
Au lieu de déclarer des variables individuelles, telles que nombre1, nombre2, ..., nombre99, vous déclarez simplement une variable de tableau numberde type entier et utilisez number1 [0], number1 [1] et ..., number1 [99] pour représenter des variables individuelles. Ici, 0, 1, 2, ..... 99 sontindex associé à var variable et ils sont utilisés pour représenter les éléments individuels disponibles dans le tableau.
Tous les tableaux sont constitués d'emplacements de mémoire contigus. L'adresse la plus basse correspond au premier élément et l'adresse la plus élevée au dernier élément.
Créer des tableaux
Pour créer une variable tableau en C, un programmeur spécifie le type des éléments et le nombre d'éléments à stocker dans ce tableau. Vous trouverez ci-dessous une syntaxe simple pour créer un tableau en programmation C -
type arrayName [ arraySize ];
C'est ce qu'on appelle un tableau unidimensionnel . learraySize doit être une constante entière supérieure à zéro et typepeut être n'importe quel type de données C valide. Par exemple, maintenant pour déclarer un tableau de 10 éléments appelénumber de type int, utilisez cette déclaration -
int number[10];
Ici, nombre est un tableau de variables, qui est suffisant pour contenir jusqu'à 10 nombres entiers.
Initialisation des tableaux
Vous pouvez initialiser un tableau en C un par un ou en utilisant une seule instruction comme suit -
int number[5] = {10, 20, 30, 40, 50};
Le nombre de valeurs entre accolades {} ne peut pas être supérieur au nombre d'éléments que nous déclarons pour le tableau entre crochets [].
Si vous omettez la taille du tableau, un tableau juste assez grand pour contenir l'initialisation est créé. Par conséquent, si vous écrivez -
int number[] = {10, 20, 30, 40, 50};
Vous allez créer exactement le même tableau que vous l'avez fait dans l'exemple précédent. Voici un exemple pour affecter un seul élément du tableau -
number[4] = 50;
L'instruction ci-dessus attribue au numéro d'élément 5e dans le tableau une valeur de 50. Tous les tableaux ont 0 comme index de leur premier élément qui est également appelé l'index de base et le dernier index d'un tableau sera la taille totale du tableau moins 1. L'image suivante montre la représentation picturale du tableau dont nous avons discuté ci-dessus -
Accès aux éléments de la baie
Un élément est accessible en indexant le nom du tableau. Cela se fait en plaçant l'index de l'élément entre crochets après le nom du tableau. Par exemple -
int var = number[9];
L'instruction ci-dessus prendra le 10e élément du tableau et attribuera la valeur à varvariable. L'exemple suivant utilise tous les trois concepts mentionnés ci-dessus, à savoir. création, affectation et accès aux tableaux -
#include <stdio.h>
int main () {
int number[10]; /* number is an array of 10 integers */
int i = 0;
/* Initialize elements of array n to 0 */
while( i < 10 ) {
/* Set element at location i to i + 100 */
number[ i ] = i + 100;
i = i + 1;
}
/* Output each array element's value */
i = 0;
while( i < 10 ) {
printf("number[%d] = %d\n", i, number[i] );
i = i + 1;
}
return 0;
}
Lorsque le code ci-dessus est compilé et exécuté, il produit le résultat suivant -
number[0] = 100
number[1] = 101
number[2] = 102
number[3] = 103
number[4] = 104
number[5] = 105
number[6] = 106
number[7] = 107
number[8] = 108
number[9] = 109
Tableaux en Java
Voici le programme équivalent écrit en Java. Java prend en charge les tableaux, mais il y a une petite différence dans la façon dont ils sont créés en Java à l'aide denew opérateur.
Vous pouvez essayer d'exécuter le programme suivant pour voir la sortie, qui doit être identique au résultat généré par l'exemple C ci-dessus.
public class DemoJava {
public static void main(String []args) {
int[] number = new int[10];
int i = 0;
while( i < 10 ) {
number[ i ] = i + 100;
i = i + 1;
}
i = 0;
while( i < 10 ) {
System.out.format( "number[%d] = %d\n", i, number[i] );
i = i + 1;
}
}
}
Lorsque le programme ci-dessus est exécuté, il produit le résultat suivant -
number[0] = 100
number[1] = 101
number[2] = 102
number[3] = 103
number[4] = 104
number[5] = 105
number[6] = 106
number[7] = 107
number[8] = 108
number[9] = 109
Tableaux (listes) en Python
Python n'a pas de concept de Array, à la place Python fournit une autre structure de données appelée list, qui fournit des fonctionnalités similaires à celles des tableaux dans n'importe quel autre langage.
Voici le programme équivalent écrit en Python -
# Following defines an empty list.
number = []
i = 0
while i < 10:
# Appending elements in the list
number.append(i + 100)
i = i + 1
i = 0
while i < 10:
# Accessing elements from the list
print "number[", i, "] = ", number[ i ]
i = i + 1
Lorsque le programme ci-dessus est exécuté, il produit le résultat suivant -
number[ 0 ] = 100
number[ 1 ] = 101
number[ 2 ] = 102
number[ 3 ] = 103
number[ 4 ] = 104
number[ 5 ] = 105
number[ 6 ] = 106
number[ 7 ] = 107
number[ 8 ] = 108
number[ 9 ] = 109