manejo de grupos de atributos giovanni hernández p. nivel 3
TRANSCRIPT
![Page 1: Manejo de grupos de atributos Giovanni Hernández P. Nivel 3](https://reader036.vdocumento.com/reader036/viewer/2022081418/5665b4da1a28abb57c9443ed/html5/thumbnails/1.jpg)
Manejo de grupos de atributos
Giovanni Hernández P.Nivel 3
![Page 2: Manejo de grupos de atributos Giovanni Hernández P. Nivel 3](https://reader036.vdocumento.com/reader036/viewer/2022081418/5665b4da1a28abb57c9443ed/html5/thumbnails/2.jpg)
CASO DE ESTUDIOLas notas de un curso
Enunciado Se necesita crear una aplicación para manejar las notas para un curso. El curso es visto por doce (12)
estudiantes. Para cada estudiante se debe poder registrar la nota definitiva que sacó en el curso. Adicionalmente, la aplicación debe permitir calcular el promedio del curso, y el número de estudiantes que tienen una nota por encima del promedio.
![Page 3: Manejo de grupos de atributos Giovanni Hernández P. Nivel 3](https://reader036.vdocumento.com/reader036/viewer/2022081418/5665b4da1a28abb57c9443ed/html5/thumbnails/3.jpg)
Requerimientos Funcionales
![Page 4: Manejo de grupos de atributos Giovanni Hernández P. Nivel 3](https://reader036.vdocumento.com/reader036/viewer/2022081418/5665b4da1a28abb57c9443ed/html5/thumbnails/4.jpg)
Contenedoras de tamaño fijoCurso
double nota1double nota2double nota3double nota4double nota5double nota6double nota7double nota8double nota9double nota10double nota11double nota12
Solución
![Page 5: Manejo de grupos de atributos Giovanni Hernández P. Nivel 3](https://reader036.vdocumento.com/reader036/viewer/2022081418/5665b4da1a28abb57c9443ed/html5/thumbnails/5.jpg)
Contenedoras de tamaño fijo …Atributo que es capaz de agrupar una secuencia
de valores se denomina contenedorCurso
double notas = 0
1
2
3
4
5
6
7
8
9
10
11
![Page 6: Manejo de grupos de atributos Giovanni Hernández P. Nivel 3](https://reader036.vdocumento.com/reader036/viewer/2022081418/5665b4da1a28abb57c9443ed/html5/thumbnails/6.jpg)
Declaración de un arreglo
En Java las estructuras contenedoras de tamaño fijo se denominan arreglos (array)
public class Curso{
public final static int TOTAL_EST = 12;private double[] notas;
}
![Page 7: Manejo de grupos de atributos Giovanni Hernández P. Nivel 3](https://reader036.vdocumento.com/reader036/viewer/2022081418/5665b4da1a28abb57c9443ed/html5/thumbnails/7.jpg)
Inicialización de un arreglo
// Construtorpublic Curso(){
notas = new double[TOTAL_EST];}(length): en los arreglos permite consultar el
numero que estos contienen.Ej.nota.length
![Page 8: Manejo de grupos de atributos Giovanni Hernández P. Nivel 3](https://reader036.vdocumento.com/reader036/viewer/2022081418/5665b4da1a28abb57c9443ed/html5/thumbnails/8.jpg)
Acceso a los elementos del arreglo
• Indice: sirve para indicar la posición de un elemento en un arreglo.
• Van desde 0 hasta el numero de elementos – 1• Para tomar o modificar un elemento del
arreglo se da el índiceSintaxis
<arreglo>[<índice>]
![Page 9: Manejo de grupos de atributos Giovanni Hernández P. Nivel 3](https://reader036.vdocumento.com/reader036/viewer/2022081418/5665b4da1a28abb57c9443ed/html5/thumbnails/9.jpg)
Instrucciones repetitivas
Puede repetirse un paso (instrucción) que va transformando gradualmente el mundo del problema.
Ej.Cuando subimos unas escaleras
![Page 10: Manejo de grupos de atributos Giovanni Hernández P. Nivel 3](https://reader036.vdocumento.com/reader036/viewer/2022081418/5665b4da1a28abb57c9443ed/html5/thumbnails/10.jpg)
Instrucciones repetitivas…
Taller No 1.
![Page 11: Manejo de grupos de atributos Giovanni Hernández P. Nivel 3](https://reader036.vdocumento.com/reader036/viewer/2022081418/5665b4da1a28abb57c9443ed/html5/thumbnails/11.jpg)
Instrucciones repetitivas…
Ej.En una hoja de papel con una lista de palabras,
buscar si la palabra “casa” esta en la lista.1. Verificar si la primera palabra es igual a “casa”.2. Si lo es no busque mas. Si no lo es busque en la segunda palabra.3. Verificar si la segunda palabra es igual a “casa”.4. Si lo es no busque mas. Si no lo es busque en la tercera palabra.5. Repita el procedimiento palabra por palabra, hasta que la encuentre o
hasta que no existan mas palabras por buscar.
![Page 12: Manejo de grupos de atributos Giovanni Hernández P. Nivel 3](https://reader036.vdocumento.com/reader036/viewer/2022081418/5665b4da1a28abb57c9443ed/html5/thumbnails/12.jpg)
Instrucciones repetitivas…
Calcular el promedio de las notas (R2 – Calcular el promedio de las notas)
public double promedio(){
double suma = nota[0] + nota[1] + nota[2] + nota[3] + nota[4] + nota[5] + nota[6] + nota[7] + nota[8] + nota[9] + nota[10] + nota[11];return suma / TOTAL_EST;
}
![Page 13: Manejo de grupos de atributos Giovanni Hernández P. Nivel 3](https://reader036.vdocumento.com/reader036/viewer/2022081418/5665b4da1a28abb57c9443ed/html5/thumbnails/13.jpg)
Instrucciones repetitivas…
Solución de manera iterativapublic double promedio(){
double suma = 0.0int indice = 0;suma += nota[ indice ];indice ++;suma += nota[ indice ];indice ++;suma += nota[ indice ];indice ++;suma += nota[ indice ];indice ++;suma += nota[ indice ];indice ++;……
}
![Page 14: Manejo de grupos de atributos Giovanni Hernández P. Nivel 3](https://reader036.vdocumento.com/reader036/viewer/2022081418/5665b4da1a28abb57c9443ed/html5/thumbnails/14.jpg)
Instrucciones repetitivas…
Public double promedio(){
double suma = 0.0;int indice = 0;while ( indice < TOTAL_EST){
suma += nota[ indice ];indice ++;
}}
![Page 15: Manejo de grupos de atributos Giovanni Hernández P. Nivel 3](https://reader036.vdocumento.com/reader036/viewer/2022081418/5665b4da1a28abb57c9443ed/html5/thumbnails/15.jpg)
Instrucciones repetitivas…
Componentes de una instrucción repetitiva
Preparación del ciclo
La condición
es verdadera
?
Ejecuta las instrucciones del cuerpo del ciclo
Si
No
Terminael ciclo
<inicio>While ( <condicion >){
<cuerpo><avance>
}
inicio
![Page 16: Manejo de grupos de atributos Giovanni Hernández P. Nivel 3](https://reader036.vdocumento.com/reader036/viewer/2022081418/5665b4da1a28abb57c9443ed/html5/thumbnails/16.jpg)
Instrucciones repetitivas…
Taller No 2
![Page 17: Manejo de grupos de atributos Giovanni Hernández P. Nivel 3](https://reader036.vdocumento.com/reader036/viewer/2022081418/5665b4da1a28abb57c9443ed/html5/thumbnails/17.jpg)
Ej.Nombre R7-Calcular el numero de notas por encima del promedio
Resumen Calcula y retorna el numero de notas que están por encima del promedio
Entradas
Promedio
Resultados
Calcula y retorna el numero de notas por encima del promedio.
Método de la clase Curso
![Page 18: Manejo de grupos de atributos Giovanni Hernández P. Nivel 3](https://reader036.vdocumento.com/reader036/viewer/2022081418/5665b4da1a28abb57c9443ed/html5/thumbnails/18.jpg)
Ej.Nombre R8-Calcular el numero de estudiantes que aprobaron el curso
Resumen Calcula y retorna el numero de estudiantes que aprobaron el curso por que su nota final es superior o igual a 3.0
Entradas
Ninguna
Resultados
Calcula y retorna el numero de estudiantes que aprobaron el curso.
Método de la clase Curso
![Page 19: Manejo de grupos de atributos Giovanni Hernández P. Nivel 3](https://reader036.vdocumento.com/reader036/viewer/2022081418/5665b4da1a28abb57c9443ed/html5/thumbnails/19.jpg)
Ej.Nombre R9-Calcular el numero de estudiantes que reprobaron el curso
Resumen Calcula y retorna el numero de estudiantes que reprobaron el curso por que su nota final es inferior a 3.0
Entradas
Ninguna
Resultados
Calcula y retorna el numero de estudiantes que reprobaron el curso.
Método de la clase Curso
![Page 20: Manejo de grupos de atributos Giovanni Hernández P. Nivel 3](https://reader036.vdocumento.com/reader036/viewer/2022081418/5665b4da1a28abb57c9443ed/html5/thumbnails/20.jpg)
Ej.Nombre R9-Calcular la nota mas alta del curso
Resumen Calcula y retorna la nota mas alta del curso
Entradas
Ninguna
Resultados
Calcula y retorna la nota mas alta del curso
Método de la clase Curso
![Page 21: Manejo de grupos de atributos Giovanni Hernández P. Nivel 3](https://reader036.vdocumento.com/reader036/viewer/2022081418/5665b4da1a28abb57c9443ed/html5/thumbnails/21.jpg)
Ej.Nombre R9-Calcular la nota mas baja del curso
Resumen Calcula y retorna la nota mas baja del curso
Entradas
Ninguna
Resultados
Calcula y retorna la nota mas bajo del curso
Método de la clase Curso
![Page 22: Manejo de grupos de atributos Giovanni Hernández P. Nivel 3](https://reader036.vdocumento.com/reader036/viewer/2022081418/5665b4da1a28abb57c9443ed/html5/thumbnails/22.jpg)
Patrones de algoritmo para instrucciones repetitivas
Patrón de un algoritmoPatrón de recorrido total: Recorrer todos los
elementos de la contenedora.Ejemplos:• Calcular la suma de todas las notas.• Contar cuántos en el curso obtuvieron 3,5.• Contar cuantos en el curso están por debajo
del promedio.
![Page 23: Manejo de grupos de atributos Giovanni Hernández P. Nivel 3](https://reader036.vdocumento.com/reader036/viewer/2022081418/5665b4da1a28abb57c9443ed/html5/thumbnails/23.jpg)
Patrones de algoritmo para instrucciones repetitivas
Patrón de recorrido totalSolución1. El índice para iniciar el ciclo debe estar en
cero (0).2. La condición para continuar es que el índice
sea menor que la longitud del arreglo.3. El avance consiste en sumarle uno (1) al
índice.
![Page 24: Manejo de grupos de atributos Giovanni Hernández P. Nivel 3](https://reader036.vdocumento.com/reader036/viewer/2022081418/5665b4da1a28abb57c9443ed/html5/thumbnails/24.jpg)
Patrones de algoritmo para instrucciones repetitivas
Patrón de recorrido totalCódigo Javafor( int indice = 0 ; indice < arreglo.length; indice++){ // cuerpo}
![Page 25: Manejo de grupos de atributos Giovanni Hernández P. Nivel 3](https://reader036.vdocumento.com/reader036/viewer/2022081418/5665b4da1a28abb57c9443ed/html5/thumbnails/25.jpg)
Patrones de algoritmo para instrucciones repetitivas
Nombre R9-Incrementar notas inferiores
Resumen Se requiere incrementar en 10% todas las notas inferiores a 2,0.
Entradas
Ninguna
Resultados
Se ha incrementado en 10% todas las notas inferiores a 2,0.
Primera variante del patrón
![Page 26: Manejo de grupos de atributos Giovanni Hernández P. Nivel 3](https://reader036.vdocumento.com/reader036/viewer/2022081418/5665b4da1a28abb57c9443ed/html5/thumbnails/26.jpg)
Patrones de algoritmo para instrucciones repetitivas
Patrón de recorrido total-variante No 1Public void incrementarNotasInferior(){ for( int indice = 0 ; indice < notas.length; indice++) { // cuerpo
if( notas[indice] < 2.0 ){
notas[indice] += notas[indice] * 0.1;}
}}
![Page 27: Manejo de grupos de atributos Giovanni Hernández P. Nivel 3](https://reader036.vdocumento.com/reader036/viewer/2022081418/5665b4da1a28abb57c9443ed/html5/thumbnails/27.jpg)
Patrones de algoritmo para instrucciones repetitivas
Patrón de recorrido total – Segunda varianteCalcular alguna propiedad sobre el conjunto de
elementos del arreglo.1. ¿Cómo acumular la información que se va llevando
a medida que avanza el ciclo?2. ¿Cómo inicializar dicha información?3. ¿Cuál es la condición para modificar dicho
acumulado ?4. ¿Cómo modificar el acumulado?
![Page 28: Manejo de grupos de atributos Giovanni Hernández P. Nivel 3](https://reader036.vdocumento.com/reader036/viewer/2022081418/5665b4da1a28abb57c9443ed/html5/thumbnails/28.jpg)
Patrones de algoritmo para instrucciones repetitivas
Nombre R10-Dar estudiantes aprobados
Resumen Se requiere calcular y retornar el número de estudiantes que aprobaron el curso.
Entradas
Ninguna
Resultados
Se ha calculado y retornado el número de estudiantes que aprobaron el curso.
Segunda variante del patrón
![Page 29: Manejo de grupos de atributos Giovanni Hernández P. Nivel 3](https://reader036.vdocumento.com/reader036/viewer/2022081418/5665b4da1a28abb57c9443ed/html5/thumbnails/29.jpg)
Patrones de algoritmo para instrucciones repetitivas
Patrón de recorrido total-variante No 2Public int darAprobados(){
int vanAprobando = 0; for( int indice = 0 ; indice < notas.legth; indice++)
{ // cuerpo
if( notas[i] >= 3.0 ){
vanAprobando ++;}
}return vanAprobando;
}
(1) (2)
(3)
(4)
![Page 30: Manejo de grupos de atributos Giovanni Hernández P. Nivel 3](https://reader036.vdocumento.com/reader036/viewer/2022081418/5665b4da1a28abb57c9443ed/html5/thumbnails/30.jpg)
Actividad
Taller No 3Taller No 31
![Page 31: Manejo de grupos de atributos Giovanni Hernández P. Nivel 3](https://reader036.vdocumento.com/reader036/viewer/2022081418/5665b4da1a28abb57c9443ed/html5/thumbnails/31.jpg)
Patrones de algoritmo para instrucciones repetitivas
Patrón de recorrido parcialUna condición para verificar cada recorrido si se
debe detener el ciclo o continuar• Variable de tipo boolean.• Usar en la condición del ciclo la variable.• Verificar si ya se cumplió el objetivo del ciclo
se cambia la variable lógica de estado.
![Page 32: Manejo de grupos de atributos Giovanni Hernández P. Nivel 3](https://reader036.vdocumento.com/reader036/viewer/2022081418/5665b4da1a28abb57c9443ed/html5/thumbnails/32.jpg)
Patrones de algoritmo para instrucciones repetitivas
Patrón de recorrido parcialEsqueletoboolean termino = false;for(int indice=0; indice < arreglo.length && termino==false; indice ++){
<cuerpo>if(<ya se cumplió el objetivo>)
termino=true;}
![Page 33: Manejo de grupos de atributos Giovanni Hernández P. Nivel 3](https://reader036.vdocumento.com/reader036/viewer/2022081418/5665b4da1a28abb57c9443ed/html5/thumbnails/33.jpg)
Patrones de algoritmo para instrucciones repetitivas
Nombre R11-Dar estudiantes que reprobaron
Resumen Se requiere calcular y retornar si existen más de 3 estudiantes que no aprobaron el curso
Entradas
Ninguna
Resultados
Se ha calculado y retornado si más de 3 estudiantes no aprueban el curso.
Patrón de recorrido parcial
![Page 34: Manejo de grupos de atributos Giovanni Hernández P. Nivel 3](https://reader036.vdocumento.com/reader036/viewer/2022081418/5665b4da1a28abb57c9443ed/html5/thumbnails/34.jpg)
Patrones de algoritmo para instrucciones repetitivas
Patrón de recorrido parcial
public boolean darEstudiantesReprobados(){
boolean termino = false;int reprobados = 0;for(int indice=0; indice < notas.length && termino==false; indice ++){
if(notas[indice] < 3.0){
reprobados ++;}If(reprobados >3){
termino=true;}
}return termino;
}
Cuerpo
![Page 35: Manejo de grupos de atributos Giovanni Hernández P. Nivel 3](https://reader036.vdocumento.com/reader036/viewer/2022081418/5665b4da1a28abb57c9443ed/html5/thumbnails/35.jpg)
Actividad
Taller No 4
![Page 36: Manejo de grupos de atributos Giovanni Hernández P. Nivel 3](https://reader036.vdocumento.com/reader036/viewer/2022081418/5665b4da1a28abb57c9443ed/html5/thumbnails/36.jpg)
Patrones de doble recorrido
Nombre R11-Dar la nota que más se repite
Resumen Se requiere calcular y retornar cual es la nota que más se repite.
Entradas
Ninguna
Resultados
Se ha calculado y retornado la nota que más se repite.
![Page 37: Manejo de grupos de atributos Giovanni Hernández P. Nivel 3](https://reader036.vdocumento.com/reader036/viewer/2022081418/5665b4da1a28abb57c9443ed/html5/thumbnails/37.jpg)
Patrones de doble recorrido
Esqueletofor (int indice1=0; indice1 < arreglo.length; indice1++){
for (int indice2=0; indice2 < arreglo.length; indice2++)
{<cuerpo del cliclo interno>
} <cuerpo del cliclo externo>
}
![Page 38: Manejo de grupos de atributos Giovanni Hernández P. Nivel 3](https://reader036.vdocumento.com/reader036/viewer/2022081418/5665b4da1a28abb57c9443ed/html5/thumbnails/38.jpg)
Patrones de doble recorridofor (int indice1=0; indice < notas.length; indice1++){
double notaBuscada = notas[indice1];int contador = 0;for (int indice2=0; indice2 < notas.length; indice2++){
if( notas[indice2]==notabuscada){
contador ++;}
}return notaMasVecesAparce;
}
![Page 39: Manejo de grupos de atributos Giovanni Hernández P. Nivel 3](https://reader036.vdocumento.com/reader036/viewer/2022081418/5665b4da1a28abb57c9443ed/html5/thumbnails/39.jpg)
Patrones de doble recorridopublic doble darNotaMasVecesAparece(){
double notaMasVecesAparece = 0.0;int numeroVecesAparece = 0;for (int indice1=0; indice < notas.length; indice1++){
double notaBuscada = notas[indice1];int contador = 0;for (int indice2=0; indice2 < notas.length; indice2++){
if( notas[indice2]==notabuscada){
contador ++;}
}if ( contador > numeroVecesAparece){
notaMasVecesAparece = notaBuscada;numeroVecesAparece = contador;
}}return notaMasVecesAparce;
}
![Page 40: Manejo de grupos de atributos Giovanni Hernández P. Nivel 3](https://reader036.vdocumento.com/reader036/viewer/2022081418/5665b4da1a28abb57c9443ed/html5/thumbnails/40.jpg)
Taller No 5
![Page 41: Manejo de grupos de atributos Giovanni Hernández P. Nivel 3](https://reader036.vdocumento.com/reader036/viewer/2022081418/5665b4da1a28abb57c9443ed/html5/thumbnails/41.jpg)
Caso No 2
![Page 42: Manejo de grupos de atributos Giovanni Hernández P. Nivel 3](https://reader036.vdocumento.com/reader036/viewer/2022081418/5665b4da1a28abb57c9443ed/html5/thumbnails/42.jpg)
Comprensión de los requerimientos
Nombre R1-Asignar una silla a un pasajero
Resumen Se requiere asignar una silla según las preferencias del pasajero. Estas son la clase (ejecutiva o económica) y la ubicación (ventana, centro o pasillo). En la asignación se deben registrar los datos del pasajero.
Entradas
Nombre del pasajeroCédula del pasajeroClase de la silla que deseaUbicación de la silla que desea.Resultados
Si existe una silla con las características de la clase y ubicación solicitadas por el pasajero, se asigna a dicho pasajero
![Page 43: Manejo de grupos de atributos Giovanni Hernández P. Nivel 3](https://reader036.vdocumento.com/reader036/viewer/2022081418/5665b4da1a28abb57c9443ed/html5/thumbnails/43.jpg)
Compresión del mundo del problema
ConstantesArreglo con 42 sillas
Arreglo con 8 sillas
Constantes
Asociación opcional
![Page 44: Manejo de grupos de atributos Giovanni Hernández P. Nivel 3](https://reader036.vdocumento.com/reader036/viewer/2022081418/5665b4da1a28abb57c9443ed/html5/thumbnails/44.jpg)
Taller (HT)
• Taller No 6• Taller No 7
![Page 45: Manejo de grupos de atributos Giovanni Hernández P. Nivel 3](https://reader036.vdocumento.com/reader036/viewer/2022081418/5665b4da1a28abb57c9443ed/html5/thumbnails/45.jpg)
public class Avion{
// - - - - - - - - - - - - - - - - - -// Constantes// - - - - - - - - - - - - - - - - - -public final static int SILLAS_EJECUTIVAS = 8;public final static int SILLAS _ECONOMICAS = 42;// - - - - - - - - - - - - - - - - - -// Atributos// - - - - - - - - - - - - - - - - - -private Silla[] sillasEjecutivas;private Silla[] sillasEconomicas;
}
![Page 46: Manejo de grupos de atributos Giovanni Hernández P. Nivel 3](https://reader036.vdocumento.com/reader036/viewer/2022081418/5665b4da1a28abb57c9443ed/html5/thumbnails/46.jpg)
public class Avion{
…// - - - - - - - - - - - - - - - - - -// Constructor// - - - - - - - - - - - - - - - - - -public Avion(){
sillasEjecutivas = new Silla[SILLAS_EJECUTIVAS];sillasEconomicas = new Silla[SILLAS_ECONOMICAS];// Creación de las sillas de clase ejecutivasillasEjecutivas[0] = new Silla(1,Silla.CLASE_EJECUTIVA, Silla.VENTANA);sillasEjecutivas[1] = new Silla(2,Silla.CLASE_EJECUTIVA, Silla.PASILLO);… // Creación de las sillas de clase económicasillasEconomicas[0] = new Silla(9,Silla.CLASE_ECONOMICA,Silla.VENTANA);sillasEconomicas[1] = new Silla(10,Silla.CLASE_ECONOMICA,Silla.CENTRAL);sillasEconomicas[2] = new Silla(11,Silla.CLASE_ECONOMICA,Silla.PASILLO);…
}
}
![Page 47: Manejo de grupos de atributos Giovanni Hernández P. Nivel 3](https://reader036.vdocumento.com/reader036/viewer/2022081418/5665b4da1a28abb57c9443ed/html5/thumbnails/47.jpg)
Objetos
: Silla
clase = 1numero = 6ubicacion = 3
: Pasajero
cedula = 1234nombre = “Samuel H.”
pasajero
: Silla
clase = 2numero = 10ubicacion = 2pasajero = null
![Page 48: Manejo de grupos de atributos Giovanni Hernández P. Nivel 3](https://reader036.vdocumento.com/reader036/viewer/2022081418/5665b4da1a28abb57c9443ed/html5/thumbnails/48.jpg)
: Avion
sillasEjecutivas =
0 1 2 3 4 5 6 7
: Silla
clase = 1numero = 1ubicacion = 1
: Silla
clase = 1numero = 3ubicacion = 1
: Pasajero
cedula = 1234nombre = “Samuel H.”
: Silla
clase = 1numero = 4ubicacion = 3pasajero = null
: Pasajero
cedula = 1234nombre = “Samuel H.”
: Silla
clase = 1numero = 2ubicacion = 3pasajero = null
. . .
![Page 49: Manejo de grupos de atributos Giovanni Hernández P. Nivel 3](https://reader036.vdocumento.com/reader036/viewer/2022081418/5665b4da1a28abb57c9443ed/html5/thumbnails/49.jpg)
Preguntas
¿Cómo se llama un método de un objeto que esta en un arreglo?
Por ejemplo, dentro de la clase Avión, para averiguar si la silla que esta en la posición 0 del arreglo de sillas ejecutivas está ocupada se utiliza la sintaxis:
sillasEjecutivas[0].sillaAsignada();
![Page 50: Manejo de grupos de atributos Giovanni Hernández P. Nivel 3](https://reader036.vdocumento.com/reader036/viewer/2022081418/5665b4da1a28abb57c9443ed/html5/thumbnails/50.jpg)
Preguntas
¿Los objetos que están en un arreglo se puede guardar en una variable?
Silla sillaTemporal = sillasEjecutivas[0];
![Page 51: Manejo de grupos de atributos Giovanni Hernández P. Nivel 3](https://reader036.vdocumento.com/reader036/viewer/2022081418/5665b4da1a28abb57c9443ed/html5/thumbnails/51.jpg)
Requerimientos
Nombre R1-Eliminar reservas
Resumen Se requiere eliminar todas las reservas del avión.
Entradas
Resultados
Se han eliminado las reservas del avión.
![Page 52: Manejo de grupos de atributos Giovanni Hernández P. Nivel 3](https://reader036.vdocumento.com/reader036/viewer/2022081418/5665b4da1a28abb57c9443ed/html5/thumbnails/52.jpg)
public void eliminarReservas(){
for(int i=0; i < SILLAS_EJECUTIVAS; i++){
sillasEjecutivas[ i ].desasignarSilla();}for(int i=1; i < SILLAS_ECONOMICAS;i++){
sillasEconomicas[ i ].desasignarSilla();}
}
![Page 53: Manejo de grupos de atributos Giovanni Hernández P. Nivel 3](https://reader036.vdocumento.com/reader036/viewer/2022081418/5665b4da1a28abb57c9443ed/html5/thumbnails/53.jpg)
Taller No 8
![Page 54: Manejo de grupos de atributos Giovanni Hernández P. Nivel 3](https://reader036.vdocumento.com/reader036/viewer/2022081418/5665b4da1a28abb57c9443ed/html5/thumbnails/54.jpg)
Contenedoras de tamaño variable
• 1000 estudiantes con sus notas• 200 puesto en un avión
![Page 55: Manejo de grupos de atributos Giovanni Hernández P. Nivel 3](https://reader036.vdocumento.com/reader036/viewer/2022081418/5665b4da1a28abb57c9443ed/html5/thumbnails/55.jpg)
Contenedoras de tamaño variable
• Utilizar el paquete java.util• Clase ArrayList
Por simplicidad se denominará vector a la implementación de una estrucutra contenedora de tamaño variable
![Page 56: Manejo de grupos de atributos Giovanni Hernández P. Nivel 3](https://reader036.vdocumento.com/reader036/viewer/2022081418/5665b4da1a28abb57c9443ed/html5/thumbnails/56.jpg)
Contenedoras de tamaño variable
Declaración de un vector: El vector es una claseEj.private ArrayList catalogo;private ArrayList itemsCompra;
![Page 57: Manejo de grupos de atributos Giovanni Hernández P. Nivel 3](https://reader036.vdocumento.com/reader036/viewer/2022081418/5665b4da1a28abb57c9443ed/html5/thumbnails/57.jpg)
Contenedoras de tamaño variable
Inicialización y tamaño de un vector• Se utiliza la misma sintaxis de creación de
cualquier objeto.• No es necesario definir el numero de
elementosVectorprivate ArrayList catalogo;
public CarroCompras(){ catalogo = new ArrayList();}
Arregloprivate String[] materias;
public Notas(){ materias = new String[TOTAL_EST];}
![Page 58: Manejo de grupos de atributos Giovanni Hernández P. Nivel 3](https://reader036.vdocumento.com/reader036/viewer/2022081418/5665b4da1a28abb57c9443ed/html5/thumbnails/58.jpg)
Contenedoras de tamaño variable
Métodos de la clase ArrayList• isEmpty() : retorna verdadero si el vector no
tiene elementos.• size(): retorna el número de elementos que
tiene el vector.
![Page 59: Manejo de grupos de atributos Giovanni Hernández P. Nivel 3](https://reader036.vdocumento.com/reader036/viewer/2022081418/5665b4da1a28abb57c9443ed/html5/thumbnails/59.jpg)
Contenedoras de tamaño variable
Acceso a los elementos del Vector• Empieza en la posición 0.• El método get(pos) recibe como parámetro la
posición a recuperar y retorna el objeto.• Al recuperar el elemento del vector se hace
necesario hacer explicita la clase a la cual pertenece.
![Page 60: Manejo de grupos de atributos Giovanni Hernández P. Nivel 3](https://reader036.vdocumento.com/reader036/viewer/2022081418/5665b4da1a28abb57c9443ed/html5/thumbnails/60.jpg)
Contenedoras de tamaño variable
Acceso a los elementos del Vectorpublic int darInventario(){
int sumaTotal=0;for(int indice=0; indice < catalogo.size(); indice++){
Libro miLibro = (Libro) catalogo.get(indice);sumaTotal += miLibro.darPrecio();
}return sumaTotal;
}
![Page 61: Manejo de grupos de atributos Giovanni Hernández P. Nivel 3](https://reader036.vdocumento.com/reader036/viewer/2022081418/5665b4da1a28abb57c9443ed/html5/thumbnails/61.jpg)
Contenedoras de tamaño variable
Agregar elementos a un vectorSe pueden agregar al final o en una posición específicaMétodos• add(objeto): Agrega al final del vector el objeto que
se pasa como parámetro.• add(indice,objeto): Agrega al vector el objeto que se
pasa como parámetro en la posición (inidce) indicada. El objeto que esta en la psosición desplaza a todos los elementos hacia la posición siguiente.
![Page 62: Manejo de grupos de atributos Giovanni Hernández P. Nivel 3](https://reader036.vdocumento.com/reader036/viewer/2022081418/5665b4da1a28abb57c9443ed/html5/thumbnails/62.jpg)
Contenedoras de tamaño variable
Agregar elementos a un vectorpublic void agregarTresLibros(){
Libro miLibro1 = new Libro(“Programación”,”McHill”,100);Libro miLibro2 = new Libro(“Matemática”,”McHill”,100);Libro miLibro3 = new Libro(“Física”,”McHill”,100);
catalogo.add(miLibro2);catalogo.add(miLibro3);catalogo.add(0,miLibro1);
}
![Page 63: Manejo de grupos de atributos Giovanni Hernández P. Nivel 3](https://reader036.vdocumento.com/reader036/viewer/2022081418/5665b4da1a28abb57c9443ed/html5/thumbnails/63.jpg)
Contenedoras de tamaño variable
Replazar un elemento del vectorCuando se requiere remplazar se utiliza el método
set(indice,objeto) donde indice es la posición que se desea replazar y objeto es el elemento que tomará ahora la posición.
![Page 64: Manejo de grupos de atributos Giovanni Hernández P. Nivel 3](https://reader036.vdocumento.com/reader036/viewer/2022081418/5665b4da1a28abb57c9443ed/html5/thumbnails/64.jpg)
Contenedoras de tamaño variable
Replazar un elemento del vectorpublic void intercambiar(int pos1, int pos2){
Libro miLibro1 = (Libro) catalogo.get(pos1);Libro miLibro2 = (Libro) catalogo.get(pos2);
catalogo.set(pos2, miLibro1);catalogo.set(pos1, miLibro2);
}
![Page 65: Manejo de grupos de atributos Giovanni Hernández P. Nivel 3](https://reader036.vdocumento.com/reader036/viewer/2022081418/5665b4da1a28abb57c9443ed/html5/thumbnails/65.jpg)
Contenedoras de tamaño variable
Eliminar un elemento del vectorCuando se requiere eliminar se utiliza el método
remove(indice) donde indice es la posición que se desea eliminar.
public void elminiarLibro(int pos){
catalogo.remove(pos);}