Sunteți pe pagina 1din 18

Programacin orientada a objetos I

Programa desarrollado

Ingeniera en Desarrollo de software CUATRIMESTRE: 04

Programa de la asignatura: Programacin orientada a objetos I Unidad 4. Arreglos

Clave: 160920414 / 150920414

1 Ciencias Exactas, Ingenieras y Tecnologa | Ingeniera en Desarrollo de Software 1

Programacin orientada a objetos I


Programa desarrollado

ndice
Unidad 4. Arreglos ............................................................................................................. 3 Presentacin de la unidad .............................................................................................. 3 Propsito ........................................................................................................................ 3 Competencia especfica ................................................................................................. 3 4.1. Arreglos unidimensionales....................................................................................... 3 4.1.1. Declaracin .......................................................................................................... 4 Actividad 1. Arreglos ...................................................................................................... 6 4.1.2. Recorrido.............................................................................................................. 6 4.1.3. Operaciones ......................................................................................................... 9 Actividad 2. Operaciones con arreglos ......................................................................... 10 4.2 Arreglos multidimensionales ................................................................................... 11 4.2.1. Declaracin ........................................................................................................ 11 4.2.2. Recorrido............................................................................................................ 14 4.2.3. Operaciones ....................................................................................................... 15 Actividad 3. Inversin de arreglos................................................................................. 16 Autoevaluacin ............................................................................................................. 17 Evidencia de aprendizaje. Men del curso ................................................................... 17 Para saber ms ............................................................................................................ 18 Fuentes de consulta ..................................................................................................... 18

2 Ciencias Exactas, Ingenieras y Tecnologa | Ingeniera en Desarrollo de Software 2

Programacin orientada a objetos I


Programa desarrollado

Unidad 4. Arreglos Presentacin de la unidad


En esta unidad de la materia Programacin orientada a objetos I (POOI), aprenders el concepto arreglos, as como su manejo y recorrido. En esta unidad de la materia de Programacin orientada a objetos I (POOI), aprenders una de las estructuras de datos ms importante y bsica, que son los arreglos, conocers su concepto, as como su declaracin, manipulacin y recorrido. De esta manera aprenders a manejar varios datos unidos como un todo. Esto te servir para el manejo de informacin obtenida de una base de datos, as como la estructuracin de datos en tablas, que son temas que tratars en POO2. En esta Unidad es necesario que t, como estudiante, captures todos los programas de ejemplo, para que analices su sintaxis y as comprendas mejor los temas vistos.

Propsito
En esta unidad logrars: o Distinguir los arreglos unidimensionales y multidimensionales o Manejar las operaciones bsicas con arreglos

Competencia especfica
Construir programas para el manejo de datos del mismo tipo (carcter, cadena, entero o decimal) a travs de arreglos aplicados en problemas matemticos simples.

4.1. Arreglos unidimensionales


Un arreglo es una estructura de datos que contiene una serie de variables a las que se accede a travs de los ndices calculados. 3 Ciencias Exactas, Ingenieras y Tecnologa | Ingeniera en Desarrollo de Software 3

Programacin orientada a objetos I


Programa desarrollado

Las variables contenidas en un arreglo, tambin llamados los elementos del arreglo, son todos del mismo tipo, y este tipo se llama el tipo de elemento del arreglo. Un arreglo tiene un rango que determina el nmero de ndices asociados a cada elemento del arreglo. El rango de un arreglo tambin se conoce como las dimensiones del arreglo. Un arreglo con un rango de 1 se denomina arreglo unidimensional. Un arreglo con un rango mayor que 1 se llama un arreglo multidimensional. Los arreglos multidimensionales con un tamao especfico se refieren a menudo como arreglos de dos dimensiones, los arreglos de tres dimensiones, y as sucesivamente. Cada dimensin de un arreglo tiene una longitud asociada que es un nmero entero mayor o igual a cero. Las longitudes de las dimensiones no son parte del tipo del arreglo, sino que se establecen cuando una instancia del tipo arreglo se crea en tiempo de ejecucin. La longitud de una dimensin determina el rango de validez de los ndices de esa dimensin: Por una dimensin de longitud N, los ndices pueden variar de 0 a N-1. El nmero total de elementos de un arreglo es el producto de las longitudes de cada dimensin del arreglo. Si una o ms de las dimensiones de un arreglo tienen una longitud de cero, se dice que el arreglo est vaco. El tipo de elemento de un arreglo puede ser cualquier tipo de dato, incluyendo l mismo (Hejlsberg, 2011: 626), es decir, en lugar de cada posicin contenga un dato, puede contener un arreglo completo.

4.1.1. Declaracin
En Java hay que declarar un array antes de poder utilizarlo. Y en la declaracin es necesario incluir el nombre del array y el tipo datos que se van a almacenar en l (Froufe, 2009: 35). La sintaxis general para declarar e instanciar un array es:

Adems, como ya se mencion, se pueden usar en Java arrays de cualquier tipo de dato soportado, incluso los definidos por el usuario:

4 Ciencias Exactas, Ingenieras y Tecnologa | Ingeniera en Desarrollo de Software 4

Programacin orientada a objetos I


Programa desarrollado

Haciendo referencia al tema presentado antes Declaracin y mbito de variables (Unidad 2, subtema 2.1.1.) se debe saber que la declaracin de los arrays en Java se hace mediante una variable referenciada, es decir no se guarda el valor del contenido del array, lo que se guarda es una referencia de la locacin de memoria donde estn alojados dichos datos. Con lo que se acaba de ver, fcilmente se puede deducir que los arrays son objetos. Esto se puede ver en el siguiente prrafo: La memoria necesaria para almacenar los datos que componen el array se buscar en memoria dinmica a la hora de instanciar y crear realmente el array (Froufe, 2009: 35). Igual que con cualquier variable utilizada, en el lenguaje Java necesitan ser inicializadas a un valor. Bajo esta premisa, cuando se declara (crea) un array en Java se inicializa automticamente, dependiendo de estos tres casos: false cuando el tipo de dato es boolean. null para un array de objetos de tipo Object. el equivalente a 0 (vacio para String) para cualquier otro tipo de dato.

Cuando se hace la declaracin de un array en Java se consideran dos posibles opciones: Declararlo vaco o Declarar colocando valores.

5 Ciencias Exactas, Ingenieras y Tecnologa | Ingeniera en Desarrollo de Software 5

Programacin orientada a objetos I


Programa desarrollado

Una vez que se ha instanciado un array, se puede acceder a los elementos de ste utilizando un ndice, de forma similar a la que se accede en otros lenguajes de programacin. Los ndices de un array siempre empiezan por 0 (cero) (Froufe, 2009: 35).

Actividad 1. Arreglos
El propsito de esta actividad es quereflexiones sobre las diferencias existentes entre los diversos tipos de arreglos revisados en la asignatura. 1. Elabora un cuadro sinptico en el que identifiques los diferentes tipos de arreglos y sus diferencias. 2. Ingresa al foro y genera una nueva entrada. 3. Contribuye con algn comentario a por lo menos dos compaeros(as) sobre su discernimiento del tema. 4. Elabora las diferencias entre los diversos tipos de arreglos, esto ser como conclusin del foro; hazlo basndote en las aportaciones de los compaeros(as).

4.1.2. Recorrido
6 Ciencias Exactas, Ingenieras y Tecnologa | Ingeniera en Desarrollo de Software 6

Programacin orientada a objetos I


Programa desarrollado

Los elementos contenidos en los arrays estn controlados por la posicin que ocupen dentro del array. As, en el ejemplo anterior se tena una declaracin de un array de tipo String que contendra 4 elementos, refirindose a los nombres propios de 4 personas:

Si, por alguna necesidad especial de la situacin, se quisiera imprimir a pantalla el contenido del array nombres indicando la posicin de cada nombre, bastara con hacer lo siguiente:

Donde se indica al arreglo que se quiere imprimir el valor que est en la posicin i-sima, esta instruccin se le indica al lenguaje Java cuando se pone el nombre del arreglo con el cual se quiere trabajar, seguido de la posicin que se desea recuperar (para impresin, operaciones, clculos, entre otros) encerrado entre corchetes([]). La salida de estas instrucciones escritas en lenguaje Java, al compilar y ejecutar el programa (se obvian las partes faltantes de la clase por cuestiones didcticas) sera la siguiente:

Imagina la cantidad de lneas necesarias para imprimir el nombre de todos los alumnos que pertenecen a una universidad cuya matrcula es un total de 5,000 alumnos. Como se podr deducir fcilmente se necesitaran 5,000 lneas como las anteriores. 7 Ciencias Exactas, Ingenieras y Tecnologa | Ingeniera en Desarrollo de Software 7

Programacin orientada a objetos I


Programa desarrollado

Para solucionar la cuestin anterior de forma un tanto ms sencilla se utilizan ciclos, que como ya se sabe, facilitan la ejecucin de operaciones secuenciales y repetitivas pero necesarias, como en el caso de los arrays. Adems que los ciclos son controlados por ndices (su comienzo y su fin) y sta es la misma forma de acceder a los elementos de un array, como ya se haba explicado. A continuacin se presenta la misma impresin del contenido del array nombres, pero utilizando un ciclo for:

Y la salida ser:

Segn las nuevas instrucciones, se introdujeron algunas variaciones para poder hacer el recorrido funcional y se explica a continuacin: Cuando se declara un arreglo se indica el total de elementos que contendr dentro de l (lmite del arreglo); este mismo lmite es el total de repeticiones que deber ejecutar el ciclo for, indicado con i<4 (ya que si se indica un nmero mayor, Java lanzar una excepcin indicando que se intenta acceder a una locacin de memoria no reservada o inexistente). De igual manera el inicio del array debe comenzar por el nmero 0 (cero) y esto se indica en el ciclo for al hacer la declaracin i=0 que indica que desde esa posicin comenzar a iterar. Finalmente se le indica al arreglo que se quiere hacer el recorrido de sus elementos de uno en uno (aunque podra ser diferente, de dos en dos por ejemplo) para poder obtener el contenido total del array, en el ciclo for se le indica con la instruccin i++. As, a la hora de colocar la lnea de impresin System.out.println(nombres[i]+ est en la posicin +i); hacemos referencia al elemento i-simo indicado entre corchetes, pero en lugar de indicarle un nmero fijo, se le indica la posicin que se desea imprimir con la variable i 8 Ciencias Exactas, Ingenieras y Tecnologa | Ingeniera en Desarrollo de Software 8

Programacin orientada a objetos I


Programa desarrollado

que a voluntad del programador iniciar, terminar y se ir incrementando segn lo explicado de las partes que conforman al ciclo for.

4.1.3. Operaciones
Al referirse a operaciones con arrays no es en el sentido clsico de operaciones aritmticas sobre ellos (aunque se pueden hacer y se ejemplificar) sino a cmo se obtienen sus elementos, haciendo un profundo nfasis en la importancia que tienen los ndices para ello. Imagina que tenemos 2 arreglos unidimensionales, como sigue:

y se quiere hacer una suma y multiplicacin punto a punto (posicin a posicin) de cada uno de sus elementos, y almacenarlos en un tercer array para cada operacin sugerida, luego imprimir el resultado de la acumulacin de las operaciones. Se ejemplifica con la siguiente porcin de cdigo:

9 Ciencias Exactas, Ingenieras y Tecnologa | Ingeniera en Desarrollo de Software 9

Programacin orientada a objetos I


Programa desarrollado

Ntese la importancia de los ndices para poder acceder a los elementos de los arrays y de la misma manera para almacenar resultados. Se puede utilizar un mismo contador para n arrays, siempre y cuando stos sean del mismo tamao, como en el ejemplo anterior, donde se sum y multiplic en un mismo ciclo. Solo en las impresiones, dado que se buscaba que el resultado se viera de manera independiente, se utilizaron ms ciclos for, tantos como nmeros de resultados se quiera mostrar.

Actividad 2. Operaciones con arreglos

Esta actividad tiene como finalidad que identifiques la declaracin y recorrido de arreglos unidimensionales en Java.

1.

En NetBeans crea un nuevo proyecto.

2. Dentro de la clase Main crea un mtodo, donde se solicite al usuario un nmero para determinar el tamao de un arreglo, seguido a esto, se solicite al usuario ingrese 10 Ciencias Exactas, Ingenieras y Tecnologa | Ingeniera en Desarrollo de Software 10

Programacin orientada a objetos I


Programa desarrollado

elementos para llenar el arreglo, y por ltimo se muestre ese mismo arreglo en una salida pero con cada elemento elevado al cubo. La llamada a esto mtodo estar dada en el mtodo main. 3. Guarda la actividad con el nombre POO_U4_A2_XXYZ.Sustituye las XX por las dos primeras letras de tu primer nombre, la Y por la inicial de tu apellido paterno y la Z por la inicial de tu apellido materno. 4. 5. Revisa y comenta los proyectos de al menos dos compaeros(as). Enva el archivo a tu Facilitador(a)para recibir retroalimentacin.

4.2 Arreglos multidimensionales


Los arreglos vistos en la seccin anterior solo son de una dimensin, es decir solo se manejaban a manera de rengln (o fila). En cambio los multidimensionales se manejan a manera de tabla, donde se tendrn filas y columnas, por lo que este tipo de arreglos ofrece un mejor manejo de datos cuando stos deben manejar dimensiones, como la informacin mostrada en hojas de clculo o tablas de bases de datos.

4.2.1. Declaracin
Los arreglos multidimensionales tienen ms de una dimensin. En Java, las dimensiones se manejan por medio de corchetes (muy parecido a los arrays unidimensionales), dentro de los cuales se escribe cada dimensin (cantidad de datos que guardar). Cada dimensin ir dentro de un corchete. La sintaxis general para declarar e instanciar un array es:

Adems, como ya se mencion, se pueden usar en Java arrays de cualquier tipo de dato soportado, incluso los definidos por el usuario: 11 Ciencias Exactas, Ingenieras y Tecnologa | Ingeniera en Desarrollo de Software 11

Programacin orientada a objetos I


Programa desarrollado

Ahora bien, la declaracin de los arrays en Java se hace mediante una variable referenciada, es decir, no se guarda el valor del contenido del array, lo que se guarda es una referencia de la locacin de memoria donde estn alojados dichos datos. Con lo que se acaba de ver, fcilmente se puede deducir que los arrays son objetos. Cuando se hace la declaracin de un array en Java se consideran dos posibles opciones: Declararlo vaco o Declarar colocando valores. Declararlo vaco.

La estructura general, si pudiera observarse la reserva de memoria que hace Java sobre la memoria principal de la computadora, sera como sigue:

Declarar colocando valores

12 Ciencias Exactas, Ingenieras y Tecnologa | Ingeniera en Desarrollo de Software 12

Programacin orientada a objetos I


Programa desarrollado

Observa que la estructura que se muestra, coincide perfectamente con las dimensiones declaradas en el arreglo intnumeros[][] = new int[3][3]; donde el nmero contenido en el primer corchete corresponde al nmero de filas que contendr el array, por ende, el nmero contenido en el segundo corchete corresponde al nmero de columnas que contendr el array, de esta manera se analizar una estructura diferente, como la que sigue:

Quedara as:

Declararlo con valores iniciales es un poco diferente, como la declaracin para arrays unidimensionales, pues se debe especificar explcitamente el contenido de cada dimensin del array.

13 Ciencias Exactas, Ingenieras y Tecnologa | Ingeniera en Desarrollo de Software 13

Programacin orientada a objetos I


Programa desarrollado

4.2.2. Recorrido
El recorrido de los elementos de un array multidimensional es de la misma manera que en un arreglo unidimensional, slo agregando un corchete por cada dimensin que se aada, considerando lo siguiente: 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 representan la posicin del elemento en el arreglo. As, es posible referirse 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. Tmese como ejemplo el siguiente cdigo, donde se recorre e imprime el array bidimensional llamado nombres:

14 Ciencias Exactas, Ingenieras y Tecnologa | Ingeniera en Desarrollo de Software 14

Programacin orientada a objetos I


Programa desarrollado

La salida esperada para esta porcin de cdigo ser:

Observa el aumento de los contadores y la manera en que van incrementndose, ya que ah es donde radica la importancia del recorrido de los arreglos, en la posicin de sus contadores.

4.2.3. Operaciones
Como los arrays unidimensionales y multidimensionales son tan parecidos en su mtodo de acceso (que de hecho es idntico), se ejemplifica los arrays multidimensionales de la misma manera que se hizo con los arrays unidimensionales, slo modificando sus dimensiones: Imagina que tenemos 2 arreglos unidimensionales, como sigue:

//recuerda que el nmero total de elementos de un array multidimensional es la multiplicacin de cada dimensin contra todas las restantes, y se quiere hacer una suma y multiplicacin punto a punto (posicin a posicin) de cada uno de sus elementos y almacenarlos en un tercer array para cada operacin sugerida, luego imprimir el resultado de la acumulacin de las operaciones. Se ejemplifica con la siguiente porcin de cdigo:

15 Ciencias Exactas, Ingenieras y Tecnologa | Ingeniera en Desarrollo de Software 15

Programacin orientada a objetos I


Programa desarrollado

Nota la importancia de los ndices para poder acceder a los elementos de los arrays y de la misma manera para almacenar resultados. Se puede utilizar un mismo contador para n arrays, siempre y cuando stos sean del mismo tamao, como en el ejemplo anterior donde se sum y multiplic en un mismo ciclo. Slo en las impresiones como se buscaba que el resultado se viera de manera independiente, se utilizaron ms ciclos for, tantos como nmeros de resultados se quiera mostrar.

Actividad 3. Inversin de arreglos


El propsito de esta actividad es que identifiques la declaracin y recorrido de arreglos multidimensionales en JAVA. 16 Ciencias Exactas, Ingenieras y Tecnologa | Ingeniera en Desarrollo de Software 16

Programacin orientada a objetos I


Programa desarrollado

1.

En NetBeans crea un nuevo proyecto.

2. Dentro de la clase Main crea un mtodo, donde se soliciten al usuario dos nmeros X y Y, y sean X el nmero de filas, Y el nmero de columnas de un arreglo, seguido a esto, se solicite al usuario ingrese elementos para llenar el arreglo, y por ltimo se muestre ese mismo arreglo en una salida pero en orden inverso. La llamada a esto mtodo estar dada en el mtodo main. 3. Guarda la actividad con el nombre POO_U4_A3_XXYZ. Sustituye las XX por las dos primeras letras de tu primer nombre, la Y por la inicial de tu apellido paterno y la Z por la inicial de tu apellido materno. 4. Enva el archivo a tu Facilitador(a) para recibir retroalimentacin.

Autoevaluacin
Para reforzar los conocimientos relacionados con los temas que se abordaron en esta primera unidad del curso, es necesario que resuelvas la Autoevaluacin de la unidad. Recuerda que es muy importante leer cuidadosamente los planteamientos indicados y elegir la opcin adecuada para cada uno. Ingresa al aula para realizar la actividad.

Evidencia de aprendizaje. Men del curso


Como parte de la evaluacin de esta unidad, debes realizar un programa cuyo propsito es que logres identificar los componentes de un programa modular y puedas aplicarlos. 1. En NetBeans crea un nuevo proyecto, y crea tantas clases como ejercicios se han realizado a lo largo del cuatrimestre, donde cada clase incluya cada programa. En la clase Main se debe contar con un mensaje tipo men al usuario, y este podr elegir ejecutar cualquier programa; en el mtodo main se debe tener un switch que tenga la llamada a todos los mtodos en forma de men y que al elegir el usuario un nmero se ejecute ese programa. 2. Consulta la Escala de evaluacin. 17 Ciencias Exactas, Ingenieras y Tecnologa | Ingeniera en Desarrollo de Software 17

Programacin orientada a objetos I


Programa desarrollado

3. Guarda la evidencia con el nombre POO1_U3_EA_XXYZ. Sustituye las XX por las dos primeras letras de tu primer nombre, la Y por la inicial de tu apellido paterno y la Z por la inicial de tu apellido materno. 4. Enva la carpeta del proyecto a tu Facilitador(a) para recibir retroalimentacin. * Recuerda que puedes volver a enviar tu archivo tomando en cuenta las observaciones de tu Facilitador(a).

Autorreflexiones
Adems de enviar tu trabajo de la Evidencia de aprendizaje, es importante que ingreses al foro Preguntas de Autorreflexin y consultes las preguntas que tu Facilitador(a) presente, a partir de ellas, debes elaborar tu Autorreflexin en un archivo de texto llamado POO_U4_ATR_XXYZ. Posteriormente enva tu archivo mediante la herramienta Autorreflexiones.

Para saber ms
Consulta la pgina oficial del lenguaje Java, donde podrs encontrar manuales de referencia sobre arreglos. Java: http://www.java.com/es/

Fuentes de consulta
Froufe, A. (2009) Java 2, Manual de usuario y tutorial. Mxico: Alfaomega, RaMa. Hejlsberg, A., Torgersen, M., Wiltamuth, S. & Golde, P. (2011) C# Programming Language (Covering C# 4.0), The 4th Edition (Microsoft .NET Development Series). USA: Ed. Addison-Wesley.

18 Ciencias Exactas, Ingenieras y Tecnologa | Ingeniera en Desarrollo de Software 18

S-ar putea să vă placă și