Escolar Documentos
Profissional Documentos
Cultura Documentos
- Arreglos bidimensionales
Pgina 1 de 6
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.
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
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
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
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
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
Pgina 6 de 6
Pgina anterior
Pgina siguiente
http://sistemas.itlp.edu.mx/tutoriales/progorientobjetos/t12.htm
17/09/2010