Você está na página 1de 6

Unidad I.

- Arreglos bidimensionales

Pgina 1 de 6

1.2.- Arreglos bidimensionales.

1.2.1.- Conceptos bsicos.


Un arreglo bidimensional tiene dos dimensiones y es un caso particular de los arreglos multidimensionales. En C#, las dimensiones se manejan por medio de un par de corchetes, dentro de los que se escriben, separados por comas, los valores de las dos dimensiones.

1.2.2.- Operaciones.
Para manejar un arreglo, las operaciones a efectuarse son:

Declaracin del arreglo, Creacin del arreglo, Inicializacin de de los elementos del arreglo, y Acceso a los elementos del arreglo.

A continuacin describiremos cada una de estas operaciones, en C#.

Declaracin.
La declaracin de un arreglo consiste en establecer las caractersticas del arreglo y sus elementos, por medio de la siguiente sintaxis: <tipo> [ , ] < identificador > ; Donde: tipo indica el tipo correspondiente a los elementos del arreglo , identificador es el nombre del arreglo, y el par de corchetes y la coma, [ , ], representan las dimensiones del arreglo y encierra dos nmeros enteros, cuyo producto corresponde al nmero de elementos del arreglo. Ejemplos: double [ , ] matriz ;

http://sistemas.itlp.edu.mx/tutoriales/progorientobjetos/t12.htm

17/09/2010

Unidad I.- Arreglos bidimensionales

Pgina 2 de 6

int [ , ] ubicacin ; Rama [ , ] rbol; // Rama es una clase. Observe que, en la declaracin, el espacio entre los corchetes est vaco. Esto se debe a que, durante dicha operacin, no se reserva espacio en la memoria.

Creacin.
La creacin de un arreglo bidimensional consiste en reservar espacio en la memoria para todos sus elementos, utilizando la siguiente sintaxis: < identificador > = new <tipo> [ dim1, dim2 ] ; Donde: new es el operador para gestionar espacio de memoria, en tiempo de ejecucin, dim1 y dim2 son valores enteros que representan las dimensioes del arreglo. El tamao del arreglo es el resultado de multiplicar los valores de las dimensiones y representa el nmero de elementos del arreglo. Ejemplos: matriz = new double [2, 3] ; // Se crea el arreglo matriz, con 6 elementos de tipo //punto flotante y precicin doble . ubicacin = new int[ 4,2] ; // Se crea el arreglo ubicacin, con 8 elementos de //tipo entero de 32 bits . rbol = new Rama[5,2] ; // Se crea el arreglo arbol, con 10 objetos //de la clase Rama. Las operaciones de declaracin y creacin anteriores se pueden agrupar en una sola instruccin, como se muestra enseguida: double [ , ] matriz = new double [2,3] ; int [ , ] ubicacin = new int[4, 2] ; Rama [ , ] alumno = new Rama[5,2] ;

http://sistemas.itlp.edu.mx/tutoriales/progorientobjetos/t12.htm

17/09/2010

Unidad I.- Arreglos bidimensionales

Pgina 3 de 6

Inicializacin.
Un arreglo es un objeto que,cuando es creado por el compilador, se le asignan automticamente valores iniciales predeterminados a cada uno de sus elementos, de acuerdo a los siguientes criterios:

Si el tipo del arreglo es numrico, a sus elementos se les asigna el valor cero. Si el tipo del arreglo es char, a sus elementos se les asigna el valor '\u0000'. Si el tipo del arreglo es bool, a sus elementos se les asigna el valor false. Si el tipo del arreglo es una clase, a sus elementos se les asigna el valor null.

Cuando se requiere asignar valores iniciales diferentes de los predeterminados, es posible agrupar las operaciones de declaracin, creacin e inicializacin en una sola instruccin, por ejemplo: double [ , ] matriz = { {1.5, 0, 4, -6.5, 2 } , {2.3, 9, 3.5, 4.8, 6.2} }; int [ , ] ubicacin = { {2, 4} , {6, 8} , {9, 10}, {5 , 1}}; string [ , ] funcionario = { {"Hugo", "jefe"} , { "Paco", "operador "}, { "Lus","ayudante"} };

Acceso.
Se puede acceder a los valores de los elementos de un arreglo bidimensional a travs del nombre del arreglo y dos subndices. Los subndices deben escribirse entre corchetes y representa la posicin del elemento en el arreglo. As, podemos referirnos a un elemento del arreglo escribiendo el nombre del arreglo y los subndices del elemento entre corchetes. Los valores de los subndices empiezan en cero para el primer elemento, hasta el tamao del arreglo menos uno. Ejemplo: int [ , ] posicin = new int[5, 10] ; // Crea el arreglo posicin , con 50 elementos de tipo entero. int x; posicin[ 3, 5] = 3 ; x = posicin[ 3, 5] ;

http://sistemas.itlp.edu.mx/tutoriales/progorientobjetos/t12.htm

17/09/2010

Unidad I.- Arreglos bidimensionales

Pgina 4 de 6

1.2.3.- Aplicaciones.
Matrices. Una matriz es un arreglo rectangular de dos dimensiones, donde el acomodo de los elementos est dispuesto en renglones y columnas. Ejemplo 1: Se debe controlar la ubicacin de los asistentes a una sala de conferencias por medio de un gafete que tiene escrito el nombre del asistente, la fila y la columna donde se ubica su asiento. El siguiente segmento de cdigo muestra la solucin con arreglos bidimensionales. string [ , ] asistente = new string[10,12] ; // Inicializa los valores de los nombres con cadenas vacas. for(int i=0 ; i < 10 ; i++ ) // Controla la fila. for(int j=0 ; j < 12 ; j++ ) // Controla la columna. asistente[ i , j ] = " " ; // Captura los nombres de todos los asistentes y les asigna sus asientos, // en el orden en que van llegando. for(int i=0 ; i < 10 ; i++ ) // Controla la fila. for(int j=0 ; j < 12 ; j++ ) // Controla la columna. asistente[ i , j ] = System.Console.ReadLine( ); // Despliega los nombres de todos los asistentes. for(int i=0 ; i < 10 ; i++ ) // Controla la fila. for(int j=0 ; j < 12 ; j++ ) // Controla la columna. System.Console.WriteLine( asistente[ i , j ] ); Ejemplo 2 : Dadas la matriz A : 10 43 8 16 29 13 15 21 62 78

http://sistemas.itlp.edu.mx/tutoriales/progorientobjetos/t12.htm

17/09/2010

Unidad I.- Arreglos bidimensionales

Pgina 5 de 6

57

25

30

44

17

y la matriz B : 20 92 35 66 85 61 31 74 15 42 69 54 50 45 12

Elaborar un programa en C# para obtener la suma de ambas matrices: S=A+B // SumMatrices.cs : Suma dos matrices de 3 renglones y 5 columnas.

using System; class Matriz { public static void Main( ) { double [ , ] A = new double [3,5] ; double [ , ] B = new double [3, 5] ; double [ , ] S = new double [3, 5] ; int i, j ; // Lectura de valores para los elementos de A. for( i = 0 ; i < 3 ; i++ ) for( j = 0 ; j < 5 ; j++) A[ i , j ] = Convert.ToDouble(Console.ReadLine( )); // Lectura de valores para los elementos de B. for( i = 0 ; i < 3 ; i++ ) for( j = 0 ; j < 5 ; j++) B[ i , j ] = Convert.ToDouble(Console.ReadLine( )) ; // Suma y despliegue de la matriz resultado. for( i = 0 ; i < 3 ; i++ ) { for( j = 0 ; j < 5 ; j++) {

http://sistemas.itlp.edu.mx/tutoriales/progorientobjetos/t12.htm

17/09/2010

Unidad I.- Arreglos bidimensionales

Pgina 6 de 6

S[ i , j ] = A[ i , j ] + B[ i , j ] ; Console.Write(" " + S[ i , j ] ) ; } Console.WriteLine( ) ; } } }

Pgina anterior

Pgina siguiente

http://sistemas.itlp.edu.mx/tutoriales/progorientobjetos/t12.htm

17/09/2010

Você também pode gostar