Documente Academic
Documente Profesional
Documente Cultură
Programacin Electrnica 2
Arreglos
Tema 8 Fase 2
Programacin Electrnica 2
Agenda
q q q q q
Programacin Electrnica 2
Introduccin
Programacin Electrnica 2
multidimensionales o matrices) son estructuras de datos que consisten de elementos relacionados, del mismo tipo.
p Los arreglos son entidades de longitud fija, es decir,
conservan la misma longitud una vez creados, aunque puede reasignarse una variable tipo arreglo de tal forma que haga referencia a un nuevo arreglo de distinta longitud
Ing. Mario Urrutia Espinoza
Programacin Electrnica 2
Arreglos Unidimensional es
Programacin Electrnica 2
(elementos o componentes) que contienen valores, todos del mismo tipo (primitivos o de referencia). consideran como tipos de referencia. Un arreglo es en realidad una referencia a un objeto arreglo en memoria. especfico en un arreglo, debemos especificar el nombre de la referencia al arreglo y el nmero de la posicin del elemento en el arreglo (ndice oIng. Mario Urrutia Espinoza subndice)
Programacin Electrnica 2
Este arreglo contiene 12 c. El nombre del arreglo es elementos. Cada instancia de un objeto Un programa puede hacer y conoce su propia longitud referencia a susinformacin mantiene esta elementos mediante una en un campo length. expresin que c.lengthel La expresin incluye nombre delcampo length del accede al arreglo, seguido por el ndice del arreglo c para determinar elemento especfico la longitud del arreglo. encerrado entre ] es -45, el El valor de c[ 0 corchetes ([ ]). de c[ 1 ] es 6, el de valor El primer 0, el de c[ en]un 62 c[ 2 ] es elemento 7 es arreglo tiene eles 78. y el de c[ 11 ] ndice cero (elemento cero) de los Para calcular la suma Los elementos del arreglo primeros tres elementos cdel arreglo c[ y almacenar el son c[ 0 ], c 1 ], c[ 2 ], y as sucesivamente. resultado en la variable El mayor ndice en el suma: arreglo c = c[ 0 ] + c[ 1 ] + suma es 11; 1 menos que 12, nmero ]; c[ 2 de elementos enel valor de Para dividir el arreglo. Los 6 ] entre 2 y los c[ nombres de asignar el arreglos siguenvariable x: resultado Mario Urrutia Espinoza Ing. a la las mismas convenciones que x = c[ 6 ] / 2;
Programacin Electrnica 2
Programacin Electrnica 2
p Los objetos arreglo ocupan espacio en memoria. p Al igual que cualquier objeto, los arreglos
unidimensionales se crean con la palabra clave new donde debe especificarse el tipo de cada elemento y el numero de elementos que se requieren para el arreglo, como parte de una expresin para crear un arreglo que utiliza la palabra clave new. almacenarse en una variable tipo arreglo.
Programacin Electrnica 2
10
10 p La siguiente declaracin y expresin crea un objeto arreglo, que contiene 12 elementos int, y almacena la referencia del
arreglo en la variable c:
int c[] = new int[12]; p Tambin puede hacerse por separado:
int c[ ]; // declara la variable arreglo c = new int[ 12 ]; // crea el arreglo y lo asigna a la variable arreglo
predeterminado: cero para los elementos numricos tipo primitivo, false para los elementos boolean y null para las referencias.
Programacin Electrnica 2
11
11
sola declaracin. La siguiente declaracin de un arreglo String reserva 100 elementos para b y 27 para x:
String b[] = new String[ 100 ], x[] = new String[ 27 ];
Programacin Electrnica 2
12
combinarse al principio de la declaracin para indicar que todos los identificadores en la declaracin son variables tipo arreglo. Por ejemplo:
double[] arreglo1, arreglo2; p indica que arreglo1 y arreglo2 son variables tipo arreglo de
solo una variable en cada declaracin, los corchetes pueden colocarse ya sea despus del nombre de la variable o antes de la misma.
Ing. Mario Urrutia Espinoza
Programacin Electrnica 2
13
13
Programacin Electrnica 2
14
14
Pantalla
Programacin Electrnica 2
15
15
Pantalla
Programacin Electrnica 2
16
Pantalla
Programacin Electrnica 2
17
Pantalla
Programacin Electrnica 2
18
El encabezado del for mejorado se puede leer: para cada iteracin, asignar el siguiente elemento de arreglo a la variable numero y despus ejecutar la siguiente instruccin La instruccin for mejorada slo puede utilizarse para obtener elementos del arreglo; no puede utilizarse para modificar los elementos, dicho de otra manera, cuando el cdigo que itera a travs de un arreglo requiere acceso solo a los valores y no al subndice del elemento actual del arreglo Pantalla
Programacin Electrnica 2
19
19
Ejercicio
p Programa que lee por teclado la nota de los alumnos de una
clase y calcula la nota media del grupo. Tambin muestra los alumnos con notas superiores a la media.
Este programa utiliza un arreglo de elementos de tipo double El tamao del arreglo ser el nmero de alumnos de la clase, Se realizan 3 recorridos sobre el arreglo: el primero para
por lo tanto primero se pedir por teclado el nmero de alumnos y a continuacin se crear el arreglo. asignar a cada elemento las notas introducidas por teclado, el segundo para sumarlas y calcular la media y el tercero para mostrar los alumnos con notas superiores a la media
Programacin Electrnica 2
20
20
Programacin Electrnica 2
21
21 Ejercicio: Hacer un programa que lea 10 valores enteros en un arreglo desde el teclado y calcule y muestre: la suma, el valor medio, el mayor y el menor
Probar y corregir
Programacin Electrnica 2
22
22
Programacin Electrnica 2
23
23
utilizan con frecuencia para representar tablas de valores, las cuales consisten en informacin ordenada en filas y columnas. especificar dos subndices. Por convencin, el primero identifica la fila del elemento y el segundo su columna.
pero permite al programador especificar arreglos unidimensionales, cuyos elementos sean tambin arreglos unidimensionales, con lo que se obtiene el mismo efecto
Programacin Electrnica 2
24
24
Arreglos bidimensionales
- Cada elemento en el arreglo a se identifica mediante una expresin de acceso a un arreglo de la forma a [ fila ][ columna ]; - a es el nombre del arreglo, fila y columna son los subndices que identifican en forma nica a cada elemento en el arreglo a por nmero de fila y columna. - Observe que los nombres de los elementos en la fila 0 tienen todos un primer subndice de 0, y los nombres de los elementos en la columna 3 tienen un segundo subndice de 3.
Ing. Mario Urrutia Espinoza
Programacin Electrnica 2
25
25
mediante inicializadores de arreglos en las declaraciones. Un arreglo bidimensional b con dos filas y dos columnas podra declararse e inicializarse con inicializadores de arreglos anidados, como se muestra a continuacin:
int b[ ] [ ] = { { 1, 2 }, {3, 4} }; p Los valores del inicializador se agrupan por fila entre llaves. p Entonces, 1 y 2 inicializan a b[ 0 ][ 0 ] y b[ 0 ][ 1 ],
Programacin Electrnica 2
26
anidados (representados por conjuntos de llaves dentro de las llaves externas) en la declaracin del arreglo, para determinar el nmero de filas en el arreglo b. Asimismo, cuenta los valores inicializadores en el inicializador de arreglos anidado de una fila, para determinar el nmero de columnas en esa fila. Esto significa que las filas pueden tener distintas longitudes. de arreglos unidimensionales.
p Los arreglos multidimensionales se mantienen como arreglos p Por lo tanto, el arreglo b en la declaracin anterior est
realmente compuesto de dos arreglos unidimensionales separados: uno que contiene los valores en la primera lista inicializadora anidada { 1, 2 } y otro que contiene los valores en la segunda lista inicializadora anidada { 3, 4 }. As, el arreglo b en s es un arreglo de dos elementos, cada uno de los cuales es un arreglo unidimensional.
Ing. Mario Urrutia Espinoza
Programacin Electrnica 2
27
27
multidimensionales los hace bastante flexibles. De hecho, las longitudes de las filas en el arreglo b no tienen que ser iguales. Por ejemplo,
int b[ ][ ] = { { 1, 2 }, { 3, 4, 5 } };
determinan segn el nmero de inicializadores que representan las filas del arreglo bidimensional.
unidimensional de variables. El arreglo de la fila 0 es un arreglo unidimensional con dos elementos (1 y 2), y el arreglo de la fila 1 es un arreglo unidimensional con tres elementos (3, 4 y 5).
Ing. Mario Urrutia Espinoza
Programacin Electrnica 2
28
28
de columnas en cada fila puede crearse mediante una expresin de creacin de arreglos.
p Por ejemplo, se declara el arreglo b y se le asigna
Programacin Electrnica 2
29
29
Programacin Electrnica 2
30
30 El mtodo main de la clase InicArreglo declara dos arreglos: En la declaracin de arreglo1 se utilizan inicializadores para inicializar la primera fila del arreglo con los valores 1, 2 y 3, y la segunda fila con los valores 4, 5 y 6. En la declaracin de arreglo2 se utilizan inicializadores de distintas longitudes. En este caso, la primera fila se inicializa para tener dos elementos con los valores 1 y 2, respectivamente. La segunda fila se inicializa para tener un elemento Pantalla con el valor 3. La tercera fila se inicializa para tener tres elementos con los valores 4, 5 y 6.
Programacin Electrnica 2
31
31
Manipulaciones comunes en arreglos utilizan la instruccin for. La siguiente instruccin for asigna a todos los elementos en la fila 2 del arreglo a, el valor de cero:
Se especifica la fila 2; por lo tanto, el primer ndice siempre ser 2 (0 es la primera fila y 1 es la segunda). Este ciclo for vara solamente el segundo ndice (de la columna). Si la fila 2 del arreglo a contiene cuatro elementos, entonces la instruccin for anterior es equivalente a las siguientes instrucciones de asignacin:
2 2 2 2 ][ ][ ][ ][ 0 1 2 3 ] ] ] ] = = = = 0; 0; 0; 0;
a[ a[ a[ a[
Programacin Electrnica 2
32
int total = 0; for ( int fila = 0; fila < a.length; fila++ ) { for ( int columna = 0; columna < a[ fila ].length; columna++ ) total += a[ fila ][ columna ]; } // fin de for exterior
modo que los elementos de la primera fila puedan totalizarse mediante la instruccin for interior. Luego, la instruccin for exterior incrementa fila a 1, de manera que la segunda fila pueda totalizarse y as sucesivamente. La variable total puede mostrarse al terminar la instruccin for exterior.
Programacin Electrnica 2
33
33
Ejercicio: Programa que permite ingresar datos por teclado a una matriz y visualizarlos
Programacin Electrnica 2
34
34
Ejercicio: Programa que permite hacer la suma entre dos matrices donde los datos de las matrices sumando se generan aleatoriamen te