Conceptos básicos de arrays 2D
Parte de la sección Lógica y Flujo del Journey de C# de Coddy. Lección 1 de 66.
En C#, una matriz escalonada (jagged array) es una matriz de matrices, que forma una cuadrícula o una estructura similar a una matriz. Es como una tabla con filas y columnas, donde cada celda puede contener un valor. Las matrices escalonadas son útiles para representar datos que tienen una relación bidimensional, como un tablero de ajedrez, un plano de asientos o un juego basado en cuadrículas.
Aquí se explica cómo declarar e inicializar una matriz escalonada en C#:
data_type[][] arrayName = new dataType[numberOfRows][];dataType: El tipo de elementos que contendrá el array (por ejemplo, int, string, etc.).
arrayName: El nombre que le das al array.
numberOfRows: El número de filas del array.
Cada fila debe entonces inicializarse por separado:
arrayName[0] = new dataType[lengthOfFirstRow];
arrayName[1] = new dataType[lengthOfSecondRow];
// y así sucesivamente...Por ejemplo, para crear un array escalonado (jagged array) de enteros con 3 filas, donde cada fila tiene 4 columnas, escribirías:
int[][] matrix = new int[3][];
matrix[0] = new int[4];
matrix[1] = new int[4];
matrix[2] = new int[4];También puedes inicializar una matriz escalonada con valores directamente:
int[][] matrix = new int[][] {
new int[] {1, 2, 3},
new int[] {4, 5, 6},
new int[] {7, 8, 9}
};Nota: Esta plataforma utiliza un compilador anterior a C# 12. La sintaxis de expresión de colección más corta introducida en C# 12 (por ejemplo, int[][] matrix = [[1, 2], [3, 4]];) no es compatible aquí. Por favor, utilice la sintaxis de inicialización tradicional new int[][] { ... } mostrada anteriormente.
Desafío
FácilInicializa un array escalonado (jagged array) con los siguientes 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, 6Tu tarea es inicializar correctamente el array escalonado con estos valores exactos y asegurar que el programa imprima correctamente la matriz.
Nota: Esta plataforma utiliza un compilador anterior a C# 12. La sintaxis de expresiones de colección de C# 12 (por ejemplo, int[][] matrix = [[1, 2], [3, 4]];) no es compatible. Utiliza en su lugar la sintaxis de inicialización tradicional:int[][] matrix = new int[][] { new int[] {1, 2}, new int[] {3, 4} };
Pruébalo tú mismo
using System;
class Program
{
static void Main(string[] args)
{
int[][] matrix = {
// Escribe tu código aquí
};
// Imprime la 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 lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Todas las lecciones de Lógica y Flujo
1Arrays multidimensionales
Conceptos básicos de arrays 2DDeclaración e inicialización de arrays 2DAcceso a elementos de arrays 2DBucles anidados con arrays 2DArrays irregularesOperaciones comunes con matricesRepaso: arrays multidimensionales4Técnicas de control de flujo
Retornos anticipadosCláusulas de guardaSentencias de salto (goto)Break y ContinueAplanar condicionales anidados7Operadores lógicos avanzados
Evaluación de cortocircuitoOperadores lógicos condicionalesPrecedencia de operadoresRepaso: operadores avanzados2Toma de decisiones avanzada
Múltiples condicionesLógica booleana complejaComparación entre If y SwitchSentencias Switch anidadasRepaso: decisiones avanzadas5Manejo de excepciones
Fundamentos de Try-CatchTipos de excepcionesMúltiples bloques CatchTrabajo con archivosBloque FinallyUso de Using frente a Try-FinallyExcepciones personalizadasRepaso: manejo de errores3Mejoras de bucles
Rendimiento de buclesIteración de estructuras complejasCada tipo de bucleRefactorización de buclesRepaso: bucles optimizados6Manejo de valores nulos
Conceptos básicos de referencias nulasTipos de valor anulablesPatrones de comprobación de valores nulosProgramación defensivaRepaso: seguridad frente a valores nulosPractica por tu cuenta: Compilador de C# online