Este también es un tipo de dato estructurado, que está compuesto por n dimensiones. Para hacer referencia a cada componente del arreglo es necesario utilizar n índices, uno para cada dimensión.
Conceptos básicos
Los arreglos multidimensionales tienen más de una dimensión. En C#, las dimensiones se manejan por medio de un par de corchetes, dentro de los que se escriben los valores de cada dimensión, separados por comas.
Para manejar un arreglo, las operaciones a efectuarse son:
- Declaración del arreglo,
- Creación del arreglo,
- Inicialización de los elementos del arreglo,
- Acceso a los elementos del arreglo.
A continuación describiremos cada una de estas operaciones, en C#.
Declaración de Matrices en C#
La sintaxis para declarar un arreglo multidimensional es la siguiente:
<tipo>[ , ...]<identificador >;
Donde:
Tipo indica el tipo correspondiente a los elementos del arreglo,Identificador es el nombre del arreglo, y el par de corchetes, la coma y las diéresis,[ , ...], representan las dimensiones del arreglo. Los corchetes encierran todas las comas necesarias para separar las dimensiones del arreglo.
Ejemplos:
double [ , ] bidim;// Dos dimensiones.
int [ , , ] tridim ;// Tres dimensiones.
char [ , , , ] enciclopedia;// Cuatro dimensiones.
Observe que, en la declaración, el espacio entre los corchetes está vacío. Esto se debe a que, durante dicha operación, no se reserva espacio en la memoria.
Creación
La creación de un arreglo multidimensional consiste en reservar espacioen la memoria para todos sus elementos, utilizando la siguiente sintaxis:
<identificador > =new<tipo> [dim1, dim2 ... dimN]
new es el operador para gestionar espacio de memoria, en tiempo de ejecución, dim1, dim2 ,dimN son valores enteros que representan las dimensiones del arreglo.
El tamaño del arreglo es el resultado de multiplicar los valores de las dimensiones y representa el número de elementos del arreglo.
Veamos la siguiente gráfica donde se muestra una matriz (2x5), en donde se almacena 5 nombres con sus respectivas edades
Ejercicios Resueltos de Matrices en C#
Ejemplo 1
Desarrollar un programa que permita cargar 5 nombres de personas y sus edades respectivas. Luego de realizar la carga por teclado de todos los datos imprimir los nombres de las personas mayores de edad (mayores o iguales a 18 años)
using
System;
using
System.Collections.Generic;
using
System.Linq;
using
System.Text;
namespace
PruebaVector10
{
class PruebaVector
{
private
string[] nombres;
private
int[] edades;
public void Cargar()
{
nombres = new
string[5];
edades = new
int[5];
for
(int f = 0; f < 5; f++)
{
Console.Write("Ingrese nombre "+(f+1)+":
");
nombres[f] = Console.ReadLine();
Console.Write("Ingrese edad "+(f+1)+":
");
string linea;
linea = Console.ReadLine();
edades[f] = int.Parse(linea);
}
}
public void
MayoresEdad()
{
Console.WriteLine("Personas
mayores de edad.");
for (int f = 0; f <
nombres.Length; f++)
{
if (edades[f] >= 18)
{
Console.WriteLine(nombres[f]);
}
}
Console.ReadKey();
}
static void Main(string[]
args)
{
PruebaVector pv = new
PruebaVector();
pv.Cargar();
pv.MayoresEdad();
}
}
}
Ejemplo 2
Realizar un programa que permita imprimir la siguiente serie:
1 0 1 0 1 0
1 0 1 0 1 0
1 0 1 0 1 0
1 0 1 0 1 0
1 0 1 0 1 0
1 0 1 0 1 0
using
System;
using
System.Collections.Generic;
using
System.Linq;
using
System.Text;
namespace PruebaVector
{
class PruebaVector
{
private int[,] serie;
public void Cargar()
{
serie = new int[10,10];
for (int i = 1;
i<= 6; i++)
{
for (int
j = 1; j <= 6; j++)
{
if
(j % 2 == 0)
{
serie[i, j] = 0;
}
else
{
serie[i, j] = 1;
}
}
}
}
public void
visualizar()
{
for (int i = 1; i
<= 5; i++)
{
Console.Write("\n");
for (int
j = 1; j <= 6; j++)
{
Console.Write(serie[i,j]+" ");
}
}
Console.ReadKey();
}
static void Main(string[] args)
{
PruebaVector pv = new
PruebaVector();
pv.Cargar();
pv.visualizar();
}
}
}
Al ejecutar el código muestra el siguiente resultado
Ejemplo 3
realizar un programa que permita imprimir la siguiente serie:
1 0 0 0 0 0
0 1 0 0 0 0
0 0 1 0 0 0
0 0 0 1 0 0
0 0 0 0 1 0
0 0 0 0 0 1
using
System;
using
System.Collections.Generic;
using
System.Linq;
using
System.Text;
namespace PruebaVector
{
class PruebaVector
{
private int[,] serie;
public void Cargar()
{
serie = new int[10,10];
for (int i = 1;
i<= 6; i++)
{
for (int
j = 1; j <= 6; j++)
{
if (i==j)
{
serie[i, j] = 1;
}
else
{
serie[i, j] = 0;
}
}
}
}
public void
visualizar()
{
for (int i = 1; i
<= 6; i++)
{
Console.Write("\n");
for (int
j = 1; j <= 6; j++)
{
Console.Write(serie[i,j]+" ");
}
}
Console.ReadKey();
}
static void Main(string[] args)
{
PruebaVector pv = new
PruebaVector();
pv.Cargar();
pv.visualizar();
}
}
}
Al ejecutar el código muestra el siguiente resultado
Ejemplo 4
Realizar un programa que permita la suma de dos matrices de 3x3 y el resultado almacenar en un tercer matriz
using
System;
using
System.Collections.Generic;
using System.Linq;
using System.Text;
namespace PruebaVector
{
class PruebaVector
{
private int[,]
MatrizA;
private int[,]
MatrizB;
private int[,]
MatrizC;
public void Cargar()
{
MatrizA = new int[10,10];
MatrizB = new int[10,
10];
MatrizC = new int[10,
10];
Console.WriteLine("Ingresando
datos al matriz A");
for (int i = 1;
i<= 3; i++)
{
for (int
j = 1; j <= 3; j++)
{
Console.Write("Ingrese posicion [" + i + ","
+ j + "]: ");
string linea;
linea = Console.ReadLine();
MatrizA[i, j] = int.Parse(linea);
}
}
Console.WriteLine("Ingresando
datos al matriz B");
for (int i = 1; i <= 3; i++)
{
for (int
j = 1; j <= 3; j++)
{
Console.Write("Ingrese posicion [" + i + ","
+ j + "]: ");
string linea;
linea = Console.ReadLine();
MatrizB[i, j] = int.Parse(linea);
}
}
//Sumamos la matrizA y la MatrizB
for (int i = 1; i
<= 3; i++)
{
for (int
j = 1; j <= 3; j++)
{
MatrizC[i,j]=MatrizA[i,j]+MatrizB[i,j];
}
}
}
// visualizamos la suma de las matrices
public void
visualizar()
{
Console.WriteLine("La
suma de la MatrizA y MatrizB es :");
for (int i = 1; i
<= 3; i++)
{
Console.Write("\n");
for
(int j = 1; j <= 3; j++)
{
Console.Write(MatrizC[i,j]+" ");
}
}
Console.ReadKey();
}
static void Main(string[] args)
{
PruebaVector pv = new
PruebaVector();
pv.Cargar();
pv.visualizar();
}
}
}
Los ejercicios están muy buenos disfrútenlo
ResponderEliminarBueemos ejemplos mas que una ayuda
ResponderEliminarGracias, me ayudó mucho
ResponderEliminargracias, muchas gracias
ResponderEliminarFueron de gran ayuda para entender mejor las matrices, gracias
ResponderEliminarGracias, me fue muy útil.
ResponderEliminar