Está en la página 1de 18

Programacin orientada a objetos I

Programa desarrollado


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





Ingeniera en Desarrollo de software
CUATRIMESTRE: 04





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


Clave: 160920414 / 150920414




Programacin orientada a objetos I
Programa desarrollado


2
Ciencias Exactas, Ingenieras y Tecnologa | Ingeniera en Desarrollo de Software 2
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


Programacin orientada a objetos I
Programa desarrollado


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

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.
Programacin orientada a objetos I
Programa desarrollado


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

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:

Programacin orientada a objetos I
Programa desarrollado


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


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.
Programacin orientada a objetos I
Programa desarrollado


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


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

Programacin orientada a objetos I
Programa desarrollado


7
Ciencias Exactas, Ingenieras y Tecnologa | Ingeniera en Desarrollo de Software 7
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.
Programacin orientada a objetos I
Programa desarrollado


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

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
Programacin orientada a objetos I
Programa desarrollado


9
Ciencias Exactas, Ingenieras y Tecnologa | Ingeniera en Desarrollo de Software 9
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:

Programacin orientada a objetos I
Programa desarrollado


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


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
Programacin orientada a objetos I
Programa desarrollado


11
Ciencias Exactas, Ingenieras y Tecnologa | Ingeniera en Desarrollo de Software 11
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. Revisa y comenta los proyectos de al menos dos compaeros(as).

5. 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:
Programacin orientada a objetos I
Programa desarrollado


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



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

Programacin orientada a objetos I
Programa desarrollado


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


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.

Programacin orientada a objetos I
Programa desarrollado


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



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:


Programacin orientada a objetos I
Programa desarrollado


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

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:

Programacin orientada a objetos I
Programa desarrollado


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


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.
Programacin orientada a objetos I
Programa desarrollado


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

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.
Programacin orientada a objetos I
Programa desarrollado


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

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, Ra-
Ma.
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.

También podría gustarte