Introduction.

Très souvent, lorsque vous travaillez avec des informations, vous devez traiter des données tabulaires. Les programmes modernes fonctionnent très souvent avec de telles données. L'exemple le plus simple est la programmation de jeux sur un damier : tic-tac-toe, échecs, dames, etc.

En mathématiques, ces structures sont appelées matrices.

 
Matrix est un tableau rectangulaire composé d'éléments de même type (chiffres, chaînes, etc.).< / span>

De telles données en C# peuvent être stockées et traitées sous forme de tableaux à deux dimensions - "tableaux de tableaux" .
Pour traiter les données du tableau, il est nécessaire de se souvenir de l'état de chaque cellule (cellule). Chaque cellule a deux nombres : un numéro de ligne et un numéro de colonne.
Dans la matrice, chaque élément a deux indices : d'abord le numéro de ligne est indiqué, puis le numéro de colonne. La numérotation des lignes et des colonnes commence à zéro.
Par exemple, l'élément A[1, 2] est l'élément situé dans la deuxième ligne et la troisième colonne.

Tout comme avec les tableaux normaux, pour travailler avec des matrices, vous devez apprendre à les créer, entrer, traiter et afficher.

Créer une matrice.

Il est possible de créer une matrice en mémoire de une taille donnée remplie de quelques valeurs initiales.

int[,] array = new int[4, 2] ; // 4 lignes, 2 colonnes

 

Après avoir créé une matrice, vous pouvez la remplir avec des valeurs arbitraires. Étant donné que chaque élément a deux index, il est nécessaire d'utiliser des boucles imbriquées

for (int i=1 ; i <= N, i++) { / / N - nombre de lignes for (int j=1; j <= N, j++) { // M est le nombre de colonnes A[je, j] = ...   } } Affichage de la matrice.

Deux boucles imbriquées sont généralement utilisées pour traiter et afficher la liste. La première boucle est sur le numéro de ligne, la seconde sur les éléments de la ligne.  Pour afficher la matrice sur l'écran ligne par ligne, en séparant les nombres par des espaces sur une ligne, vous devez écrire le fragment suivant :
  for (int i=1 ; i <= N, i++) { pour (int j=1; j <= N, j++) { Console.Ecrire(A[i, j] + " ");   }   Console.WriteLine(); // passe à une nouvelle ligne }

Vous pouvez faire la même chose, mais utilisez des boucles de liste au lieu de l'index ( foreach). Essayez d'écrire un sous-programme qui implémente cela vous-même.

Remplir une matrice avec les valeurs du clavier.

Laissez le programme recevoir un tableau à deux dimensions en entrée, sous la forme < em>n chaînes, chacune contenant m nombres séparés par des espaces. Comment les compter ? Par exemple, comme ceci :

int[,] array = new int[n,m] ; // crée un tableau à remplir pour (int i = 0; i <  n; i++) {        chaîne A = Console.ReadLine(); // lire la ligne        int[] curr = A.Split(' ').Select(int.Parse).ToArray(); // convertit cette chaîne en un tableau unidimensionnel curr        pour (int j = 0; j < m; j++)        {            array[i, j] = curr[j] ; // remplissez la chaîne du tableau dont nous avons besoin avec les valeurs du tableau curr        } }

 

Chaque élément de la matrice a deux index, vous devez donc utiliser une boucle imbriquée pour parcourir tous les éléments.
Habituellement, une matrice est itérée ligne par ligne : la boucle externe itère sur les indices de ligne, tandis que la boucle interne itère sur les indices de colonne.
Mais si nécessaire, vous pouvez itérer sur la matrice et par colonnes, puis les cycles sont inversés.