You are on page 1of 10

Gua de arreglos en Java Elaborada por Luis Fernando Gmez V1.

2
ARREGLOS EN JAVA
Un arreglo (array) es una secuencia de datos del mismo tipo.
Se numeran consecutivamente 0, 1, 2, 3, ,n-1. Estos nmeros se llaman valores
ndice o subndice del arreglo.
Los datos almacenados en el arreglo pueden ser: cualquiera de los tipos Primitivos de
datos en JAVA (enteros, flotantes, caracteres) u Objetos (informacin ms compleja).
SINTAXIS
Se debe indicar al compilador que es un arreglo y esto se hace con los
Corchetes.
tipo

[ ] identificador ;

// identificador = variable de referencia

Ejemplos:
int [ ] vEnteros;
vEnteros=new int[10];

o tambin declarar y definir su tamao:


int [ ] vEnteros=new int[10];
double [ ] parcial1:
parcial1 = new double[ 10 ];

O con objetos:
Circulo [ ] figuras=new Circulo[10];

INICIALIZANDO VALORES
Se pueden asignar despus de crearlo o en el momento de Crearlo.
Cuando se declara y se crea un arreglo lo que se hace es reservar la cantidad de
memoria necesaria dependiendo del tipo de datos (u objetos) que va a contener el
arreglo.
Cuando no se asigna el valor al crearlo, java asigna el valor por defecto
dependiendo del tipo de datos.
Ejemplo:
En el momento de crearlo:
int [ ] vEnteros = {10, 2, 8, 4, 5, 6, 9};
Despues de crearlo:
int [ ] vEnteros=new int[7];
vEnteros[0]=10;
vEnteros[1]=2;
vEnteros[2]=8;
vEnteros[3]=4;
vEnteros[4]=5;
vEnteros[5]=6;
vEnteros[6]=9;

Gua de arreglos en Java Elaborada por Luis Fernando Gmez V1.2


Atributo length : en este atributo se guarda el tamao del arreglo
vEnteros.length;

Ejemplo de ordenamiento por medio del mtodo Burbuja


Clase Burbuja
public class Burbuja
{
private int []vEnteros;
private void llenar()
{
int n=vEnteros.length;
for(int i=0; i<n; i++)
vEnteros[i]=(int)(Math.random()*100);
}
Burbuja(int n)
{ vEnteros = new int[n];
llenar();
}
public void ordenar()
{
int i,j, aux;
int n = vEnteros.length;
for(j=0;j<n-1;j++)
for(i=0;i<n-j-1;i++)
if(vEnteros[i]>vEnteros[i+1])
{ aux=vEnteros[i];
vEnteros[i]=vEnteros[i+1];
vEnteros[i+1]=aux;
}
}
public void imprimir()
{
System.out.println("VALORES DEL ARREGLO: ");
for(int i=0; i<vEnteros.length; i++)
System.out.print( vEnteros[i] + " ");
System.out.println();
}
}

Clase Principal
public class PrincipalBurbuja
{
public static void main(String arg[])
{
Teclado teclado= new Teclado();
System.out.print("Digite el tamao del vector ");
int n = teclado.readInt();
Burbuja caso1= new Burbuja(n);
System.out.println("Elementos del vector sin ordenar");
caso1.imprimir();
caso1.ordenar();

Gua de arreglos en Java Elaborada por Luis Fernando Gmez V1.2


System.out.println("Elementos del vector ordenados");
caso1.imprimir();
} // fin main
}

MANEJO DE SERIES INTRODUCIDAS EN VECTORES


En cada posicin del vector se introduce un elemento de la serie y luego se puede recorrer,
sumar e imprimir. Se implementan tres series, una incremental {0, 1, 2,, n-1}, otra de pares
{0,2,4,2*n} y otra de potencia en base 2 {1, 2, 4, 8, .., 2n};
public class SeriesNaturalesEnVectores
{
private int []vEnteros;
private int n;
SeriesNaturalesEnVectores(int nx)
{ n=(nx>0)?nx:0;
vEnteros = new int[n];
}
private int iEsimoIncremental(int i)
{
return i;
}
private int iEsimoPar(int i)
{
return 2*i;
}
private int iEsimoPotenciaBase2(int i)
{
return (int)Math.pow(2,i);
}
public void llenarVectorIncremental()
{
for(int i=0; i<n; i++)
vEnteros[i]=iEsimoIncremental(i);
}
public void llenarVectorPares()
{
for(int i=0; i<n; i++)
vEnteros[i]=iEsimoPar(i);
}
public void llenarVectorPotenciaBase2()
{
for(int i=0; i<n; i++)
vEnteros[i]=iEsimoPotenciaBase2(i);
}
public int suma()
{
int resultado=0;
for(int i=0; i<n; i++)
resultado += vEnteros[i];
return resultado;
}

Gua de arreglos en Java Elaborada por Luis Fernando Gmez V1.2

public void imprimir()


{
System.out.println("VALORES DEL ARREGLO: ");
for(int i=0; i<vEnteros.length; i++)
System.out.print( vEnteros[i] + " ");
System.out.println();
}
}

Main para series naturales en Vectores


Se le pide el tamao del vector y un nmero del 1 al 3 para seleccionar el tipo de serie
que se quiere guardar en el vector.
public class PrincipalSeriesNaturalesEnVectores
{
public static void main(String arg[])
{
Teclado teclado= new Teclado();
System.out.print("Digite el tamao del vector ");
int n = teclado.readInt();
int valor;
SeriesNaturalesEnVectores series= new SeriesNaturalesEnVectores(n);
do{
System.out.println("1.Serie Natural incremental");
System.out.println("2.Serie Natural pares");
System.out.println("3.Serie Natural potencia base dos");
System.out.println("4.Para salir");
valor = teclado.readInt();
switch (valor)
{
case 1: series.llenarVectorIncremental();
series.imprimir();
System.out.println("La suma es:" + series.suma()); break;
case 2: series.llenarVectorPares();
series.imprimir();
System.out.println("La suma es:" + series.suma());break;
case 3: series.llenarVectorPotenciaBase2();
series.imprimir();
System.out.println("La suma es:" + series.suma());break;
default:System.out.println("FIN DEL PROGRAMA");
}
}while(valor<4);
} // fin main
}

Gua de arreglos en Java Elaborada por Luis Fernando Gmez V1.2

Series de Taylor seno y exponencial en vectores


Se tiene la serie de seno y la exponencial trabajadas para un valor de n=7 trminos
como valor constante de la clase. Los resultados de las series los suponemos ms
exactos cercanos al punto cero o sea como serie de MaClaurin. La serie seno se
calcula de la siguiente forma: () =
1++

2
2!

3
3!

3
3!

5
5!

7
7!

+ Y la serie exponencial =

public class SeriesTaylorEnVectores


{
private double x;//en radianes
private double []vDoubles;
private final int n=7;
SeriesTaylorEnVectores()
{ x=0.0;
vDoubles = new double[n];
}
public void setX(double x)
{ this.x = x;
}
private int factorial(int n)
{
int resultado=1;
for(int i=2; i<=n; i++)
resultado *=i;
return resultado;
}
//inicia desde i=0
private double iEsimoSeno(int i)
{
return Math.pow(-1,i)*Math.pow(x,2*i+1)/factorial(2*i+1);
}
//inicia desde i=0
private double iEsimoExponencial(int i)
{
return Math.pow(x,i)/factorial(i);
}
public void llenarVectorSeno()
{
for(int i=0; i<n; i++)
vDoubles[i]=iEsimoSeno(i);
}
public void llenarVectorExponencial()
{
for(int i=0; i<n; i++)
vDoubles[i]=iEsimoExponencial(i);
}
public double suma()
{
double resultado = 0.0;
for(int i=0; i<n; i++)
resultado += vDoubles[i];

Gua de arreglos en Java Elaborada por Luis Fernando Gmez V1.2

return resultado;
}
public void imprimir()
{
System.out.println("VALORES DEL ARREGLO: ");
for(int i=0; i<vDoubles.length; i++)
System.out.print( vDoubles[i] + " ");
System.out.println();
}
}

Main para la series de seno y exponencial


public class PrincipalSeriesTaylorEnVectores
{
public static void main(String arg[])
{
Teclado teclado= new Teclado();
int valor;
double x;
SeriesTaylorEnVectores series= new SeriesTaylorEnVectores();
do{
System.out.println("1.Serie Taylor seno");
System.out.println("2.Serie Taylor exponencial");
System.out.println("3.Para salir");
valor = teclado.readInt();
if(valor<3)
{ System.out.print("Digite el valor de x ");
x = teclado.readDouble();
series.setX(x);
}
switch (valor)
{
case 1: series.llenarVectorSeno();
series.imprimir();
System.out.println("La suma es:" + series.suma()); break;
case 2: series.llenarVectorExponencial();
series.imprimir();
System.out.println("La suma es:" + series.suma());break;
default:System.out.println("FIN DEL PROGRAMA");
}
}while(valor<3);
} // fin main
}

Gua de arreglos en Java Elaborada por Luis Fernando Gmez V1.2

Ejercicios
1. Hacer un programa donde se pueda visualizar los primeros n+1 trminos
(desde n=0 hasta n) de las siguientes sucesiones (utilice el concepto de vector
2

2
}
3

para guardar cada uno de los trminos): {53}, { 2 }, {


Imprimir cada uno de los trminos.

y {(1)+1 +1}.

2. Hacer una clase donde se haga la suma de los primeros n trminos de las
siguientes series (Utilice el concepto de vector para guardar cada uno de los
1
7
2
trminos): =1 (+2)(+3), =1 [
+ 1 ], =1(5)1 4
(+1)

3. Encontrar la serie de MaClaurin para () = ( + 1), () = 4 y () =


() y programar una clase donde coloque el resultado de cada uno de los
trminos calculados. Hacer un mtodo que sume los elementos del vector.
Hacer un main para probar su funcionamiento.
4. Hacer una clase que llene un vector de n elementos enteros de manera
aleatoria de nmeros comprendidos entre 0 y m. Los valores de n y m son
dados por el usuario y debe contabilizar e imprimir cuantos ceros encontr,
cuantos pares (no ceros) y cuantos impares. Hacer el main.

Gua de arreglos en Java Elaborada por Luis Fernando Gmez V1.2

Ejemplo de arreglos con objetos


La clase crculo ya est implementada.
Clase vector de crculos
class ArregloObjeto
{
private Circulo [] vCirculos;
ArregloObjeto(int n)
{
vCirculos = new Circulo[n];
for(int i=0; i<n; i++)
vCirculos[i]= new Circulo(Math.random()*100);
}
public void imprimir()
{
for(int i=0; i<vCirculos.length; i++)
{
vCirculos[i].imprimir();
System.out.println("con area= " + vCirculos[i].calcularArea());
System.out.println();
}
}
}

Clase principal
public class PrincipalArregloObjeto
{
public static void main(String arg[])
{
Teclado teclado= new Teclado();
System.out.print("Digite el tamao del vector ");
int n = teclado.readInt();
ArregloObjeto vc= new ArregloObjeto(n);
vc.imprimir();
}
}

Gua de arreglos en Java Elaborada por Luis Fernando Gmez V1.2


Utilizando la clase Vector
Clase empleado
public class Empleado
{
private String nombre, identificacion;
private double salarioBase;
Empleado()
{
nombre = "";
identificacion = "";
salarioBase = 400000.0;
}
public void capturarDatos()
{
//capturo datos
Teclado t = new Teclado();
System.out.println();
System.out.println("DATOS DEL EMPLEADO ");
System.out.print("Ingrese el Nombre: ");
nombre= t.readString();
System.out.print("Ingrese la Identificacion: ");
identificacion= t.readString();
System.out.print("Ingrese Salario Base: ");
salarioBase= t.readDouble();
System.out.println();
}
public double getSalarioBase()
{
return salarioBase;
}
public String getNombre()
{
return nombre;
}
public double calcularPago()
{
return salarioBase + salarioBase*0.2;
}
} //fin clase

Gua de arreglos en Java Elaborada por Luis Fernando Gmez V1.2


Clase Principal
Es necesario importar la librera java.util para utilizar este tipo de vectores.
import java.util.*;
public class PrincipalVectorEmpleado
{
public static void main( String []arg)
{
Vector v= new Vector();
//Creo un Empleado
Empleado e1= new Empleado();
e1.capturarDatos();
//Creo otro Empleado
Empleado e2= new Empleado();
e2.capturarDatos();
//los adiciono al vector
v.addElement( e1 );
v.addElement( e2 );
//Traigo los Objetos del arreglo
Empleado e3= (Empleado)v.elementAt(0);
Empleado e4= (Empleado)v.elementAt(1);
System.out.println( e3.getNombre() +" " + e3.getSalarioBase() + " Pago Total= "+
e3.calcularPago());
System.out.println( e4.getNombre() +" " + e4.getSalarioBase() + " Pago Total= "+
e4.calcularPago());
}

//fin main

Ejercicios
1. Crear un conjunto de n rectngulos donde el valor de los lados est dado por la
siguiente ecuaciones: base= 10m+1, altura=5m+2, m=0, 1, n-1. Guardarlos
en un vector, e imprimir la base, la altura, su permetro, y su rea.
2. Crear un vector donde se guarde un crculo, un cuadrado y un rectngulo.
Imprima sus propiedades adems su permetro y su rea.

10

You might also like