ss arreglos estÁticos - cs.umss.edu.bo · todos los arreglos tienen una propiedad que retorna su...
TRANSCRIPT
![Page 1: SS ARREGLOS ESTÁTICOS - cs.umss.edu.bo · Todos los arreglos tienen una propiedad que retorna su longitud, es decir el tamaño con el cuál han sido creados,](https://reader031.vdocuments.pub/reader031/viewer/2022020413/5b6881637f8b9af77c8cb665/html5/thumbnails/1.jpg)
ARREGLOS (ESTÁTICOS) Corina Flores Villarroel
Corin
a F
lore
s V. - U
MS
S
1
![Page 2: SS ARREGLOS ESTÁTICOS - cs.umss.edu.bo · Todos los arreglos tienen una propiedad que retorna su longitud, es decir el tamaño con el cuál han sido creados,](https://reader031.vdocuments.pub/reader031/viewer/2022020413/5b6881637f8b9af77c8cb665/html5/thumbnails/2.jpg)
CONTENIDO
Introducción
¿Qué es un arreglo?
Definición
Declaración de arreglos
Definir el tamaño de arreglos
Operaciones con arreglos
Inicialización/Asignación de arreglos
Lectura/escritura de un arreglo
Recorrido de un arreglo
Actualización(insertar,. Modificar, borrar)
Ordenar un arreglo
Buscar un elemento en un arreglo
Corin
a F
lore
s V. - U
MS
S
2
![Page 3: SS ARREGLOS ESTÁTICOS - cs.umss.edu.bo · Todos los arreglos tienen una propiedad que retorna su longitud, es decir el tamaño con el cuál han sido creados,](https://reader031.vdocuments.pub/reader031/viewer/2022020413/5b6881637f8b9af77c8cb665/html5/thumbnails/3.jpg)
INTRODUCCIÓN
Hasta ahora hemos empleado una computadora
por ejemplo para sacar promedios de 3 notas,
pero además puede servir muy bién
Para 10.000 notas!
Entonces, … será que es preciso ¿Definir 10.000
variables?
¿Escribir métodos con 10.000 parámetros?
Corin
a F
lore
s V. - U
MS
S
3
![Page 4: SS ARREGLOS ESTÁTICOS - cs.umss.edu.bo · Todos los arreglos tienen una propiedad que retorna su longitud, es decir el tamaño con el cuál han sido creados,](https://reader031.vdocuments.pub/reader031/viewer/2022020413/5b6881637f8b9af77c8cb665/html5/thumbnails/4.jpg)
INTRODUCCIÓN
class Estudiante{
int nota1, nota2, nota3,……nota10000;
}
double promedio(int n1, int n2,
…,n10000);
Corin
a F
lore
s V. - U
MS
S
4
![Page 5: SS ARREGLOS ESTÁTICOS - cs.umss.edu.bo · Todos los arreglos tienen una propiedad que retorna su longitud, es decir el tamaño con el cuál han sido creados,](https://reader031.vdocuments.pub/reader031/viewer/2022020413/5b6881637f8b9af77c8cb665/html5/thumbnails/5.jpg)
INTRODUCCIÓN
¿Cómo decirle a la computadora que nota1 ... nota10000 son todas notas?
¿Cómo acceder a todas con un ciclo for?
Se hace necesario especificar “grupos” de variables
Todas del mismo tipo.
Todas con un nombre parecido.
Definidas con una secuencia específica.
Corin
a F
lore
s V. - U
MS
S
5
![Page 6: SS ARREGLOS ESTÁTICOS - cs.umss.edu.bo · Todos los arreglos tienen una propiedad que retorna su longitud, es decir el tamaño con el cuál han sido creados,](https://reader031.vdocuments.pub/reader031/viewer/2022020413/5b6881637f8b9af77c8cb665/html5/thumbnails/6.jpg)
VEAMOS UN EJEMPLO CONCRETO
Se tienen los sueldos de un grupo de 70 empleados de una empresa y necesitamos saber ¿Cuántos de estos empleados tienen un sueldo superior al promedio del grupo?.
Corin
a F
lore
s V. - U
MS
S
¿Cómo resolveríamos el problema?
6
![Page 7: SS ARREGLOS ESTÁTICOS - cs.umss.edu.bo · Todos los arreglos tienen una propiedad que retorna su longitud, es decir el tamaño con el cuál han sido creados,](https://reader031.vdocuments.pub/reader031/viewer/2022020413/5b6881637f8b9af77c8cb665/html5/thumbnails/7.jpg)
UN ASOLUCIÓN SERÍA …
1. Declarar 70 variables para representar los sueldos de 70 empleados
2. Calcular el promedio de los sueldos
3. Comparar cada una de las variables de los sueldos de cada empleado
3.1 Si es mayor al promedio, contar en una
variable contador
3.2 Si No, volver a 3
4. Imprimir contador
Corin
a F
lore
s V. - U
MS
S
7
![Page 8: SS ARREGLOS ESTÁTICOS - cs.umss.edu.bo · Todos los arreglos tienen una propiedad que retorna su longitud, es decir el tamaño con el cuál han sido creados,](https://reader031.vdocuments.pub/reader031/viewer/2022020413/5b6881637f8b9af77c8cb665/html5/thumbnails/8.jpg)
UN ASOLUCIÓN SERÍA …
Analicemos …. 1. ¿Cuántas variables tendríamos que
declarar? , y ¿que pasaría si no fueran 70 empleados sino 1345?
2. ¿Cuántas comparaciones tendríamos que hacer?
3. ¿Cómo se imaginan que sería el programa? 4. ¿Cuántas líneas de código tendríamos? 5. ¿Qué crees que se podría simplificar?
Corin
a F
lore
s V. - U
MS
S
8
![Page 9: SS ARREGLOS ESTÁTICOS - cs.umss.edu.bo · Todos los arreglos tienen una propiedad que retorna su longitud, es decir el tamaño con el cuál han sido creados,](https://reader031.vdocuments.pub/reader031/viewer/2022020413/5b6881637f8b9af77c8cb665/html5/thumbnails/9.jpg)
¿QUÉ ES UN ARREGLO?
Un arreglo en Java es un grupo de posiciones de
memoria contiguas, todas las cuales tienen el
mismo nombre y el mismo tipo.
Un arreglo es:
Una variable o identificador que define un “grupo” de
variables.
Define un nombre
Define un tipo
Define el tamaño del “grupo”.
Las variables dentro del “grupo” se conocen como
elementos y estan ordenados en posiciones
Corin
a F
lore
s V. - U
MS
S
9
![Page 10: SS ARREGLOS ESTÁTICOS - cs.umss.edu.bo · Todos los arreglos tienen una propiedad que retorna su longitud, es decir el tamaño con el cuál han sido creados,](https://reader031.vdocuments.pub/reader031/viewer/2022020413/5b6881637f8b9af77c8cb665/html5/thumbnails/10.jpg)
DEFINICIÓN
Corin
a F
lore
s V. - U
MS
S
Un arreglo es una colección de elementos del mismo tipo que se
reconocen por un solo identificador.
Para acceder a los elementos individuales de un arreglo se utiliza un
subíndice que debe ser un número entero.
56 56
91 0
-3224
100
62
12
a[0]
a[1]
a[2]
a[3] a[4]
a[5]
a[6]
a[7]
Arreglo con nombre a
Número de la posición de cada elemento
10
![Page 11: SS ARREGLOS ESTÁTICOS - cs.umss.edu.bo · Todos los arreglos tienen una propiedad que retorna su longitud, es decir el tamaño con el cuál han sido creados,](https://reader031.vdocuments.pub/reader031/viewer/2022020413/5b6881637f8b9af77c8cb665/html5/thumbnails/11.jpg)
DEFINICIÓN
Los arreglos pueden ser: de una dimensión (vectores) o de 2 o más
dimensiones (matrices)
una dimensión(fila) Multidimensión(fila, columna) 11
Corin
a F
lore
s V. - U
MS
S
![Page 12: SS ARREGLOS ESTÁTICOS - cs.umss.edu.bo · Todos los arreglos tienen una propiedad que retorna su longitud, es decir el tamaño con el cuál han sido creados,](https://reader031.vdocuments.pub/reader031/viewer/2022020413/5b6881637f8b9af77c8cb665/html5/thumbnails/12.jpg)
DECLARACIÓN DE ARREGLOS
Se sigue la siguiente sintaxis:
Paso 1:
Corin
a F
lore
s V. - U
MS
S
<tipoDato> <nombre> [];
Cualquier
tipo de dato
válido
Cualquier
nombre válido
Corchetes
obligatorios
Ejemplo: int [] numeros;
<tipoDato> [] <nombre>;
12
![Page 13: SS ARREGLOS ESTÁTICOS - cs.umss.edu.bo · Todos los arreglos tienen una propiedad que retorna su longitud, es decir el tamaño con el cuál han sido creados,](https://reader031.vdocuments.pub/reader031/viewer/2022020413/5b6881637f8b9af77c8cb665/html5/thumbnails/13.jpg)
CREACIÓN DE ARREGLOS
Los arreglos ocupan espacio en memoria. En java
se usa el operador new para asignar espacio de
almacenamiento al número de elementos
requerido por cada arreglo.
Corin
a F
lore
s V. - U
MS
S
13
![Page 14: SS ARREGLOS ESTÁTICOS - cs.umss.edu.bo · Todos los arreglos tienen una propiedad que retorna su longitud, es decir el tamaño con el cuál han sido creados,](https://reader031.vdocuments.pub/reader031/viewer/2022020413/5b6881637f8b9af77c8cb665/html5/thumbnails/14.jpg)
CREACIÓN DE ARREGLOS
Se sigue la siguiente sintaxis:
Paso 2:
Corin
a F
lore
s V. - U
MS
S
<nombre> = new <tipoDato> [<tamaño>];
Operador Constante que
especifica el
tamaño
Ejemplo: numeros = new int [50];
14
![Page 15: SS ARREGLOS ESTÁTICOS - cs.umss.edu.bo · Todos los arreglos tienen una propiedad que retorna su longitud, es decir el tamaño con el cuál han sido creados,](https://reader031.vdocuments.pub/reader031/viewer/2022020413/5b6881637f8b9af77c8cb665/html5/thumbnails/15.jpg)
INICIALIZACIÓN DEL ARREGLO
El arreglo en java empieza en la posición 0, es decir, el
primer elemento del arreglo ocupa la posición de 0, de ahí
que el for comienza en 0.
Corin
a F
lore
s V. - U
MS
S
Una vez creado el arreglo, se puede proceder a llenar con elementos dispuestos en cada posición. Ejemplo:
for(int j =0; j<50; j++) { numeros[j] = j++; }
15
![Page 16: SS ARREGLOS ESTÁTICOS - cs.umss.edu.bo · Todos los arreglos tienen una propiedad que retorna su longitud, es decir el tamaño con el cuál han sido creados,](https://reader031.vdocuments.pub/reader031/viewer/2022020413/5b6881637f8b9af77c8cb665/html5/thumbnails/16.jpg)
INICIALIZACIÓN DEL ARREGLO
numero[0]
Corin
a F
lore
s V. - U
MS
S
El resultado será: numeros[0] = 1, numeros[1] = 2, numeros[2] = 3, …. numeros[49] = 50
1 2 3 … … 50
numeros
numero[1] numero[2] numero[49]
16
![Page 17: SS ARREGLOS ESTÁTICOS - cs.umss.edu.bo · Todos los arreglos tienen una propiedad que retorna su longitud, es decir el tamaño con el cuál han sido creados,](https://reader031.vdocuments.pub/reader031/viewer/2022020413/5b6881637f8b9af77c8cb665/html5/thumbnails/17.jpg)
INICIALIZACIÓN DEL ARREGLO
Corin
a F
lore
s V. - U
MS
S
Los arreglos se pueden definir como objetos en los que podemos guardar mas de una variable, es decir, al tener un único arreglo, este puede guardar múltiples variables de acuerdo a su tamaño o capacidad.
17
![Page 18: SS ARREGLOS ESTÁTICOS - cs.umss.edu.bo · Todos los arreglos tienen una propiedad que retorna su longitud, es decir el tamaño con el cuál han sido creados,](https://reader031.vdocuments.pub/reader031/viewer/2022020413/5b6881637f8b9af77c8cb665/html5/thumbnails/18.jpg)
INICIALIZACIÓN DEL ARREGLO
Es importante recordar que las variables guardadas deben ser del mismo tipo.
Corin
a F
lore
s V. - U
MS
S
Por ejemplo: Si tenemos un arreglo de tipo Numérico que puede
almacenar 50 variables, solo podrá almacenar 50 números diferentes, no otras variables como caracteres o Strings, etc.
18
![Page 19: SS ARREGLOS ESTÁTICOS - cs.umss.edu.bo · Todos los arreglos tienen una propiedad que retorna su longitud, es decir el tamaño con el cuál han sido creados,](https://reader031.vdocuments.pub/reader031/viewer/2022020413/5b6881637f8b9af77c8cb665/html5/thumbnails/19.jpg)
INICIALIZACIÓN DEL ARREGLO
Corin
a F
lore
s V. - U
MS
S
Por tanto, si un arreglo tiene n elementos, la
última localidad está dada por n-1.
0 n-1
n elementos
19
![Page 20: SS ARREGLOS ESTÁTICOS - cs.umss.edu.bo · Todos los arreglos tienen una propiedad que retorna su longitud, es decir el tamaño con el cuál han sido creados,](https://reader031.vdocuments.pub/reader031/viewer/2022020413/5b6881637f8b9af77c8cb665/html5/thumbnails/20.jpg)
INICIALIZACIÓN DEL ARREGLO
Corin
a F
lore
s V. - U
MS
S
Java también permite crear e inicializar un arreglo de manera directa, por ej.:
char [] lista = {‘r’, ‘a’, ‘e’,’r’,’w’}; DONDE … el arreglo de nombre lista contendrá en su
posición 0 (cero) a la letra r, en la posición 1 la letra a y así sucesivamente.
20
![Page 21: SS ARREGLOS ESTÁTICOS - cs.umss.edu.bo · Todos los arreglos tienen una propiedad que retorna su longitud, es decir el tamaño con el cuál han sido creados,](https://reader031.vdocuments.pub/reader031/viewer/2022020413/5b6881637f8b9af77c8cb665/html5/thumbnails/21.jpg)
INICIALIZACIÓN DEL ARREGLO
Corin
a F
lore
s V. - U
MS
S
De manera similar se puede inicializar un arreglo de String, por ej.:
String [] colores= {“rojo”, “amarillo”, “verde”};
En este caso las cadenas van en comilla doble.
21
![Page 22: SS ARREGLOS ESTÁTICOS - cs.umss.edu.bo · Todos los arreglos tienen una propiedad que retorna su longitud, es decir el tamaño con el cuál han sido creados,](https://reader031.vdocuments.pub/reader031/viewer/2022020413/5b6881637f8b9af77c8cb665/html5/thumbnails/22.jpg)
ACCESO A UN ARREGLO
Corin
a F
lore
s V. - U
MS
S
Para acceder a los elementos de un arreglo
debemos referirnos a una posición o elemento en
particular del arreglo, especificando el nombre
del arreglo y el número de posición de ese
elemento en el arreglo.
Ejemplo
a[i] = 0;
numeros[3] = 9;
22
![Page 23: SS ARREGLOS ESTÁTICOS - cs.umss.edu.bo · Todos los arreglos tienen una propiedad que retorna su longitud, es decir el tamaño con el cuál han sido creados,](https://reader031.vdocuments.pub/reader031/viewer/2022020413/5b6881637f8b9af77c8cb665/html5/thumbnails/23.jpg)
ACCESO A UN ARREGLO
Corin
a F
lore
s V. - U
MS
S
1. Los arreglos definen “grupos” de elementos.
2. Cada “elemento” se representa por un indice
secuencial.
3. El indice varia entre 0 y (tamaño-1).
4. Cada elemento es una variable común y
silvestre.
5. Para acceder a una de estas variables (sea
para lectura y escritura) se utiliza la
notación “[<indice>]”
23
![Page 24: SS ARREGLOS ESTÁTICOS - cs.umss.edu.bo · Todos los arreglos tienen una propiedad que retorna su longitud, es decir el tamaño con el cuál han sido creados,](https://reader031.vdocuments.pub/reader031/viewer/2022020413/5b6881637f8b9af77c8cb665/html5/thumbnails/24.jpg)
ACCESO A ARREGLOS
Corin
a F
lore
s V. - U
MS
S
<arreglo>[<indice>] = <sentencia>;
<variable> = <arreglo>[<indice>];
Modificando el elemento correspondiente al indice
Recuperando el elemento correspondiente al indice 24
![Page 25: SS ARREGLOS ESTÁTICOS - cs.umss.edu.bo · Todos los arreglos tienen una propiedad que retorna su longitud, es decir el tamaño con el cuál han sido creados,](https://reader031.vdocuments.pub/reader031/viewer/2022020413/5b6881637f8b9af77c8cb665/html5/thumbnails/25.jpg)
EJEMPLO 1
Corin
a F
lore
s V. - U
MS
S
class Ejemplo{
int [] numeros = new int[10];
int i;
numeros[0]=0;
for(i=1;i<10;i++)
numeros[i]= numeros[i-1]+1;
for(i=0;i<10;i++)
System.out.println(”elemento ” + i+,numeros[i]);
}
Asignando un primer elemento al arreglo
“numeros”
Recupera el valor del elemento i
Modificando el valor del elemento i por el
elemento i-1 25
![Page 26: SS ARREGLOS ESTÁTICOS - cs.umss.edu.bo · Todos los arreglos tienen una propiedad que retorna su longitud, es decir el tamaño con el cuál han sido creados,](https://reader031.vdocuments.pub/reader031/viewer/2022020413/5b6881637f8b9af77c8cb665/html5/thumbnails/26.jpg)
NÚMERO DE ELEMENTOS DE UN ARREGLO
Todos los arreglos tienen una propiedad que retorna su
longitud, es decir el tamaño con el cuál han sido creados,
para ello utilizan el método length que proporciona el
tamaño de un arreglo. De la siguiente forma:
Corin
a F
lore
s V. - U
MS
S
26
nombreArreglo.length
![Page 27: SS ARREGLOS ESTÁTICOS - cs.umss.edu.bo · Todos los arreglos tienen una propiedad que retorna su longitud, es decir el tamaño con el cuál han sido creados,](https://reader031.vdocuments.pub/reader031/viewer/2022020413/5b6881637f8b9af77c8cb665/html5/thumbnails/27.jpg)
DOS FORMAS DE ACCEDER A UN ARREGLO
1. Utilizando el método length que proporciona el
tamaño de un arreglo.
Corin
a F
lore
s V. - U
MS
S
27
int arreglo[ ] = new int[20]; System.out.println("Longitud arreglo : " + arreglo.length); int i; /* Se asignaran los valores : 0, 10 , 20, 30 ,..., 180, 190. */ for(i = 0; i < arreglo.length; i++) arreglo[i] = i * 10; System.out.println("Datos del arrreglo : "); System.out.println(); for(i =0; i < arreglo.length; i++) System.out.println(arreglo[i]);
![Page 28: SS ARREGLOS ESTÁTICOS - cs.umss.edu.bo · Todos los arreglos tienen una propiedad que retorna su longitud, es decir el tamaño con el cuál han sido creados,](https://reader031.vdocuments.pub/reader031/viewer/2022020413/5b6881637f8b9af77c8cb665/html5/thumbnails/28.jpg)
DOS FORMAS DE ACCEDER A UN ARREGLO
2. Indexación: Accede a los elementos de un arreglo a
través de su índice. El índice siempre tiene un rango
entre 0 y N-1, siendo N el tamaño del areglo
Corin
a F
lore
s V. - U
MS
S
28
for(i=1;i<10;i++)
numeros[i]= numeros[i-1]+1;
![Page 29: SS ARREGLOS ESTÁTICOS - cs.umss.edu.bo · Todos los arreglos tienen una propiedad que retorna su longitud, es decir el tamaño con el cuál han sido creados,](https://reader031.vdocuments.pub/reader031/viewer/2022020413/5b6881637f8b9af77c8cb665/html5/thumbnails/29.jpg)
VEAMOS ALGUNOS EJEMPLOS
Resolver los siguientes ejercicios para entregar el
día jueves 20/11/2014 Guardar en un arreglo 50 números generados
aleatoriamente entre 0 y 100, mostrar el arreglo y eliminar
del arreglo los números repetidos y mostrar sin repetidos.
Crear un arreglo de dos dimensiones (fila, columna) para
representar los 7 días de la semana y sus respectivas
temperaturas. Luego hacer un método para mostrar el
arreglo y otro método de averiguar cuál ha sido el día con
mayores temperaturas de la semana. Las temperaturas
asuman como valores enteros.
Corin
a F
lore
s V. - U
MS
S
29
![Page 30: SS ARREGLOS ESTÁTICOS - cs.umss.edu.bo · Todos los arreglos tienen una propiedad que retorna su longitud, es decir el tamaño con el cuál han sido creados,](https://reader031.vdocuments.pub/reader031/viewer/2022020413/5b6881637f8b9af77c8cb665/html5/thumbnails/30.jpg)
OPERACIONES CON ARREGLOS
Hasta aquí ya sabemos
Asignar
Acceder
Recuperar
Hacer recorridos sobre arreglos
Nos falta conocer …
¿Cómo realizar las búsquedas y el ordenamiento de
elementos en un arreglo?
Corin
a F
lore
s V. - U
MS
S
30
![Page 31: SS ARREGLOS ESTÁTICOS - cs.umss.edu.bo · Todos los arreglos tienen una propiedad que retorna su longitud, es decir el tamaño con el cuál han sido creados,](https://reader031.vdocuments.pub/reader031/viewer/2022020413/5b6881637f8b9af77c8cb665/html5/thumbnails/31.jpg)
OPERACIONES CON ARREGLOS
Hasta aquí ya sabemos
Asignar
Acceder
Recuperar
Hacer recorridos sobre arreglos
Nos falta conocer …
¿Cómo realizar las búsquedas y el ordenamiento de elementos en un arreglo?
… para ello deben bajar el archivo Ordenamiento-Busqueda.pdf del sitio www.cs.umss.edu.bo
Corin
a F
lore
s V. - U
MS
S
31
![Page 32: SS ARREGLOS ESTÁTICOS - cs.umss.edu.bo · Todos los arreglos tienen una propiedad que retorna su longitud, es decir el tamaño con el cuál han sido creados,](https://reader031.vdocuments.pub/reader031/viewer/2022020413/5b6881637f8b9af77c8cb665/html5/thumbnails/32.jpg)
ARREGLOS DE DOS DIMENSIONES
Corin
a F
lore
s V. - U
MS
S
Se conocen también como matrices. Por ejemplo, en matemáticas una matriz es una tabla bidimensional de números tal como se muestra
Filas
Columnas
32
![Page 33: SS ARREGLOS ESTÁTICOS - cs.umss.edu.bo · Todos los arreglos tienen una propiedad que retorna su longitud, es decir el tamaño con el cuál han sido creados,](https://reader031.vdocuments.pub/reader031/viewer/2022020413/5b6881637f8b9af77c8cb665/html5/thumbnails/33.jpg)
ARREGLOS DE DOS DIMENSIONES
Corin
a F
lore
s V. - U
MS
S
En Java una matriz se declara siguiendo la sintaxis:
tipoDato variable[filas][columnas];
Luego se reserva memoria con new definiendo el tamaño de las filas y columnas. Así:
variable = new tipoDato [n][m];
Donde: n, es el tamaño de filas m, es el tamaño de columnas
33
![Page 34: SS ARREGLOS ESTÁTICOS - cs.umss.edu.bo · Todos los arreglos tienen una propiedad que retorna su longitud, es decir el tamaño con el cuál han sido creados,](https://reader031.vdocuments.pub/reader031/viewer/2022020413/5b6881637f8b9af77c8cb665/html5/thumbnails/34.jpg)
OPERACIONES CON ARREGLOS DE DOS
DIMENSIONES
Corin
a F
lore
s V. - U
MS
S
Al igual que con los arreglos de una dimensión visto en la clase anterior, con los arreglos de dos dimensiones se puede:
1. Crear 2. Llenar 3. Acceder 4. Buscar 5. Ordenar
Además, las matrices pueden … 6. Sumarse 7. Multiplicarse
34
![Page 35: SS ARREGLOS ESTÁTICOS - cs.umss.edu.bo · Todos los arreglos tienen una propiedad que retorna su longitud, es decir el tamaño con el cuál han sido creados,](https://reader031.vdocuments.pub/reader031/viewer/2022020413/5b6881637f8b9af77c8cb665/html5/thumbnails/35.jpg)
OPERACIONES CON ARREGLOS DE DOS
DIMENSIONES
Corin
a F
lore
s V. - U
MS
S
1. Creación de una matriz
int matriz[][] = new int[3][3];
Se puede crear una matriz de diferentes formas, veamos:
Otra manera de crear y llenar o instanciar una matriz …
int matriz[5][4] = {{2,3,4,2} , {2,0,6,1} , {3,5,5,0} , {2,2,1,1} , {3,2,5,6}};
35
![Page 36: SS ARREGLOS ESTÁTICOS - cs.umss.edu.bo · Todos los arreglos tienen una propiedad que retorna su longitud, es decir el tamaño con el cuál han sido creados,](https://reader031.vdocuments.pub/reader031/viewer/2022020413/5b6881637f8b9af77c8cb665/html5/thumbnails/36.jpg)
OPERACIONES CON ARREGLOS DE DOS
DIMENSIONES
Corin
a F
lore
s V. - U
MS
S
1. Creación y llenado de una matriz
Otra forma …
int matriz[5][4] = {{2,3} , {1} , {3,5,5,0} , {2} , {3}};
36
![Page 37: SS ARREGLOS ESTÁTICOS - cs.umss.edu.bo · Todos los arreglos tienen una propiedad que retorna su longitud, es decir el tamaño con el cuál han sido creados,](https://reader031.vdocuments.pub/reader031/viewer/2022020413/5b6881637f8b9af77c8cb665/html5/thumbnails/37.jpg)
OPERACIONES CON ARREGLOS DE DOS
DIMENSIONES
Corin
a F
lore
s V. - U
MS
S
2. Llenado de una matriz
matriz[0][0] = 2;
matriz[0][1] = 4;
matriz[0][2] = 4;
matriz[1][0] = 6;
matriz[1][1] = 6;
matriz[1][2] = 9;
matriz[2][0] = 8;
matriz[2][1] = 10;
matriz[2][2] = 12;
Otra forma …
37
![Page 38: SS ARREGLOS ESTÁTICOS - cs.umss.edu.bo · Todos los arreglos tienen una propiedad que retorna su longitud, es decir el tamaño con el cuál han sido creados,](https://reader031.vdocuments.pub/reader031/viewer/2022020413/5b6881637f8b9af77c8cb665/html5/thumbnails/38.jpg)
OPERACIONES CON ARREGLOS DE DOS
DIMENSIONES
Corin
a F
lore
s V. - U
MS
S
2. Llenado de una matriz desde teclado
for (int x=0; x < matriz.length; x++)
{
for (int y=0; y < matriz[x].length; y++)
{
System.out.println("Introduzca el elemento [" + x + "," + y +
"]");
matriz[x][y] = pantalla.nextInt();
}
}
Para llenar desde teclado vamos a utilizar la siguiente técnica
empleando dos ciclos anidados que iteraran según el número de
elementos que tenga la matriz en cada índice. El tamaño de la
matriz que nos sirve para definir el ciclo lo conseguimos mediante
la propiedad .length. Algo así:
38
![Page 39: SS ARREGLOS ESTÁTICOS - cs.umss.edu.bo · Todos los arreglos tienen una propiedad que retorna su longitud, es decir el tamaño con el cuál han sido creados,](https://reader031.vdocuments.pub/reader031/viewer/2022020413/5b6881637f8b9af77c8cb665/html5/thumbnails/39.jpg)
OPERACIONES CON ARREGLOS DE DOS
DIMENSIONES
Corin
a F
lore
s V. - U
MS
S
2. Llenado de una matriz desde teclado
Para proceder la lectura desde teclado utilizamos la clase Scanner,
desde el principio del programa
import java.util.Scanner;
…
// Creamos una matriz de 3x3
int matriz[][] = new int[3][3];
Scanner pantalla = new Scanner(System.in) ;
39
![Page 40: SS ARREGLOS ESTÁTICOS - cs.umss.edu.bo · Todos los arreglos tienen una propiedad que retorna su longitud, es decir el tamaño con el cuál han sido creados,](https://reader031.vdocuments.pub/reader031/viewer/2022020413/5b6881637f8b9af77c8cb665/html5/thumbnails/40.jpg)
OPERACIONES CON ARREGLOS DE DOS
DIMENSIONES
Corin
a F
lore
s V. - U
MS
S
3. Accediendo a elementos de una matriz
for (int x=0; x < matriz.length; x++)
{
for (int y=0; y < matriz[x].length; y++)
{
System.out.println (matriz[x][y]);
}
}
Podemos acceder al contenido de la matriz para imprimir
sus elementos. Así:
40
![Page 41: SS ARREGLOS ESTÁTICOS - cs.umss.edu.bo · Todos los arreglos tienen una propiedad que retorna su longitud, es decir el tamaño con el cuál han sido creados,](https://reader031.vdocuments.pub/reader031/viewer/2022020413/5b6881637f8b9af77c8cb665/html5/thumbnails/41.jpg)
OPERACIONES CON ARREGLOS DE DOS
DIMENSIONES
Corin
a F
lore
s V. - U
MS
S
3. Accediendo a elementos de una matriz
for (int x=0; x < matriz.length; x++)
{
for (int y=0; y < matriz[x].length; y++)
{
System.out.println (matriz[x][y]);
}
}
Podemos acceder al contenido de la matriz para imprimir
sus elementos. Así:
41
![Page 42: SS ARREGLOS ESTÁTICOS - cs.umss.edu.bo · Todos los arreglos tienen una propiedad que retorna su longitud, es decir el tamaño con el cuál han sido creados,](https://reader031.vdocuments.pub/reader031/viewer/2022020413/5b6881637f8b9af77c8cb665/html5/thumbnails/42.jpg)
OPERACIONES CON ARREGLOS DE DOS
DIMENSIONES
Corin
a F
lore
s V. - U
MS
S
4. Buscar un elemento en una matriz
Se aplican los mismos algoritmos de búsqueda que
para una matriz unidimensional
42
![Page 43: SS ARREGLOS ESTÁTICOS - cs.umss.edu.bo · Todos los arreglos tienen una propiedad que retorna su longitud, es decir el tamaño con el cuál han sido creados,](https://reader031.vdocuments.pub/reader031/viewer/2022020413/5b6881637f8b9af77c8cb665/html5/thumbnails/43.jpg)
OPERACIONES CON ARREGLOS DE DOS
DIMENSIONES
Corin
a F
lore
s V. - U
MS
S
5. Ordenar elementos de una matriz
Se aplican los mismos algoritmos de
ordenamiento que para una matriz
unidimensional
43
![Page 44: SS ARREGLOS ESTÁTICOS - cs.umss.edu.bo · Todos los arreglos tienen una propiedad que retorna su longitud, es decir el tamaño con el cuál han sido creados,](https://reader031.vdocuments.pub/reader031/viewer/2022020413/5b6881637f8b9af77c8cb665/html5/thumbnails/44.jpg)
OPERACIONES CON ARREGLOS DE DOS
DIMENSIONES
Corin
a F
lore
s V. - U
MS
S
6. Suma de matrices
void sumaMatrices(double a[3][3],double
b[3][3],double c[3][3])
{
for(int i = 0; i< 3 ; i++)
for(int j = 0; j< 3 ; j++)
c[i][j] = a[i][j] + b[i][j];
}
44
![Page 45: SS ARREGLOS ESTÁTICOS - cs.umss.edu.bo · Todos los arreglos tienen una propiedad que retorna su longitud, es decir el tamaño con el cuál han sido creados,](https://reader031.vdocuments.pub/reader031/viewer/2022020413/5b6881637f8b9af77c8cb665/html5/thumbnails/45.jpg)
OPERACIONES CON ARREGLOS DE DOS
DIMENSIONES
Corin
a F
lore
s V. - U
MS
S
6. Suma de matrices
void multiplicaMatrices(double a[3][3],double
b[3][3],double c[3][3])
{
for(int i = 0; i< 3 ; i++)
for(int j = 0; j< 3 ; j++){
c[i][j] = 0;
for(int k = 0; k< 3 ; k++)
c[i][j] += a[i][k]*b[k][j];
}
}
45
![Page 46: SS ARREGLOS ESTÁTICOS - cs.umss.edu.bo · Todos los arreglos tienen una propiedad que retorna su longitud, es decir el tamaño con el cuál han sido creados,](https://reader031.vdocuments.pub/reader031/viewer/2022020413/5b6881637f8b9af77c8cb665/html5/thumbnails/46.jpg)
OPERACIONES CON ARREGLOS DE DOS
DIMENSIONES
Corin
a F
lore
s V. - U
MS
S
7. Multiplicación de matrices
Tarea que deben resolver para entregar el jueves!!
46