Introdução.

Muitas vezes, ao trabalhar com qualquer informação, você tem que lidar com dados tabulares. Os programas modernos geralmente trabalham com esses dados. O exemplo mais simples é programar jogos em um tabuleiro de xadrez: jogo da velha, xadrez, damas, etc.

Em matemática, essas estruturas são chamadas de matrizes.

 
Matriz é uma tabela retangular composta por elementos do mesmo tipo (números, strings, etc.).< /span>

Esses dados em C# podem ser armazenados e processados ​​como arrays bidimensionais - "arrays de arrays"
Para processar os dados da tabela, é necessário lembrar o estado de cada célula (célula). Cada célula tem dois números: um número de linha e um número de coluna.
Na matriz, cada elemento possui dois índices: primeiro é indicado o número da linha, depois o número da coluna. A numeração de linhas e colunas começa do zero.
Por exemplo, o elemento A[1, 2] é o elemento localizado na segunda linha e na terceira coluna.

Assim como com arrays regulares, para trabalhar com matrizes, você precisa aprender a criá-las, inserir, processar e exibir.

Crie uma matriz.

É possível criar uma matriz em memória de um determinado tamanho preenchido com alguns valores iniciais.

int[,] array = new int[4, 2]; // 4 linhas, 2 colunas

 

Depois de criar uma matriz, você pode preenchê-la com valores arbitrários. Como cada elemento possui dois índices, é necessário usar loops aninhados

for (int i=1; i <= N, i++) { / / N - número de linhas for (int j=1; j <= N, j++) { // M é o número de colunas A[i, j] = ...   } } Exibindo a matriz.

Dois loops aninhados geralmente são usados ​​para processar e exibir a lista. O primeiro loop está no número da linha, o segundo loop está nos elementos dentro da linha.  Para sair a matriz na tela linha por linha, separando os números com espaços dentro de uma linha, você precisa escrever o seguinte fragmento:
  for (int i=1; i <= N, i++) { for (int j=1; j <= N, j++) { Console. Write(A[i, j] + " ");   }   Console.WriteLine(); // move para uma nova linha }

Você pode fazer o mesmo, mas use list loops em vez de index ( foreach). Tente escrever uma sub-rotina que implemente você mesmo.

Preenchendo uma matriz com valores do teclado.

Deixe o programa receber uma matriz bidimensional como entrada, na forma < em>n strings, cada uma contendo m números separados por espaços. Como contá-los? Por exemplo, assim:

int[,] array = new int[n,m]; //cria um array para preencher for (int i = 0; i <  n; i++) {        string A = Console.ReadLine(); // Leia a linha        int[] curr = A.Split(' ').Select(int.Parse).ToArray(); // converte esta string em um array unidimensional curr        for (int j = 0; j < m; j++)        {            matriz[i, j] = atual[j]; // preencha a string do array que precisamos com os valores do array atual        } }

 

Cada elemento da matriz tem dois índices, então você precisa usar um loop aninhado para iterar todos os elementos.
Normalmente, uma matriz é iterada linha por linha: o loop externo itera sobre os índices de linha, enquanto o loop interno itera sobre os índices de coluna.
Mas se necessário, você pode iterar sobre a matriz e por colunas, então os ciclos são invertidos.