Sunteți pe pagina 1din 25

PROGRAMACION 1

Captulo 3:
PROGRAMACIN ORIENTADA A
OBJETOS
Sesin 19

ARREGLOS
Objetivos:
Introducir al estudiante en el manejo de

arreglos en Java
Conocer la forma en que se declaran los
arreglos de n-dimensiones en Java
Realizar ejercicios con arreglos en Java

ARREGLOS: INTRODUCCION
Un arreglo es una estructura de datos que contiene una

secuencia(coleccin) de datos del mismo tipo.

PROPIEDADES
Los arrays se utilizan como contenedores para almacenar
datos relacionados (en lugar de declarar variables
separadas).
Todos los datos del vector son del mismo tipo (es
homogneo). No puede mezclarse datos de tipo int, float
en un mismo vector.
El tamao del vector se establece cuando se crea el array
(es finito)(con el operador new).
A los elementos del vector se acceden a travs de la
posicin que ocupa dentro del conjunto de elementos (es
ordenado).

ARREGLOS: TERMINOLOGIA
Los arreglos unidimensionales se conocen con el

nombre de vectores.
Los arreglos bidimensionales se conocen como
matrices.
Los arreglos son, probablemente, la estructura ms

usada para almacenar y ordenar datos dentro de la


programacin, debido a que la sintaxis para acceder
a sus datos es muy amigable para el programador.
Los datos se llaman elementos del arreglo y se
numeran 0, 1, 2, y as sucesivamente
Estos nmeros localizan al elemento dentro del
arreglo y se denominan ndices.

ARREGLOS: ACCESO
En Java, los ndices del arreglo empiezan

con 0 y terminan con (el tamao del


arreglo -1).

Si el arreglo tiene n elementos, se

denotan como a[0], a[1], ... a[n-1].

ARREGLOS: DECLARACION
Se utilizan corchetes para indicar que se

trata de un arreglo y no una variable


simple.
Existen 2 formas equivalentes de
declarar arreglos en Java:
tipo nombreDelArreglo[ ];

O bien
tipo[ ] nombreDelArreglo;

Tambin se pueden utilizar arreglos de

ms de una dimensin.

ARREGLOS: DECLARACION
Ejemplos de declaracin:

int vector1[],vector2[];
int[] otroVector;
Al igual que las dems variables pueden

ser inicializados en el momento de su


declaracin.
En este caso, no es necesario especificar el
nmero de elementos mximo reservado.

ARREGLOS: DECLARACION
Se puede reservar el espacio justo para

almacenar los elementos aadidos en la


declaracin.

Una simple declaracin de un arreglo no

reserva espacio en memoria, a


excepcin del ejemplo anterior, en donde la
asignacin de sus elementos obtienen la
memoria necesaria para ser almacenados.

ARREGLOS: CREACIN
Para reservar la memoria hay que llamar

explcitamente a un constructor new de la


siguiente forma:
vector=new tipo[numeroElementos];
Entre corchetes numeroElementos indica el
tamao del vector.
tipo debe coincidir con el tipo que se declar el
vector.
vector debe ser una variable declarada como tipo[]
Ejemplo:

int vector[]=new int[5];


Tambin se puede indicar el nmero de

elementos durante su declaracin.

ARREGLOS: REFERENCIA A UN
ELEMENTO
Para hacer referencia a los elementos

particulares del arreglo, se utiliza el


identificador del arreglo junto con el
ndice del elemento entre corchetes.
El ndice del primer elemento es el cero
[0] y el del ltimo, el nmero de
elementos menos uno.
int vector[]=new int[5];
El primero es vector[0];
El ltimo es vector[4];

ARREGLOS: ERRORES
El intento de acceder a un elemento

fuera del rango de la matriz, a


diferencia de lo que ocurre en C,
provoca una excepcin (error) que, de
no ser manejado por el programa, ser
el compilador quien aborte la operacin.
En la declaracin del arreglo no se
permite indicar el nmero de
elementos, as:
int numeros[12] es errneo

ARREGLOS: TAMAO DEL


ARREGLO
Para obtener el nmero de elementos de

un vector en tiempo de ejecucin se


accede al atributo de la clase arreglo
length.
La ltima posicin es vector.length -1
No se debe olvidar que los arreglos en Java
son tratados como un objeto.
El campo length est protegido, no se
puede modificar.
Ejemplo:

ARREGLOS: INICIALIZACION
Se deben asignar valores a los arreglos antes de

utilizarlos, por defecto se inicializan con 0:


precios[0] = 10;
precios[1] = 20;
precios[2] = 30;

int numeros[]={10, 20, 30, 40, 50, 60};


char c[]={'L','u','i','s'};
final int ENE=31, FEB=28, MAR=31,ABR=30;
int meses[]={ENE, FEB, MAR, ABR};
for(i=0; i<numeros.length; i++)
numeros[i] = 0;

ARREGLOS:COPIA DE
ARREGLOS

La siguiente asignacin slo copia las referencias, no

crea un nuevo arreglo.


int[] datos=pares;
Para copiar los elementos de un arreglo hay que crear
un nuevo vector y copiar elemento por elemento:
int[] datos = new int[pares.length];
for(i=0;i<pares.length; i++)
datos[i] = pares[i];
Se puede usar la funcin definida en la clase estndar
de Java
System.arraycopy(desde, inicio, para, ubicacin,
cuantos);
System.arraycopy(pares, 0, datos, 0, pares.length);

ARREGLOS
MULTIDIMENSIONALES

Los arreglos revisados hasta ahora son

unidimensionales, se conocen como vectores.


Los arreglos multidimensionales tienen ms
de una dimensin.
Los de 2 dimensiones, se llaman tablas o
matrices.
Sintaxis:
<tipo datoelemento> <nombreArreglo>[][];
<tipo datoelemento> [][] <nombreArreglo>;
Ejemplo:

char pantalla[][];
pantalla = new int[10][5];

ARREGLO BIDIMENSIONAL
Es un arreglo de

arreglos, es decir, un
arreglo unidimensional
donde cada elemento
es un arreglo.
Arreglo de 4 renglones
y 2 columnas
int tabla[][]=new int[4]

[2];

si cada entero ocupa 4


bytes:

INICIALIZACION DE ARREGLOS
MULTIDIMENSIONALES
int tabla[][]={{51,52,53},{54,55,56}};
int tabla[][]={{51,52,53},{54,55,56}};
double tb[][]={{1.5,-2.5},{5.0,-0.0,1.5}};
int []a={1,3,5}, b={2,4,6,8,10};
intmtb[][]={a, b};
double [][]gr=new double[3][];
gr[0]=new double[3];
gr[1]=new double[6];
gr[2]=new double[5];

ARREGLO
MULTIDIMENSIONAL

En un arreglo bidimensional tabla, length de

tabla contiene el nmero de renglones, y length


de cada rengln contiene el nmero de columnas
de ese rengln.
float ventas[][]={{0.,0.,0.},{1.0,1.0},{-1.0}};
System.out.print(ventas.length); //escribe 3
System.out.print(ventas[0].length); //escribe 3
System.out.print(ventas[1].length); //escribe 2
System.out.print(ventas[2].length); //escribe 1

ACCESO A ELEMENTOS EN
ARREGLOS

nombreArreglo[renglon][columna] = valor;
MULTIDIMENSIONALES

variable = nombreArreglo[renglon][columna];
Tabla[2][3]=4.5;
Resistencias[2][4]=50;
Ventas = Tabla[1][1];
Dia = Semana[3][6];
for(ren=0; ren < Matriz.length; ++ren)
for(col=0; col<Matriz[ren].length; ++col)
Procesar elemento Matriz[ren][col];

ARREGLOS: DESVENTAJAS DE
USAR
Los arreglos tienen una capacidad de

almacenamiento determinada y no
modificable.
Por ello, los programadores utilizan arreglos
lo suficientemente grandes, desperdiciando
espacio de memoria que nunca se utiliza.
No son dinmicos. La insercin de un objeto
al principio del arreglo, sin sobrescribir el
primer espacio, se torna mas complicada,
pues se debe trasladar un espacio a la
derecha a todo el resto de los datos.

TAREA

Ingresar un arreglo V de N elementos enteros,

luego solicitar un nmero R y en base a ese


nmero mover los dgitos en sentido horario.
Ver ejemplo:

TAREA

Disear un algoritmo que permita ingresar los

datos en dos arreglos v1 y v2, los valores


deben ser enteros positivos entre 0 y 9. En el
vector v3 calcular la suma de los dos arreglos
y presentar el resultado.

TAREA

Escribir un algoritmo que reciba como dato

una matriz de NxM, calcule su transpuesta y


muestre el resultado.

TAREA

Escribir un algoritmo que permita ingresar una

matriz M de tipo entero, y que la recorra


mostrando los valores columna por columna,
tal como se observa en la figura.

TAREA

En la Federacin de Ftbol se lleva


informacin sobre el nmero de asistentes
mensuales en los diez estadios ms
importantes del pas durante el ltimo ao.
Construye un algoritmo que genere la
siguiente informacin.
El nmero de asistentes en cada estadio,

ordenados de mayor a menor.


Los estadios que tuvieron mayor y menor afluencia
de pblico en el ltimo ao, junto con el nmero de
asistentes.
El mes que cada estadio tuvo la mayor asistencia ,
junto con el nmero de asistentes.

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