Ingeniera de Sistemas e Informtica - UTEA Algoritmo Y estructura de Datos.
Ing. Yuri Argamonte Huaman UNIVERSIDAD TECNOLGICA DE LOS ANDES FACULTAD DE INGENIERA CARRERA PROFESIONAL DE INGENIERA DE SISTEMAS E INFORMTICA
1. ESTRUCTURA DE DATOS. MATRICES NUMERICAS MULTIDIMENSIONALES. Un arreglo bidimensional tiene dos dimensiones, 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. 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: int [ , ] matriz ; double [ , ] posicion ; Chasis [ , ] automovil; // Chasis 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.
A partir de lnea de cdigo anterior, se crea una matriz unidimensional m con los elementos, m[0], m[1], ., m[F-1], que son referencias a otras tantas matrices unidimensionales de C elementos de tipo char. Grficamente podemos imaginarnos as:
Para acceder a los elementos de la matriz m, utilizaremos solo el primer subndice, el que indica la fila, solo utilizaremos dos subndices cuando sea necesario acceder a un carcter individual. Carrea Profesional de Ingeniera de Sistemas e Informtica - UTEA Algoritmo Y estructura de Datos. Ing. Yuri Argamonte Huaman
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 dimensiones 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 int [2, 3] ; // Se crea el arreglo matriz, con 6 elementos de tipo entero posicion = new double[4,2] ; // Se crea el arreglo posicion, con 8 elementos tipo doble automovil= new Chasis[5,2] ; // Se crea el arreglo , Chasis con 10 objetos de la clase automvil. 3.30 Captulo 3: Mtodos, Arreglos y Estructuras Las operaciones de declaracin y creacin anteriores se pueden agrupar en una sola instruccin, como se muestra enseguida: int [ , ] matriz = new int [2,3] ; double [ , ]posicion = new double[4, 2] ; Chasis [ , ] automovil = new Chasis[5,2] ;
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
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: double [ , ] posicion = new double[4,3] ; // Crea el arreglo posicion, con 12 elementos de tipo double Carrea Profesional de Ingeniera de Sistemas e Informtica - UTEA Algoritmo Y estructura de Datos. Ing. Yuri Argamonte Huaman posicion[ 2, 1] = 9.8 ; double p = posicin[ 2, 1] ; // Asigna a la variable p el valor de 9.8, el mismo valor del arreglo en la posicin [2, 1]
EJEMPLOS PRACTICO 01 En el siguiente ejemplo creamos un arreglo del 6 elementos del tipo string es decir podemos almacenar en este cadenas de texto, consta de 3 filas y 2 columnas, con un ciclo for anidado capturamos el nombre de 6 materias que deseamos inscribir en un semestre, posteriormente con otro ciclo for anidado imprimimos los valores almacenados.
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks;
namespace matbid { class Bidimensional { static void Main(string[] args) { string[,] cursos = new string[3, 2];
//Ciclo for anidado para capturar el nombre de los cursos Console.WriteLine("Ingrese los cursos que desea inscribir : "); for (int i = 0; i < 3; i++) for (int j = 0; j < 2; j++) cursos[i, j] = Console.ReadLine();
// mostramos en pantalla los cursos Console.WriteLine("\nVerificar que el nombre del curso sea correcto : "); for (int i = 0; i < 3; i++) for (int j = 0; j < 2; j++) Console.WriteLine(cursos[i, j]); Console.ReadLine();