Noções Básicas de Matrizes 2D
Parte da seção Lógica & Fluxo do Journey de C# da Coddy. Lição 1 de 66.
Em C#, um array denteado (jagged array) é um array de arrays, formando uma grade ou uma estrutura semelhante a uma matriz. É como uma tabela com linhas e colunas, onde cada célula pode conter um valor. Arrays denteados são úteis para representar dados que possuem uma relação bidimensional, como um tabuleiro de xadrez, um mapa de assentos ou um jogo baseado em grade.
Veja como declarar e inicializar um array denteado (jagged array) em C#:
data_type[][] arrayName = new dataType[numberOfRows][];dataType: O tipo de elementos que o array conterá (por exemplo, int, string etc.).
arrayName: O nome que você dá ao array.
numberOfRows: O número de linhas no array.
Cada linha deve então ser inicializada separadamente:
arrayName[0] = new dataType[lengthOfFirstRow];
arrayName[1] = new dataType[lengthOfSecondRow];
// e assim por diante...Por exemplo, para criar um array denteado de inteiros com 3 linhas, onde cada linha tem 4 colunas, você escreveria:
int[][] matrix = new int[3][];
matrix[0] = new int[4];
matrix[1] = new int[4];
matrix[2] = new int[4];Você também pode inicializar um array denteado (jagged array) com valores diretamente:
int[][] matrix = new int[][] {
new int[] {1, 2, 3},
new int[] {4, 5, 6},
new int[] {7, 8, 9}
};Observação: Esta plataforma usa um compilador anterior ao C# 12. A sintaxe de expressão de coleção mais curta introduzida no C# 12 (ex: int[][] matrix = [[1, 2], [3, 4]];) não é suportada aqui. Por favor, use a sintaxe de inicialização tradicional new int[][] { ... } mostrada acima.
Desafio
FácilInicialize um array denteado (jagged array) com os seguintes valores:
5, 7, 10, 24, 41
86, 13, 683, 64, 13
42, 46, 791, 111, 9
86, 88, 1845, 5, 15897
9, 1, 5, 5, 6Sua tarefa é inicializar corretamente o array denteado com esses valores exatos e garantir que o programa imprima a matriz corretamente.
Nota: Esta plataforma utiliza um compilador anterior ao C# 12. A sintaxe de expressão de coleção do C# 12 (por exemplo, int[][] matrix = [[1, 2], [3, 4]];) não é suportada. Use a sintaxe de inicialização tradicional em vez disso:int[][] matrix = new int[][] { new int[] {1, 2}, new int[] {3, 4} };
Experimente você mesmo
using System;
class Program
{
static void Main(string[] args)
{
int[][] matrix = {
// Escreva seu código aqui
};
// Imprima a matriz
int rows = matrix.Length;
for (int i = 0; i < rows; i++)
{
int cols = matrix[i].Length;
for (int j = 0; j < cols; j++)
{
Console.Write(matrix[i][j] + " ");
}
Console.WriteLine();
}
}
}Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.
Todas as lições de Lógica & Fluxo
1Matrizes Multidimensionais
Noções Básicas de Matrizes 2DDeclaração e Inicialização de Matrizes 2DAcesso aos Elementos de Matrizes 2DLoops Aninhados com Matrizes 2DMatrizes IrregularesOperações Comuns com MatrizesRevisão - Multidimensional4Técnicas de Controle de Fluxo
Retornos AntecipadosCláusulas de GuardaInstruções de Salto (goto)Break e ContinueSimplificando Condicionais Aninhadas7Operadores Lógicos Avançados
Avaliação de Curto-CircuitoOperadores Lógicos CondicionaisPrecedência de OperadoresRevisão - Operadores Avançados2Tomada de Decisões Avançada
Múltiplas CondiçõesLógica Booleana ComplexaComparação entre If e SwitchInstruções Switch AninhadasRevisão - Decisões Avançadas5Tratamento de Exceções
Noções básicas de Try-CatchTipos de ExceçãoMúltiplos blocos CatchTrabalhando com ArquivosBloco FinallyUsando Using vs. Try-FinallyExceções PersonalizadasRecapitulação - Tratamento de Erros3Aprimoramentos de Loops
Desempenho de LoopsIteração de Estruturas ComplexasCada Tipo de LoopRefatoração de LoopsRevisão - Loops Otimizados6Tratamento de Nulos
Fundamentos de Referências NulasTipos de Valor AnuláveisPadrões de Verificação de NulosProgramação DefensivaRecapitulação — Segurança contra NulosPratique por conta própria: Compilador de C# online