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. extensão >
É 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 em> 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.
|