Arreglo Multidimensional

INSTITUTO TECNOLOGICO DE SALINA CRUZ UNIDAD 2 ARREGLOS MATERIA: Programación Orientada a Objetos DOCENTE: M.C Susana M

Views 82 Downloads 1 File size 652KB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

INSTITUTO TECNOLOGICO DE SALINA CRUZ UNIDAD 2 ARREGLOS

MATERIA: Programación Orientada a Objetos

DOCENTE: M.C Susana Mónica Román Nájera

CARRERA: INGENIERIA EN TECNOLOGIAS DE LA INFORMACIÓN Y DE LAS COMUNICACIONES

Trabajo: Investigación arreglos multidimensionales

Alumna: Benita Villalobos Pérez GRADO: 2 SEMESTRE

GRUPO: 2E2

SALINA CRUZ, OAXACA A MARZO DEL 2014

ÍNDICE

INTRODUCCIÓN ................................................................................................................................... 3 ARREGLOS MULTIDIMENSIONAL......................................................................................................... 4 CONCLUSIONES ................................................................................................................................. 11 OTRAS FUENTES CONSULTADAS ....................................................................................................... 12

2

INTRODUCCIÓN La programación hoy en día es muy utilizada ya que gracias a eso podemos realizar aplicaciones realizando estos en diferentes entornos según nos acomodemos para trabajar en ello ósea se nos haga más fácil de manejar. Conocer el uso de los arreglos multidimensionales y así poder utilizarlos a la hora de que estemos programando y ver su utilización ya que es más práctico. La realización de este trabajo se realiza consultando páginas web y con la orientación del docente. Se realiza una investigación sobre los arreglos multidimensionales y algunos ejemplos. Es muy importante el desarrollo del presente trabajo ya que así conoceremos más sobre los arreglos y su uso. Esperando que este trabajo contenga la información correcta y así el docente de su crítica para este trabajo realizado.

3

ARREGLOS MULTIDIMENSIONAL Arreglos Un arreglo o array (en inglés) es una colección de variables relacionadas a las que se hace referencia por medio de un nombre común. Otra definición valida es que un arreglo es un conjunto de datos que se almacenan en memoria de manera contigua con el mismo nombre y para diferenciar los elementos de un arreglo se utiliza un índice. En el lenguaje C++ un arreglo se le conoce como un tipo de dato compuesto. Los arreglos pueden tener una o varias dimensiones. Float arreglo [6]; Representación grafica de un arreglo de una dimensión: 1 arreglo [0] 2 arreglo [1] 3 arreglo [2] 4 arreglo [3] 5 arreglo [4] 6 arreglo [5] Arreglos unidimensionales Un arreglo de una dimensión es una lista de variables, todas de un mismo tipo a las que se hace referencia por medio de un nombre común. Una variable individual del arreglo se llama elemento del arreglo. Para declarar un arreglo de una sola dimensión se usa el formato general: tipo_dato identificador [tamaño]; int arreglo [3]; arreglo [0] arreglo [1] arreglo [2] Un elemento del arreglo se accede indexando el arreglo por medio de un número del elemento. En C++ todos los arreglos empiezan en 0, esto quiere decir que si se desea acceder al primer elemento del arreglo debe usar el índice igual a 0. Para indexar un arreglo se especifica el índice del elemento que interesa dentro de un corchete, ejemplo; Valor = arreglo 1];

4

Los arreglos empiezan en 0, de manera que el índice 1 se refiere al segundo elemento. Para asignar el valor a un elemento de un arreglo, ponga el elemento en el lado izquierdo de una sentencia de asignación. mi_arreglo [0] = 100; Un arreglo multidimensional es aquel que consta de varias dimensiones de arreglos en la memoria, y utiliza el mismo método de declaración y creación que los arreglos unidimensionales y bidimensionales, y la forma de mandar a llamar a sus diferentes espacios de memoria es la misma, un arreglo en sí, no es limitado por nada, más que por la memoria disponible existente para poder seguir creando más arreglos o espacios de arreglos. En Java es posible crear arrays con más de una dimensión, pasando de la idea de lista, vector o matriz de una sola fila a la idea de matriz de m x n elementos, estructuras tridimensionales, tetradimensionales, etc. La sintaxis será: También podemos alternativamente usar esta declaración:

Tipo_de_variable [ ][ ] … [ ] Nombre_del_array; Nombre_del_array = new Tipo_de_variable [dimensión1][dimensión2]…[dimensiónN]; El tipo de variable puede ser cualquiera de los admitidos por Java y que ya ha sido explicado. Ejemplos de declaración e inicialización con valores por defecto de arrays, usando los distintos tipos de variables Java, serían:

-

byte [][] edad = new byte[4][3];

-

short [][] edad = new short[4][3];

-

int [][] edad = new int[4][3];

-

long [][] edad = new long[4][3];

-

float [][] estatura = new float[3][2];

-

double [][] estatura = new double[3][2];

-

boolean [][] estado = new boolean[5][4];

-

char [][] sexo = new char[2][1]; 5

-

String [][] nombre = new String[2][1];

La declaración de una matriz tradicional de m x n elementos podría ser: /* Ejemplo declaración - aprenderaprogramar.com */ Int [][] matriz = new int[3][2]; O alternativamente Int [][] matriz; matriz = new int [3][2]; El número de elementos sería: 3 x 2 = 6, dónde 3 es el número de filas y 2 es el número de columnas. Ahora procedemos a cargar la matriz con valores:

Matriz [0][0] = 1; Matriz [0][1] = 2; Matriz [1][0] = 3; Matriz [1][1] = 4; Matriz [2][0] = 5; Matriz [2][1] = 6;

Hay que recordar que los elementos empiezan a numerarse por 0. Así, la esquina superior izquierda de la matriz será el elemento [0][0] y la esquina inferior derecha será el [2][1]. Hay que prestar atención a esto porque en otros lenguajes de programación la numeración puede empezar por 1 en vez de por 0. También se pueden cargar directamente los elementos, durante la declaración de la matriz de la siguiente manera:

Int [][] matriz = {{1,2},{3,4},{5,6}};

6

Donde {1,2} corresponde a la fila 1, {3,4} a la fila 2 y {5,6} a la fila 3, y los números separados por coma dentro de cada fila, corresponden a las columnas. En este caso, los números (1, 3, 5) de cada una de las filas corresponden a la primera columna y los números (2, 4, 6) atañen a la segunda columna.

Para obtener el número de filas de la matriz, podemos recurrir a la propiedad “length” de los arrays, de la siguiente manera: int filas = matriz.length; Para el caso del número de columnas sería de la siguiente forma: int columnas = matriz [0].length; También Java nos permite la posibilidad de clonar una matriz, es decir, crear una matriz nueva a partir de otra matriz, siguiendo esta sintaxis String [][] nuevaMatriz = matriz.clone(); Donde clone () es un método especial, que permite la clonación de arrays de cualquier dimensión en Java. De esta manera “nuevaMatriz” y “matriz” son 2 matrices distintas pero con los mismos valores. Hablaremos del método clone más adelante. EJERCICIO Vamos a plantear y resolver un ejercicio: queremos almacenar en una matriz el número de alumnos con el que cuenta una academia, ordenados en función del nivel y del idioma que se estudia. Tendremos 3 filas que representarán al Nivel básico, medio y de perfeccionamiento y 4 columnas en las que figurarán los idiomas (0 = Inglés, 1 = Francés, 2 = Alemán y 3 = Ruso). Se pide realizar la declaración de la matriz y asignarle unos valores de ejemplo a cada elemento.

SOLUCIÓN La declaración de la matriz sería: /* Ejemplo declaración - aprenderaprogramar.com */ Int [][] alumnosfxniveleidioma= new int[3][4];

7

Podríamos asignar contenidos de la siguiente manera: Alumnosfxniveleidioma [0][0] = 7 alumnosfxniveleidioma [0][1] = 14 Alumnosfxniveleidioma [0][2]= 8 Alumnosfxniveleidioma [0][3] = 3 Alumnosfxniveleidioma [1][0] = 6 Alumnosfxniveleidioma [1][1]= 19 Alumnosfxniveleidioma [1][2] = 7 Alumnosfxniveleidioma [1][3] = 2 Alumnosfxniveleidioma [2][0] = 3 Alumnosfxniveleidioma [2][1]= 13 Alumnosfxniveleidioma [2][2] = 4 Alumnosfxniveleidioma [2][3] = 1 También, podríamos asignar contenido de esta otra forma, como ya se ha explicado anteriormente: int[][] alumnosfxniveleidioma = {{7,14,8,3},{6,19,7,2},{3,13,4,1}}; La representación gráfica que podríamos asociar a esta asignación de datos sería esta matriz:

La organización de la información en matrices, nos generará importantes ventajas a la hora del tratamiento de datos en nuestros programas.

8

Un arreglo multidimensional es un arreglo cuyos elementos tienen más de un índice. El caso más simple son los arreglos bidimensionales, que tienen dos índices, y son útiles para representar datos con formato tabular, como tablas y matrices. Los arreglos multidimensionales son declarados indicando los tamaños a lo largo de cada una de las dimensiones, separados por comas. Por ejemplo, un arreglo de enteros de 5 × 3 es declarado así: integer, dimension(5, 3) :: a

Este arreglo tiene quince elementos: desde a(1, 1) hasta a(5, 3). La manera típica de recorrer los elementos de un arreglo multidimensional es usar varios ciclos do anidados, uno por cada dimensión. Por ejemplo, el siguiente programa suma todos los elementos del arreglo a declarado en el ejemplo anterior:

suma = 0 do i = 1, 5 do j = 1, 3 suma = suma + a(i, j) end do end do

Cada índice no tiene un significado por sí mismo. El programador puede interpretar cada uno como quiera, siempre que sea consistente a lo largo del programa. Por ejemplo, para los elementos a(i, j) de un arreglo bidimensional, uno puede interpretar i como las filas de una tabla y j como las columnas, pero hacerlo al revés también es correcto.

INICIALIZACIÓN DE ARREGLOS MULTIDIMENSIONALES La inicialización de arreglos multidimensionales es muy similar a la que se describió para arreglos de un solo índice. Otra vez es necesario enlistar los 9

valores de cada uno de los elementos del arreglo entre llaves y separados por comas. La diferencia sin embargo, es que es necesario tener más de un grupo de valores encerrados entre llaves. Por ejemplo:

int x[2][3]={{1,2,3},{4,5,6}};

Observe que tenemos un conjunto de llaves que encierra a otros grupos de números también encerrados entre llaves y separados por comas. ¿Cuántos grupos de números se tienen encerrados por las llaves de los extremos? 2, porque la dimensión del primer índice es 2. ¿Cuántos números se tienen en cada uno de los grupos? 3, por el tamaño correspondiente al segundo índice es 3.

El ejemplo equivaldría a tener el siguiente arreglo de números. El primer índice representaría al renglón y el segundo índice a la columna:

1 x[0][0]

2 x[0][1]

4 x[1][0]

3 x[0][2]

5 x[1][1]

6 x[1][2]

10

CONCLUSIONES Los arreglos son muy útiles para así poder crearlos y darles un nombre, de esta manera nosotros los manejos para poder programar y ahorrarnos de ciertos espacios en nuestro programa. Un aprendizaje que tuve es que los arreglos prestan mucha utilidad cuando es necesario manejar lista de información al momento de que estemos programando y nos ahorra espacio. Una experiencia que tuve es que pues me ayudo a conocer más sobre los arreglos multidimensionales y leer ejemplos sobre las matrices esto fue muy interesante ya que no sabía sobre estos arreglos y gracias a esta investigación pude conocer estos aspectos. Ahora ya pude aumentar un poco más mis conocimientos sobre los arreglos.

11

OTRAS FUENTES CONSULTADAS Arreglos multidimensionales. Internet. En línea. Página consultada el 5 de marzo del 2014. Disponible en: http://aldeafraypedrodeagreda.files.wordpress.com/2009/12/11-arreglosmultidimensionales.pdf Arreglos multidimensionales. Internet. En línea. Pagina consultada el día 5 de marzo de 2014. Disponible en:http://xtremepoo.blogspot.mx/2009/06/arreglos-multidimensionales.html Arreglos multidimensionales. Internet. en línea. Pagina consultada el día 5 de marzo de 2014. Disponible en: http://www.aprenderaprogramar.com/index.php?option=com_content&id=233:arrays-arreglosmultidimensionales-en-java-declaracion-y-uso-ejemplos-y-ejercicios-resueltoscu00904c&Itemid=180

Arreglos multidimensionales. Internet. En línea. Página consultada el 5 de marzo de 2014. Disponible en: http://csrg.inf.utfsm.cl/~rbonvall/progra-utfsm-20102/arreglos.html

12