Вы находитесь на странице: 1из 28

Taller de

Programación

Razón social
00.00.2015
Logro de la sesión

Al final de la sesión el alumno manejará


arreglos de 2 dimensiones usando java.

2
Agenda

1.Recordando arreglos de 1 dimensión


2.Arreglos de 2 dimensiones
3.Algoritmos de búsqueda y ordenación
4.Clase String

3
Recordando
Arreglo de 4 cajones (elementos)

nombres [ ] =

Haga un programa que llene estos valores por teclado en


un arreglo y después lo muestre en pantalla
4
Arreglos de dos dimensiones
Un array (arreglo) de dos dimensiones en Java es un arreglo de otro arreglo.
Operaciones con Arreglos
Podemos almacenar un conjunto de datos del mismo tipo. El tamaño de los arrays se
declara al inicio y no cambia. Declaración:

TipoDato[ ] [ ] variable = new TipoDato[dimen.] [dimen.];

Ejemplos:
•int[ ] [ ] edad = new int[2][3];
•double[ ] [ ] estatura = new double[3][4];
•boolean[ ] [ ] estado = new boolean[3][2];
•String[ ] [ ] nombre = new String[4][5];

Los valores por defecto son los siguientes:


a) Para números el valor cero ( 0 ).
b) Para cadenas y letras el valor vacío “”.
c) Para booleanos el valor false. 5
Arreglos de dos dimensiones
Cada elemento de un arreglo Operaciones
tiene un índice.con Arreglos
El primer elemento detiene el índice = 0 y
el último = (total de elementos – 1). Tenga cuidado de no confundir la cantidad de
elementos con el ultimo índice del arreglo.

“Carlos” 0 “Julian” 0 “Cristian” 0


nombres [ ] [ ] =
“Jose” 1 “Renzo” 1 “Beto” 1

0 1 2

Este es un arreglo de 3x2: tiene 3 elementos, y cada uno de


ellos tiene 2 sub-elementos

6
Arreglos de dos dimensiones
Operaciones con Arreglos
“Carlos” 0 “Julian” 0 “Cristian” 0
nombres [ ] [ ] =
“Jose” 1 “Renzo” 1 “Beto” 1

0 1 2
En Java

7
Arreglos de dos dimensiones
Ejercicio resuelto parte 1:
• Lea por teclado 4
números enteros
y los guárdelos en
un array de 2 x 2
dimensiones.
Calcule y muestre
el promedio de
los valores que
están en el array.
8
Arreglos de dos dimensiones
Ejercicio resuelto parte 2:

• Haga el ejercicio
anterior pero use la
estructura repetitiva
for para reducir el
tamaño del código.

9
Arreglos de dos dimensiones
NOTAS ADICIONALES: Operaciones con Arreglos
1. Existe otra maneras de declarar un arreglo:

TipoDato[ ][ ] variable;
variable = new TipoDato[dimen.] [dimen.];

2. Existe otra manera de inicializar un arreglo si se saben los datos:

TipoDato[ ][ ] variable = { {Ele1, Ele2}, {Ele3, Ele4},... };

Ejemplo:
int[ ][ ] edad = { {45, 23}, {11, 9} }; //Array 2 x 2 elementos
double[ ][ ] estatura = { {1.73, 1.67, 1.56} }; //Array 1 x 3 elementos
String[ ][ ] nombre = { {"María“}, {"Gerson“} }; //Array 2 x 1 elementos
10
Arreglos de dos dimensiones
Ejercicio resuelto
Inicialice un arreglo de 3 x 3 con los nombres de personas que
empiezan con “A” y haga un programa que pregunte dos números del
1 al 3 y muestre en pantalla el nombre obteniéndolo del arreglo.

11
Arreglos de dos dimensiones
Operaciones con Arreglos
FUNCIONES UTILES PARA ARREGLOS:

Si se tiene: TipoDato[][] varArray = new TipoDato[cant] [cant];

1. Para saber la cantidad de elementos, es por dimensión:

int a = varArray.length; // cantidad de 1ra dimensión

int b = varArray[0].length; // cantidad de 2da dimensión

//b contendrá la cantidad de subelementos del elemento 0


12
Arreglos de dos dimensiones
Operaciones
FUNCIONES UTILES PARA con Arreglos
ARREGLOS (cont…):

Si se tiene: TipoDato[][] varArray = new TipoDato[cant] [cant];

2. Para recorrer un arreglo sin tener que saber su cantidad de elementos o sub-
elementos use el for para objetos:

for (TipoDato[] elemento : varArray){


for (TipoDato subelem : elemento){
//aca van las instrucciones a ejecutarse
}
}
// varArray es del mismo tipo de datos que elemento y subelemento
// elemento es un arreglo, sub elemento no es un arreglo
// útil solo para leer contenido de varArray, no para grabar 13
Arreglos de dos dimensiones
Ejemplo de length y nuevo for:

Se calcula el tamaño del arreglo para que


el for de vueltas hasta el último elemento
y subelemento.
Ultimo Indice = Cantidad Elementos - 1

Cada vuelta cada subelemento del arreglo


se graba en la variable z hasta que llega al
último subelemento

14
Arreglos de n dimensiones
Operaciones con Arreglos
Siguiendo la lógica de los arreglos de 2 dimensiones se pueden
hacer arreglos de N dimensiones y para definirlos sería así:

TipoD [ ][ ][ ]… variable = new TipoD [dim.][dim.][dim.]…;

Las maneras estudiadas para grabar y mostrar información de


cada subelemento sirven de esto tipos de arreglos.

15
Algoritmos de ordenación
Operaciones con Arreglos
Son para ordenar arreglos. Nos centraremos en los métodos más
populares, analizando la cantidad de comparaciones que suceden
y el tiempo que demora.

En esta presentación solo se verán los más conocidos: algoritmo


de la burbuja, sin embargo hay muchos más.

16
Algoritmo de ordenación por burbuja
Un algoritmo de ordenación bien conocido es el de ordenación por burbuja, el cual está basada en el proceso de
comparar dos nombres adyacentes repetidamente e intercambiarlos si no se encuentran en el orden correcto.
Supongamos que la lista en cuestión tiene n entradas. La ordenación por burbuja comenzaría comparando (y es
posible que intercambiando) las entradas en las posiciones n y n - 1. A continuación, consideraría las entradas en
las posiciones n - 1 y n – 2, y continuará avanzando por la lista hasta que la primera y segunda entrada de la lista
hubieran sido comparadas (y es posible que intercambiadas). Observe que cada pasada a través de la lista hará
que la entrada más pequeña quede en la posición inicial. De forma similar, otra de esas pasadas hará que la
segunda entrada más pequeña quede en la segunda posición de la lista. Por lo tanto, haciendo un total de n - 1
pasadas a través de la lista, conseguiremos una lista completamente ordenada.

17
Algoritmo de ordenación por burbuja
ALGORITMO DE LA BURBUJA

Este compara cada elemento de un arreglo contra el resto, si encuentra uno menor al
primero, entonces los intercambia de posición.

Ejemplo de ordenar un arreglo de 1 dimensión de menos a más:

5 6 1 0 3

Comienza recorriendo los valores de izquierda a derecha, desde el 5. Lo compara con el


6, con el 1, con el 0 y con el 3, si alguno es mayor lo
intercambia de posición y continua con el siguiente. Esto lo repite sucesivamente, hasta
el ultimo elemento de la lista.
18
Algoritmo de ordenación por burbuja
Código en Java de ordenación por burbuja

19
Algoritmos de búsqueda secuencial
Operaciones con Arreglos
Algoritmo de Búsqueda
Secuencial:
Una búsqueda secuencial
examina cada elemento y lo
compara con el que estamos
buscando. Si coincide, hemos
encontrado el elemento. Si
no, miramos el siguiente
elemento en la lista. Paramos
ya sea cuando hemos
encontrado el elemento o
cuando hemos mirado todos los
elementos y no se encontró
una coincidencia
20
Algoritmos de búsqueda secuencial
Código en Java de búsqueda secuencial en un arreglo de 7 elementos

21
Ejercicios Arreglos

• Busque un número dentro de una matriz de 4x3 y


determine la posición y si existe o no el número
buscado, use el método de búsqueda secuencial
Ejercicios Arreglos

• Llene un arreglo de 10 elementos con números


aleatorios entre 0 y 100 y muéstrelo ordenado de
más a menos
• Llene un arreglo de 2 x 5 con números aleatorios
entre 0 y 50 y muestre ordenado de menos a más
los elementos de la posiciones [0,j] y de más a
menos los elementos de las posiciones [1,j]
Clase STRING

Permite declarar tipos de datos objeto tipo


01
String, que son cadenas de textos.

Contiene además métodos para poder hacer


02
operaciones y comparaciones con textos.

Una clase String es en realidad un arreglo de


03
una dimensión del tipo de dato char.
24
Clase STRING - Métodos

La referencia de toda la clase String la encontrarán25 en:


https://docs.oracle.com/javase/8/docs/api/java/lang/String.html
¿Preguntas?

26
Resumiendo…
Responder lo siguiente:
• ¿Puede aplicar lo aprendido en arreglos de dos
dimensiones a otros de más dimensiones?

• ¿De que trata el algoritmo de la burbuja?

• ¿Que método de la clase String me parece más útil?

27
FIN

28

Вам также может понравиться