ARREGLOS
ARREGLOS
ARREGLOS
TEMA Arreglos
PROFESOR Marco A. Coral
ALUMNO
CODIGO
FECHA
CICLO
TURNO
SEMESTRE 2011-I
1. OBJETIVOS
Que el estudiante:
• Aprenda a declarar un arreglo tanto de tipo simple como de tipo compuesto o abstracto
• Aprenda a utilizar el arreglo como medio de almacenamiento de datos.
2. INTRODUCCION TEORICA
Un uso muy común en diseños de Software es agrupar distintos valores relacionados entre sí en una sola
variable, lo cual permite una manipulación más eficiente de datos; en el lenguaje Java existen diversos
mecanismos para agrupar datos en conjunto, una de ellas que ha venido siendo utilizada a lo largo de los
distintos programas en este curso es denominada: Arreglo.
A través de un Arreglo es posible generar agrupaciones de cualquier tipo de Objeto simplemente agregando
una simbología de corchetes , ya sea seguido de la definición de Clase o bien la referencia en cuestión, a
continuación se describen diversos ejemplos más amplios de Arreglos:
Los arreglos en Java son dinámicos, pero no extensibles, lo cual significa que deben ser creados con el
tamaño que tendrán hasta el final de su vida.
<tipo>[] <nombre>;
O sea, para declarar, por ejemplo, un arreglo de números enteros utilizaremos la siguiente sentencia:
int[] arrInt;
Es importante notar que el arreglo aún no ha sido creado, sino meramente declarado. Para crear el arreglo
(reservar su memoria e inicializarlo) deberemos recurrir al operador new:
Este comportamientodebe comprenderse de esta forma: en Java todo es un objeto, y los objetos deben ser
creados mediante el operador new. El caso de los arreglos no es diferente, el tipo de datos del arreglo (int[]
en este caso) es una clase y cada una de sus instancias debe ser creada explícitamente, el tamaño puede
pensarse como un parámetro al constructor de la clase.
A partir de este momento podemos utilizar arrInt como un arreglo de cualquier otro lenguaje.
Una de las características que hacen de Java un entorno de programación seguro, y que se relaciona con el
manejo de los arreglos es que el lenguaje no permite la indexación de arreglos fuera de rango, o sea, una
asignación de este tipo generará una excepción:
ArrInt[25] = 1;
UNIDIMENSIONALES:
BIDIMENSIONALES:
2.2. Algunas de sus características más importantes de los arrays son las siguientes:
1. Los arrays se crean con el operador new seguido del tipo y número de elementos.
2. Se puede acceder al número de elementos de un array con la variable miembro implícita length (por
ejemplo, vect.length).
3. Se accede a los elementos de un array con los corchetes [] y un índice que varía de length-1.
4. Se pueden crear arrays de objetos de cualquier tipo. En principio un array de objetos es un array de
referencias que hay que completar llamando al operador new.
5. Los elementos de un arrayse inicializan al valor por defecto del tipo correspondiente (cero para valores
numéricos, el carácter nulo para char, false para boolean, null para Strings y para referencias).
6. Como todos los objetos, los arrays se pasan como argumentos a los métodos por referencia.
7. Se pueden crear arrays anónimos (por ejemplo, crear un nuevo array como argumento actual en la
llamada a un método).
Declaración de un arreglo:
Creación de un arreglo
Subindicación de un arreglo:
Modificación de un arreglo:
A[3]= 8;
Tamaño de un arreglo:
A.length // correcto
A.length() // error, sin paréntesis
Inicialización de un arreglo:
int B[];
B= A; // A y B son el mismo arreglo
if (A==B) // Comparación de punteros
// true!
...
A[0]= 10;
B[0] // también 10
Copia de un arreglo:
B= (int[])A.clone();
Ventajas
• Costo de acceso a un elemento es constante
• Estructura de fácil uso
Desventajas
• Tamaño constante
• Búsqueda lenta en arreglo desordenado
• Insertar o eliminar toma mucho tiempo
Ejemplo 1
Usando la POO escriba un programa en java que le permita eliminar de un arreglo de alumnos en cada ciclo
académico a los alumnos desaprobados. Guarde en un arreglo la cantidad de alumnos desaprobados, y el
ciclo académico en que desaprobaron.
package hola;
import java.io.*;
import java.util.*;
class ALUMNO{
int codigo;
String nomb;
float nota;
Scanner n=new Scanner(System.in);
void ing(){
System.out.println("leer codigo : ");codigo=n.nextInt();
System.out.println("leer nombre : ");nomb=n.next();
System.out.println("leer nota : ");nota=n.nextFloat();
}
void mos(){
System.out.println(codigo+" "+nomb+" "+nota);
}
float RetorNota(){
return nota;
}
}
class CONTROL{
int cantdesaprobados;
String ciclo;
void registrar(int c){
Scanner n=new Scanner(System.in);
cantdesaprobados=c;
System.out.println("leer ciclo : ");ciclo=n.next();
}
void visualizar(){
System.out.println(cantdesaprobados+" "+ciclo);
}
}
Ejemplo 2
Usando la POO escriba un programa en java que le permita insertar un alumno en un arreglo. En otro
arreglo lleve un registro de todas las inserciones hechas como el alumno insertado y posición que ocupa
ahora en el arreglo.
package hola;
import java.io.*;
import java.util.*;
class ALUMNO{
int codigo;
String nomb;
Scanner n=new Scanner(System.in);
void ing(){
System.out.println("leer codigo : ");codigo=n.nextInt();
System.out.println("leer nombre : ");nomb=n.next();
}
void mos(){
System.out.println(codigo+" "+nomb);
}
boolean insertar(ALUMNO a[], int tot, ALUMNO x, int pos){
boolean encontro=false;
ALUMNO temp=new ALUMNO();
int i=0;
while(i<tot && !encontro){
if(i ==pos) encontro=true;
else i++;
}
if (encontro){
while (i<tot){
temp=a[i];
a[i]=x;
x=temp;
i++;
}
a[i]=x;
}
return encontro;
}
}
class BITACORA{
private int posicion;
private ALUMNO a;//=new ALUMNO();
void registrar(int c, ALUMNO x){
posicion=c;
a=x;
}
void visualizar(){
System.out.println("posicion= "+posicion);
a.mos();
}
}
}
Ejemplo 3
Usando la POO escriba un programa que registre comisiones de trabajo en la facultad. Una comisión esta
formada por un docente, un trabajador y un alumno. Cada miembro de la comisión tiene datos como código,
nombre y otros datos más que los diferencian. Muestre un reporte del arreglo.
package hola;
import java.io.*;
import java.util.*;
class ALUMNO{
int codigo;
String nomb;
float pp;
Scanner n=new Scanner(System.in);
void ing(){
System.out.println("leer codigo de ALUMNO : ");codigo=n.nextInt();
System.out.println("leer nombre de ALUMNO : ");nomb=n.next();
System.out.println("leer nota de ALUMNO : ");pp=n.nextFloat();
}
void mos(){
System.out.println(codigo+" "+nomb+ " "+pp);
}
}
class DOCENTE{
int dni;
String nomb;
String categoria;
float sueldo;
Scanner n=new Scanner(System.in);
void ing(){
System.out.println("leer dni de DOCENTE : ");dni=n.nextInt();
System.out.println("leer nombre de DOCENTE : ");nomb=n.next();
System.out.println("leer categoria de DOCENTE : ");categoria=n.next();
System.out.println("leer sueldo de DOCENTE : ");sueldo=n.nextFloat();
}
void mos(){
System.out.println(dni+" "+nomb+" "+categoria+" "+sueldo);
}
}
class TRABAJADOR{
int dni;
String nomb;
String cargo;
float sueldo;
Scanner n=new Scanner(System.in);
void ing(){
System.out.println("leer dni de TRABAJADOR : ");dni=n.nextInt();
System.out.println("leer nombre de TRABAJADOR : ");nomb=n.next();
System.out.println("leer cargo de TRABAJADOR : ");cargo=n.next();
System.out.println("leer sueldo de TRABAJADOR : ");sueldo=n.nextFloat();
}
void mos(){
System.out.println(dni+" "+nomb+" "+cargo+" "+sueldo);
}
}
class COMISION{
private ALUMNO a;
private DOCENTE d;
private TRABAJADOR t;
void registrar(ALUMNO aa, DOCENTE dd, TRABAJADOR tt){
a=aa;
d=dd;
t=tt;
}
void visualizar(){
a.mos(); d.mos(); t.mos();
}
}
4. EJERCICIOS PROPUESTOS
Ejercicio 1
Usando la POO se pide implementar en java un programa que permita ingresar cada fin de mes a los
trabajadores de una empresa con el total de su comisión por venta de libros. Si el 50% de los trabajadores
percibe montos que están sobre el promedio de las comisiones por venta de libros el sistema debe informar
que la venta fue buena, de lo contrario debe informar que fue mala.
Ejercicio 2
Usando la POO escriba un programa en java para registrar a los docentes de la facultad. Los docente son
de tres categorías, principales, asociados y auxiliares. Encuentre por categoría cual es el docente que
percibió más dinero por concepto de horas adicionales trabajadas., si la hora esta a 25 soles
Ejercicio 3
Usando la POO escriba un programa en java que le permita registrar en un arreglo solo las notas de los
alumnos (sin código y nombres). Una vez registradas genere un reporte de las notas sin redundancias.si es
que varios alumnos tuvieran una misma nota.
Ejercicio 4
Usando la POO escriba un programa que permita a los alumnos inscribirse en sus asignaturas para el cicilo
académico. Maximo se pueden colocar en 4 asignaturas. Luego genere un reporte para saber por
asignatura cuantos alumnos se han matriculado en una asignatura. El reporte debe informar también del
código y créditos que tiene la asignatura.
Ejercicio 5
Usando la POO escriba un programa en java que le permita saber en que categoría de alumnos en la FISC
hay mas alumnos. En caso halla empate, mostrar las categorías en las que hay empate.
Ejercicio 6
Usando la POO se pide implementar en java un juego de naipes en el que se cuenta con un mazo de cartas,
un numero máximo de 5 jugadores, c/u con su apuesta respectiva y un repartidor o controlador del juego. El
juego comienza con el reparto de 5 cartas a c/jugador. Gana el que tenga las 5 cartas ordenadas
consecutivamente y del mismo tipo.
Durante el juego c/jugador puede pedir cartas al repartidor para reemplazar la carta que desee. Reemplazar
c/carta cuesta 20 dólares, la cual tiene que pedirla al repartidor, además la carta reemplazada ya no regresa
al mazo.
Ejercicio 7
Usando la POO, hacer un programa en java para una tienda que vende libros a través de varios
vendedores. Cuando un cliente quiere un libro lo solicita al vendedor el cual se fija en el catalogo para
ubicarlo por código y luego con el dato ir a la base de datos de libros en la Pc y ver si esta en venta. Cuando
la venta se efectúa, registra los datos del cliente, datos del libro y sus datos de vendedor para efectos de
comisiones (5% del precio de venta) por venta de libros.
5. ANALISIS DE RESULTADOS
6. BIBLIOGRAFIA