Arreglos bidimensionales en C#
Las matrices o arreglos de dos dimensiones, son arrays bidimensionales cuyos elementos tienen dos indices. En C Sharp existen dos tipos de arreglos bidimensionales, los rectangulares y los dinámicos. Por lo general, cuando accedemos a arreglos bidimensionales utilizamos los términos filas y columnas.
En los arreglos bidimensionales rectangulares, cada fila tiene la misma cantidad de columnas. Por otro lado, las filas de los arreglos bidimensionales dinámicos pueden tener diferente cantidad de columnas. A continuación, una serie de ejemplos en donde se explica cómo se declara e inician los dos tipos de arreglos:
Declaración e iniciación de arreglos de dos dimensiones
using System;
public class ArregloDosDimensiones {
static void Main() {
// declaracion e iniciación de arreglos rectangulares
int[,] arreglo1 = new int[,] { { 1, 2, 3 }, { 4, 5, 6 } };
// declaración e iniciación de arreglos dinamicos
int[][] arreglo2 = new int[ 3 ][];
string salida = "";
arreglo2[ 0 ] = new int[] { 1, 2 };
arreglo2[ 1 ] = new int[] { 3 };
arreglo2[ 2 ] = new int[] { 4, 5, 6 };
salida = "Valores en arreglo1 por fila\n";
// salida del arreglo1
for ( int i = 0; i < arreglo1.GetLength( 0 ); i++ ) {
for ( int j = 0; j < arreglo1.GetLength( 1 ); j++ )
salida += arreglo1[ i, j ] + " ";
salida += "\n";
}
salida += "\nValores en arreglo2 por fila\n";
// salida del arreglo2
for ( int i = 0; i < arreglo2.Length; i++ ) {
for ( int j = 0; j < arreglo2[ i ].Length; j++ )
salida += arreglo2[ i ][ j ] + " ";
salida += "\n";
}
Console.WriteLine(salida);
}
}
Salida…
1 2 3
4 5 6
Valores en arreglo2 por fila
1 2
3
4 5 6
Ejemplo con arreglos bidimensionales
using System;
public class DoubleArray {
static int[][] calificacion;
static int estudiantes, examenes;
static void Main() {
string salida = " ";
calificacion = new int[ 3 ][];
calificacion[ 0 ] = new int[]{ 77, 68, 86, 73 };
calificacion[ 1 ] = new int[]{ 96, 87, 89, 81 };
calificacion[ 2 ] = new int[]{ 70, 90, 86, 81 };
estudiantes = calificacion.Length; // numero de estudiantes
examenes = calificacion[ 0 ].Length; // numero de examenes
// columnas
for ( int i = 0; i < examenes; i++ )
salida += "[" + i + "] ";
// filas
for ( int i = 0; i < estudiantes; i++ ) {
salida += "\ncalificaciones[" + i + "] ";
for ( int j = 0; j < examenes; j++ )
salida += calificacion[ i ][ j ] + " ";
}
salida += "\n\nCal. m&amp;aacute;s baja: " + minimo() +
"\nCal. m&amp;aacute;s alta: " + maximo() + "\n";
for ( int i = 0; i < estudiantes; i++ )
salida += "\nEl promedio por estudiante " + i + " es " +
promedio( calificacion[ i ] );
Console.WriteLine(salida);
}
// buscar calificacion minima en el arreglo
static public int minimo() {
int baja = 100;
for ( int i = 0; i < estudiantes; i++ )
for ( int j = 0; j < examenes; j++ )
if ( calificacion[ i ][ j ] < baja )
baja = calificacion[ i ][ j ];
return baja;
}
// buscar calificacion maxima en en arreglo
static public int maximo() {
int alta = 0;
for ( int i = 0; i < estudiantes; i++ )
for ( int j = 0; j < examenes; j++ )
if ( calificacion[ i ][ j ] > alta )
alta = calificacion[ i ][ j ];
return alta;
}
// determinar el promedio de la calificacion
static public double promedio( int[] calificaciones ) {
int total = 0;
for ( int i = 0; i < calificaciones.Length; i++ )
total += calificaciones[ i ];
return ( double ) total / calificaciones.Length;
}
}
Salida…
calificaciones[0] 77 68 86 73
calificaciones[1] 96 87 89 81
calificaciones[2] 70 90 86 81
Cal. más baja: 68
Cal. más alta: 96
El promedio por estudiante 0 es 76
El promedio por estudiante 1 es 88,25
El promedio por estudiante 2 es 81,75
Bonus: sentencia foreach en C#
Cuando de recorrer arreglos se trata, existe una sentencia bastante útil: foreach. Foreach es similar a un for, solo que es un poco más simple. La sintaxis es foreach(VARIABLE in ARREGLO), y cada vez que ocurre una iteración, VARIABLE va tomando los valores del arreglo en orden:
using System;
class Foreach {
// main entry point for the application
static void Main(string[] args) {
int[,] calificaciones = { { 77, 68, 86, 73 },
{ 98, 87, 89, 81 }, { 70, 90, 86, 81 } };
int baja = 100;
foreach ( int calificacion in calificaciones ) {
if ( calificacion < baja )
baja = calificacion;
}
Console.WriteLine( "La calificacion mas baja es: " + baja );
}
}
17 Comentarios | deja el tuyo





Desarrollar y entregar en un archivo .CPP por cada problema referido a continuación (con el nombre que se relaciona para cada uno de ellos) :
T02-01.CPP: Leer una serie de valores enteros, cuya cantidad es dada inicialmente por parte del usuario, determinando al final cuántos de ellos corresponden a múltiplos del primer número leído.
T02-02.CPP: Dado un número entero, establecer si es o no un número primo.
T02-03.CPP: Dada una serie de valores numéricos reales, determinar:
Cuál de ellos es el menor de todos
Cuál de ellos es el mayor de todos
Cuántos números se leyeron
son 3 ejercicios
escribir un programa que lea una matriz de 3*3 elementos numericos reales calcule y mostrar al fin la sumatoria de todos los elementos , a exepcion de los ubicados en las esquinas
por favor un programa que lea una matriz de 5*5 donde calcula la suma de las filas y la de las columnas
jejejejeje o0p´s petiiciones ON! jejejeje
psss iiop nomas necesiito una arreglo de 3*3 que haga el juego del GATO!! juju iia lo iise pero no ce como desplegarlo me sale en forma liinela :S i help you pliis :S sii???
necesito ejercicios de matrices y estructuras
declarar inicialiczar una matriz de 3 filas 3 columnas, se desea saber cual es la suma de cada fila y cada columna, insertar los datos en arreglos diferentes.
hola, muchos saludos, bueno disculpen las molestias, pero podrian ayudarme a hacer un programa que almacene 10 valores en un arreglo bidimencional de 2*5, multiplique por 2 a todos ellos y los almacene en un segundo arreglo bidimencional eh imprima el arreglo con los valores capturados y el arreglo que contiene los valores de este multiplicados por 2.
es que soy novata XD y se me complica eh intentado hacerlo pero no me convence.
saludos
gracias
necesito un ejemplillo de matriz de n*m
plis gracias de antemano
no se nada
Y como hago para que me diga en que columna y fila esta la calificacion?
la verdad los codigos son entendibless…pero m gustaria tanto k publicaran unos codigos k contengan mas sentencias….ok
graciass..saludos
a todos…
necesito ejemplos de matrices
por favor ayuda necesito hacer este programa …. se que es facil para ustedes ….
Escribir un programa que pida un número e imprima por pantalla su tabla de sumar:
0 1 2 3 4
1 2 3 4 5
2 3 4 5 6
3 4 5 6 7
4 5 6 7 8
Ej. La tabla anterior es la tabla del 4, sus intersecciones son el resultado de la suma del identificador de fila y columna
Gracias amigo esto me a sido muy util
porfavor necesito un ejemplo para calcular el promedio de edad dentro de un for para c#