Stockage des données.
Supposons que vous ayez développé un jeu informatique appelé "User Hostile" dans lequel les joueurs s'affrontent contre des alambiqués et hostiles interface informatique. Vous devez maintenant écrire un programme qui suit les ventes mensuelles de ce jeu sur une période de cinq ans. Ou disons que vous devez faire l'inventaire des cartes à collectionner Hacker Hero.
Très bientôt, vous arriverez à la conclusion que vous avez besoin de plus que de simples types de données de base pour stocker et traiter les informations.
Tableaux. Présentation.
Pour faciliter le travail avec de grandes quantités de données, un groupe de cellules reçoit un nom commun nom. Un tel groupe de cellules est appelé un tableau.
Tableau – il s'agit d'un groupe de cellules mémoire de même type, situées côte à côte et ayant un nom commun. Chaque cellule du groupe a un numéro unique.
Il y a trois choses que vous devez apprendre lorsque vous travaillez avec des tableaux :
X allouer de la mémoire de la taille requise pour le tableau ;
X écrire des données dans la cellule souhaitée ;
X lire les données d'une cellule.
Créer un tableau. u >
Lors de la création d'un tableau, de l'espace est alloué en mémoire (un certain nombre de cellules). étendue>étendue>
1) Les tableaux peuvent être créés en énumérant simplement les éléments :
int [] nombres = < code>nouveau int [] { 1, 2, 3, 5 } ;
int signifie que tous les objets du tableau sont des entiers . À la place de int , il peut y avoir n'importe quel autre type de données. Par exemple,
string[] names = ["Vasya", "Peter", "Fedya"] ;
2) Nous ne pouvons pas spécifier immédiatement les valeurs du tableau, mais simplement créer un tableau de la longueur dont nous avons besoin.
int [] nombres = nouveau int [4] ;
3) Un tableau "sait" toujours ta taille. La taille du tableau a peut être trouvée comme ceci :
a.Longueur ;
Souvent, la taille du tableau est stockée dans une variable distincte afin que le programme puisse être facilement modifié pour fonctionner avec une taille de tableau différente. Exemple :
int N = 10 ; // stocke la taille du tableau dans la variable N
int[] nombres = new int[4] ; // crée un tableau de taille N
Console.Write(nums.Length); // affiche la taille du tableau
La taille du tableau peut être définie à partir du clavier.
|
Se référant à un élément de tableau. < /u>
L'essentiel de l'utilité des tableaux vient du fait que ses éléments sont accessibles individuellement.
Pour ce faire, utilisez un index pour numéroter les éléments.
Index est une valeur qui pointe vers un élément de tableau particulier.
N'oubliez pas : La numérotation des tableaux C# commence à zéro.< br />
Exemples d'accès au tableau A :
int x = (A[3] + 5) * A[1] / / lire les valeurs A[3] et A[1]
A[0] = x + 6 // écrit une nouvelle valeur dans A[0]
Analysons le programme pour travailler avec des éléments de tableau.
int i = 1 ;
int[] A = nouveau int[5] ; // crée un tableau de 5 éléments
A[0] = 23 ; // à chacun des 5 éléments du tableau (indices de 0 à 4)
A[1] = 12 ; // écrit une valeur spécifique
A[2] = 7 ;
A[3] = 43 ;
A[4] = 51 ;
A[2] = A[i] + 2*A[i-1] + A[2*i] ; // change la valeur de l'élément d'index 2 par le résultat de l'expression
// parce que i=1, puis en substituant la valeur de la variable i dans l'expression que nous obtenons
// expression suivante A[2] = A[1] + 2*A[0] + A[2] ;
Console.Write((A[2] + A[4]));
A la suite de l'exécution de ce programme, la valeur de la somme des éléments du tableau avec l'index 2 et l'index 4 apparaîtront à l'écran, égal à 116. Comme vous pouvez le voir dans l'exemple, nous pouvons accéder à n'importe quel élément du tableau. Et calculez également le nombre d'éléments requis à l'aide de diverses formules (par exemple, comme dans le programme A[i-1] ou A[2*i] , dans ces cas, les indices des éléments seront calculés et dépendront de la valeur de i).
Analysons un exemple de programme.
int N = 5 ;
int[] A = nouveau int[N] ;
entier x = 1 ;
A[x + 4] = A[x] + A[2 * (x + 1)] ; // après avoir remplacé x dans les expressions et les calculs
// récupère la ligne suivante A[5] = A[1] + A[4]
// A[5] aucun élément de ce type n'existe
// erreur - tableau hors limites
Le tableau est déclaré avec 5 éléments, ce qui signifie que les éléments seront numérotés de 0 à 4. Nous voyons que le programme de la 6ème ligne fait référence à un élément inexistant : A[5] .
Il s'avère que le programme a dépassé les limites du tableau.
Un dépassement de tableau est un accès à un élément à un index qui n'existe pas dans le tableau.
Dans de tels cas, le programme plante généralement avec une erreur d'exécution.
|
Lorsque vous travaillez avec des tableaux, vous devez généralement travailler avec tous les éléments du tableau à la fois.
Itérer sur les éléments : nous parcourons tous les éléments du tableau et, si nécessaire, effectuons une opération avec chacun d'eux.
Pour cela, on utilise le plus souvent une boucle avec une variable, qui passe de 0 à N-1, où N est le nombre d'éléments de tableau.
Sous N nous considérerons la taille actuelle du tableau, c'est-à-dire
N = A.Longueur ;
...
for (int i = 0; i < N; i++)
{
// ici on travaille avec A[i]
}
Dans la boucle spécifiée, la variable i prendra les valeurs 0, 1, 2, ..., N-1.  ; Ainsi, à chaque étape de la boucle, on accède à un élément spécifique du tableau avec le numéro i.
Autrement dit, il suffit de décrire ce qui doit être fait avec un élément du tableau A[i] et de placer ces actions dans une telle boucle.
Écrivons un programme qui remplit le tableau avec les premiers N nombres naturels, c'est-à-dire qu'à la fin du programme, les éléments du tableau doivent devenir égaux
A[0] = 1
A[1] = 2
A[2] = 3
...
A[N - 1] = N
Il est facile de voir le modèle : la valeur d'un élément de tableau doit être supérieure de 1 à la index de l'élément.
La boucle ressemblera à ceci
for (int i = 0; i < N; i++) { A[ je] = je + 1 ; }
|
Méthodes supplémentaires pour travailler avec des éléments de tableau
Outre la pour< /code>, vous pouvez également utiliser foreach - itère sur tous les éléments du tableau, sans utiliser d'indices. Parfois, il peut être pratique, par exemple, d'afficher un tableau à l'écran.
foreach(int je dans A)
{
Console.Write(je + " ");
}
Et c'est ainsi que l'on peut lire depuis le clavier un tableau dont les éléments sont écrits sur une ligne et séparés par un espace.
en utilisant System.Linq ; // vous devez écrire cette directive afin d'utiliser les fonctions liées à l'utilisation de tableaux
...
texte de chaîne = Console.ReadLine();
int[] array = text.Split(' ').Select(int.Parse).ToArray();
// Split() divise la chaîne en objets séparés (dans ce cas, la division d'espace)
// Select(int.Parse) convertit chaque objet (string) en int
// ToArray() écrit tous les objets reçus dans le tableau
|