SlideShare una empresa de Scribd logo
1 de 61
Descargar para leer sin conexión
ALGORÍTMICA Y PROGRAMACIÓN 1 (APO 1)
NIVEL 3
Mario José Villamizar Cano
mj.villamizar24@uniandes.edu.co
Oficina ML-648
http://sistemas.uniandes.edu.co/~mj.villamizar24/dokuwiki/doku.php
Grupo de Tecnologías de Información y Comunicación (COMIT)
Departamento de Ingeniería de Sistemas y Computación
Universidad de los Andes, Bogotá D.C., Colombia
mjvc007@hotmail.com
http://twitter.com/mariocloud
http://linkedin.com/in/mariojosevillamizarcano
REDES SOCIALES
NIVEL 3
NIVEL
Temas principales
Contenedoras de tamaño fijo
Declaración de un arreglo
Inicialización de un arreglo
Acceso a los elementos de un arreglo
Componentes de una instrucción repetitiva
Patrones de algoritmos para instrucciones repetitivas
NIVEL 3
TEMAS PRINCIPALES
Contenedoras de tamaño fijo (simples y objetos)
Contenedoras de tamaño variable (objetos)
Instrucciones repetitivas
Creación de una clase completa en Java
Entender la documentación de Java (Javadoc)
NIVEL 3
CASOS DE ESTUDIO
NIVEL 3
Caso de estudio 1: Las Notas de un Curso
Contenedoras de tamaño fijo con tipos de datos simples
CASOS DE ESTUDIO
NIVEL 3
Caso de estudio 2: Reservas de un vuelo
Contenedoras de tamaño fijo con objetos
CASOS DE ESTUDIO
NIVEL 3
Caso de estudio 3: Tienda de Libros
Contenedoras de tamaño variable
HOJAS DE TRABAJO
Hojas de trabajo 1: Parqueadero
NIVEL 3
HOJAS DE TRABAJO
Hojas de trabajo 2: Lista de Contactos
NIVEL 3
HOJAS DE TRABAJO
Ejemplo 1: Ahorcado
NIVEL 3
HOJAS DE TRABAJO
Ejemplo 2: Observatorio Astronómico
NIVEL 3
HOJAS DE TRABAJO
Ejemplo 3: El Censo
NIVEL 3
CASO DE ESTUDIO – LAS NOTAS DE UN CURSO
NIVEL 3
CONTENEDORAS DE TAMAÑO FIJO - ARREGLOS
Utilizadas cuando se tienen un número fijo de elementos
Todos los elementos se almacenan bajo una misma variable o atributo
Numeración desde cero hasta el tamaño del arreglo menos uno
Ejemplo:
3.5 2.8 5.0 3.2 2.1 4.5 3.6 5.0 4.9 2.7 4.7 3.4
0 1 2 3 4 5 6 7 8 9 10 11
Valores (datos simples
u objetos)
Posiciones:
Tamaño del arreglo: 12
notas
NIVEL 3
DECLARACIÓN DE UN ARREGLO
La definición de un arreglo
public class Curso
{
//----------------------------------------------------------------
// Constantes
//----------------------------------------------------------------
private final static int TOTAL_EST = 12;
//----------------------------------------------------------------
// Atributos
//----------------------------------------------------------------
private double [ ] notas;
}
notas
NIVEL 3
INICIALIZACIÓN DE UN ARREGLO
Utilizada para definir el número de elementos que va a tener el arreglo y
reservar el espacio en memoria. En este momento el valor de cada elemento es
indefinido
public class Curso
{
//----------------------------------------------------------------
// Constructores
//----------------------------------------------------------------
public Curso( )
{
notas = new double [TOTAL_EST];
}
}
d d d d d d d d d d d d
notas
d = double
NIVEL 3
ACCESO A LOS ELEMENTOS DE UN ARREGLO
Un índice permite acceder y modificar un elemento de un arreglo
public class Curso
{
public void modificarValores( )
{
notas[0] = 2.0;
notas[1] = 3.0;
notas[2] = 4.0;
notas[3] = 5.0;
}
}
2.0 3.0 4.0 5.0 d d d d d d d d
notas
d = double
NIVEL 3
ACCESO A LOS ELEMENTOS DE UN ARREGLO
Un índice permite acceder y modificar un elemento de un arreglo
public class Curso
{
public void consultarValores( )
{
double nota0 = notas[0] ;
double nota1 = notas[1] ;
double nota2 = notas[2] ;
notas[3] = 4.5;
double nota3 = notas[3] ;
tamanio = notas.length;
}
}
2.0 3.0 4.0 4.5 d d d d d d d d
notas
d = double
Operador especial de Java que
permite consultar el tamaño de
un arreglo.
NIVEL 3
INTRUCCIONES REPETITIVAS
Elementos del while
<inicio>
while( <condición> )
{
<cuerpo>
<avance>
}
Ejemplo con while (Clase Curso)
public double darPromedio( )
{
double suma = 0.0;
int indice = 0;
while( indice < TOTAL_EST )
{
suma += notas[indice];
indice++;
}
return suma/TOTAL_EST;
}
3.5 2.8 5.0 3.2 2.1 4.5 3.6 5.0 4.9 2.7 4.7 3.4
0 1 2 3 4 5 6 7 8 9 10 11
notas
NIVEL 3
INTRUCCIONES REPETITIVAS
Elementos del for
<inicio1>
for (<inicio2>; <condición>; <avance> )
{
<cuerpo>
}
NIVEL 3
INTRUCCIONES REPETITIVAS
Elementos del for
public double darPromedio( )
{
double suma = 0.0;
for( int indice = 0; indice < TOTAL_EST; indice++)
{
suma += notas[indice];
}
return suma/TOTAL_EST;
}
3.5 2.8 5.0 3.2 2.1 4.5 3.6 5.0 4.9 2.7 4.7 3.4
0 1 2 3 4 5 6 7 8 9 10 11
notas
NIVEL 3
PATRONES DE ALGORITMOS
Patrón de recorrido total
Para modificar algunos elementos del arreglo
Ejemplo: Definir un método en la clase Curso que adiciona 0.2 a los
estudiantes con nota inferior a 3.0
Para calcular alguna propiedad sobre los elementos del arreglo
Ejemplo: Definir un método en la clase Curso que retorne el número de
estudiantes que aprobaron el curso (nota mayor o igual a 3).
3.5 2.8 5.0 3.2 2.1 4.5 3.6 5.0 4.9 2.7 4.7 3.4
0 1 2 3 4 5 6 7 8 9 10 11
notas
NIVEL 3
PATRONES DE ALGORITMOS
Patrón de recorrido parcial
Para modificar algunos elementos del arreglo
Ejemplo: Definir un método en la clase Curso que incremente la nota de los
estudiantes en 0.5 hasta que algún estudiante obtenga una nota superior o
igual a 4.5.
Para calcular alguna propiedad sobre los elementos del arreglo
Ejemplo: Definir un método en la clase Curso que retorne si algún
estudiantes sacó 5.0 en el curso.
3.5 2.8 5.0 3.2 2.1 4.5 3.6 5.0 4.9 2.7 4.7 3.4
0 1 2 3 4 5 6 7 8 9 10 11
notas
NIVEL 3
PATRONES DE ALGORITMOS
Patrón de doble recorrido
Para calcular alguna propiedad sobre los elementos del arreglo
Ejemplo: Definir un método en la clase Curso que retorne la nota que
aparece el mayor número de veces.
3.5 2.8 5.0 3.2 2.1 4.5 3.6 5.0 4.9 2.7 4.7 3.4
0 1 2 3 4 5 6 7 8 9 10 11
notas
NIVEL 3
PRÓXIMA CLASE - LABORATORIO
DESARROLLO DE LAS TAREA 1, 2, 3, 4 Y 5
NIVEL 3
PREGUNTAS
NIVEL 3
CONTENEDORAS DE TAMAÑO FIJO – ARREGLOS
MANEJO DE OBJETOS
NIVEL 3
CASO DE ESTUDIO DEL AVIÓN – ARREGLOS DE OBJETOS
NIVEL 3
CASO DE ESTUDIO DEL AVIÓN – ARREGLOS DE OBJETOS
NIVEL 3
CONTENEDORAS DE TAMAÑO FIJO ALMACENANDO OBJETOS
NIVEL 3
DECLARACIÓN DE UN ARREGLO DE OBJETOS
La definición de un arreglo de objetos
public class Avion
{
//----------------------------------------------------------------
// Constantes
//----------------------------------------------------------------
public final static int SILLAS_EJECUTIVAS = 8;
//----------------------------------------------------------------
// Atributos
//----------------------------------------------------------------
private Silla[ ] sillasEjecutivas;
}
NIVEL 3
INICIALIZACIÓN DE UN ARREGLO DE OBJETOS
La inicialización de un arreglo de objetos
public class Avion
{
public final static int SILLAS_EJECUTIVAS = 8;
//----------------------------------------------------------------
// Constructores
//----------------------------------------------------------------
public Avion()
{
sillasEjecutivas = new Silla[SILLAS_EJECUTIVAS];
}
}
NIVEL 3
INTRUCCIONES REPETITIVAS
Elementos del for-each
for (NombreClase nombreObjeto: arreglo/vector )
{
<cuerpo>
}
NIVEL 3
EJERCICIOS CON ARREGLOS DE OBJETOS
Ejercicios con arreglos de objetos
En la clase Avion declarar un método denominado
contarSillasEjecutivasDesocupadas, el cual retorna el número de sillas
ejecutivas que están desocupadas.
En la clase Avion declarar un método denominado buscarPasajeroEjecutivo el
cual retorna la Silla en la que se encuentra el pasajero identificado con la cédula
que se pasa como parámetro. Si no hay ningún pasajero con la cédula el método
debe retornar null.
En la clase Avion declarar un método denominado buscarSillaEconomicaLibre
el cual retorna una silla económica disponible en la localización recibida como
parámetro (ventana, centro o pasillo). Si no existe ninguna el método deberá
retornar null.
NIVEL 3
EJERCICIOS CON ARREGLOS DE OBJETOS
Ejercicios con arreglos de objetos
En la clase Avion declarar un método denominado asignarSillaEconomica, el
cual asigna al pasajero que recibe como parámetro una silla en clase económica
que esté libre (en la ubicación recibida como parámetro). Si el proceso tiene
éxito retorna verdadero, en caso contrario, retorna falso.
En la clase Avion declarar un método denominado anularReservaEjecutivo el
cual anula la reserva en clase ejecutiva que tenía el pasajero con la cédula
recibida como parámetro. Retorna verdadero si el proceso tiene éxito.
En la clase Avion declarar un método denominado
contarVentanasEconomicas el cual retorna el número de puestos disponibles
en una ventana, en la zona económica del avión.
NIVEL 3
EJERCICIOS CON ARREGLOS DE OBJETOS
Ejercicios con arreglos de objetos
En la clase Avion declarar un método denominado
hayDosHomonimosEconomica, el cual informa si en la zona económica del
avión hay dos personas que se llaman igual. Patrón de doble recorrido.
NIVEL 3
DESARROLLO DE LAS TAREA 6, 7, 8, 9
PRÓXIMA CLASE
ANALIZAR EL CASO DE ESTUDIO 3 – TIENDA DE LIBROS
CONTENEDORAS DE TAMAÑO VARIABLE
TODAS LAS TAREAS DEL LIBRO
NIVEL 3
PREGUNTAS
NIVEL 3
CONTENEDORAS DE TAMAÑO VARIABLE
MANEJO DE OBJETOS
NIVEL 3
NIVEL 3
Contenedoras de tamaño variable
Caso de estudio de la tienda de libros
Declaración de un vector de objetos
Inicialización y tamaño de un vector de objetos
Acceso a los elementos de un vector de objetos
Agregar elementos a un vector de objetos
Reemplazar un elemento de un vector de objetos
Eliminar un elemento de un vector de objetos
Ejercicios del caso de estudio de la tienda de libros
Uso de ciclos en otros contextos
Creación de una clase en Java
NIVEL 3
CASO DE ESTUDIO DE LA TIENDA DE LIBROS
NIVEL 3
CASO DE ESTUDIO DE LA TIENDA DE LIBEROS
CONTENEDORAS DE TAMAÑO VARIABLE (VECTOR)
NIVEL 3
CONTENEDORA DE TAMAÑO VARIABLE (VECTORES)
En Java existen varias clases para manejar contenedoras de tamaño variable,
en este nivel se va a utilizar la clase ArrayList.
En un ArrayList no se pueden almacenar grupos de atributos de tipo simple,
sino únicamente grupos de objetos.
En este nivel se va a llamar Vector a cualquier implementación de una
contenedora de tamaño variable.
NIVEL 3
DECLARACIÓN DE UN VECTOR
La definición de un vector de objetos
public class TiendaDeLibros
{
//----------------------------------------------------------------
// Atributos
//----------------------------------------------------------------
private ArrayList<Libro> catalogo;
}
NIVEL 3
DECLARACIÓN DE UN VECTOR
La definición de un vector de objetos
public class Libro
{
//----------------------------------------------------------------
// Atributos
//----------------------------------------------------------------
private ArrayList<Transaccion> transacciones;
}
NIVEL 3
INICIALIZACIÓN DE UN VECTOR DE OBJETOS
La inicialización de un vector de objetos se realiza en el constructor de la
clase que lo contiene.
public class TiendaDeLibros
{
//----------------------------------------------------------------
// Constructores
//----------------------------------------------------------------
public TiendaDeLibros()
{
catalogo = new ArrayList<Libro>( );
}
}
NIVEL 3
INICIALIZACIÓN DE UN VECTOR DE OBJETOS
En los vectores no es necesario definir el tamaño, en los arreglos es
indispensable hacerlo.
public class Libro
{
//----------------------------------------------------------------
// Constructores
//----------------------------------------------------------------
public Libro()
{
transacciones = new ArrayList<Transaccion>( );
}
}
NIVEL 3
AGREGAR ELEMENTOS A UN VECTOR DE OBJETOS
Adición de elementos a u vector de objetos
public class TiendaDeLibros
{
public void agregarTresLibros( )
{
Libro lb1 = new Libro(“Mi libro 1”, “0011”, 100000);
Libro lb2 = new Libro(“Mi libro 2”, “0012”, 200000);
Libro lb3 = new Libro(“Mi libro 3”, “0013”, 300000);
catalogo.add(lb1);
}
}
NIVEL 3
AGREGAR ELEMENTOS A UN VECTOR DE OBJETOS
Adición de elementos a u vector de objetos
public class TiendaDeLibros
{
public void agregarTresLibros( )
{
Libro lb1 = new Libro(“Mi libro 1”, “0011”, 100000);
Libro lb2 = new Libro(“Mi libro 2”, “0012”, 200000);
Libro lb3 = new Libro(“Mi libro 3”, “0013”, 300000);
catalogo.add(lb1);
catalogo.add(lb2);
}
}
NIVEL 3
AGREGAR ELEMENTOS A UN VECTOR DE OBJETOS
Adición de elementos a u vector de objetos
public class TiendaDeLibros
{
public void agregarTresLibros( )
{
Libro lb1 = new Libro(“Mi libro 1”, “0011”, 100000);
Libro lb2 = new Libro(“Mi libro 2”, “0012”, 200000);
Libro lb3 = new Libro(“Mi libro 3”, “0013”, 300000);
catalogo.add(lb1);
catalogo.add(lb2);
catalogo.add(0, lb3);
}
}
NIVEL 3
ACCESO A LOS ELEMENTOS EN UN VECTOR DE OBJETOS
Acceso a los elementos de un vector de objetos
public class TiendaDeLibros
{
public void accederLibros()
{
Libro lb1 = catalogo.get(0);
Libro lb2 = catalogo.get(1);
}
}
NIVEL 3
REEMPLAZAR UN ELEMENTO EN UN VECTOR DE OBJETOS
Reemplazar un elemento de un vector de objetos
public class TiendaDeLibros
{
public void reemplazarLibros()
{
Libro lb1 = (Libro) catalogo.get(0);
Libro lb2 = (Libro) catalogo.get(1);
catalogo.set(0, lb2);
catalogo.set(1, lb1);
}
}
NIVEL 3
ELIMINAR UN ELEMENTO EN UN VECTOR DE OBJETOS
Eliminar un elemento de un vector de objetos
public class TiendaDeLibros
{
public void eliminarLibro()
{
Libro lb = catalogo.get(0);
catalogo.remove(lb);
}
}
NIVEL 3
TAMAÑO DE UN VECTOR DE OBJETOS
En los vectores el tamaño se conoce mediante el método size(), en lugar de
utilizar el operador length empleado en los arreglos.
public class TiendaDeLibros
{
public int darTamanoCatalogo( )
{
return catalogo.size( );
}
}
NIVEL 3
TAMAÑO DE UN VECTOR DE OBJETOS
Determinar si un vector de objetos está vacío.
public class TiendaDeLibros
{
public boolean estaVacioElCatalogo ( )
{
return catalogo.isEmpty( );
}
}
NIVEL 3
EJERCICIOS CON VECTORES DE OBJETOS
Ejercicio - Recorrido Total
En la clase TiendaDeLibros adicionar un nuevo método denominado
darPrecioUnitarioPromedioCompraLibros, este método deberá retornar el
precio unitario de compra promedio de los libros que hay en el catalogo de la
tienda. En caso de que en el catálogo no hayan libros el método deberá retornar
-1.
Modificar el método metodo1 de la clase TiendaDeLibros para que retorne uno
de los siguientes mensajes:
El precio unitario de compra promedio de los libros que hay en el catálogo es: X
No hay libros en el catálogo
NIVEL 3
EJERCICIOS CON VECTORES DE OBJETOS
Ejercicio - Recorrido Parcial
En la clase TiendaDeLibros agregar un método denominado
buscarLibroPorISBN, este método recibe como parámetro el ISBN del libro que
se está buscando. El método debe retornar el objeto del libro que tiene dicho
ISBN, en caso que no haya un libro con el ISBN recibido como parámetro el
método deberá retornar null.
NIVEL 3
EJERCICIOS CON VECTORES DE OBJETOS
Ejercicio – Doble Recorrido
En la clase TiendaDeLibros adicionar un nuevo método denominado
hayDosLibrosConElMismoPrecioVenta, este método deberá retornar un valor
indicando si en el catálogo de libros que hay en la tienda existen dos libros con el
mismo precio de venta.
Modificar el método metodo1 de la clase TiendaDeLibros para que retorne uno
de los siguientes mensajes:
Si hay dos libros con el mismo precio de venta en el catalogo
No hay dos libros con el mismo precio de venta en el catalogo
NIVEL 3
EJERCICIOS CON VECTORES DE OBJETOS
Ejercicio – Recorrido parcial
En la clase TiendaDeLibros adicionar un método denominado eliminarLibro
este método recibe como parámetro el ISBN del libro que se desea eliminar del
catálogo, en caso de que en el catálogo haya un libro con ese ISBN, el libro debe
ser eliminado. El método debe retornar un valor indicando si el libro pudo ser
eliminado o no.
Modificar el método metodo1 de la clase TiendaDeLibros para que retorne uno
de los siguientes mensajes:
El libro fue eliminado del catálogo
El libro no fue eliminado del catálogo
NIVEL 3
EJERCICIOS CON VECTORES
Tarea 10 de libro
Tarea 11 del libro
Tarea 12 del libro
Tarea 13 del libro
NIVEL 3
PREGUNTAS
NIVEL 3

Más contenido relacionado

Destacado (20)

APO2 - Presentacion nivel 10
APO2 - Presentacion nivel 10APO2 - Presentacion nivel 10
APO2 - Presentacion nivel 10
 
Emprendimiento en internet y startups 2017
Emprendimiento en internet y startups 2017Emprendimiento en internet y startups 2017
Emprendimiento en internet y startups 2017
 
Contadores y Acumuladores
Contadores y AcumuladoresContadores y Acumuladores
Contadores y Acumuladores
 
Patrones de diseño
Patrones de diseñoPatrones de diseño
Patrones de diseño
 
De diagrama de clase a Codigo Java
De diagrama de clase a Codigo JavaDe diagrama de clase a Codigo Java
De diagrama de clase a Codigo Java
 
Vectores
VectoresVectores
Vectores
 
Asignaciones en java
Asignaciones en javaAsignaciones en java
Asignaciones en java
 
ANATOMIA JAVA
ANATOMIA JAVAANATOMIA JAVA
ANATOMIA JAVA
 
Persistencia jpa
Persistencia jpaPersistencia jpa
Persistencia jpa
 
Como utilizar las redes sociales de una forma eficiente
Como utilizar las redes sociales de una forma eficienteComo utilizar las redes sociales de una forma eficiente
Como utilizar las redes sociales de una forma eficiente
 
Java OO - Tema 07 - Arreglos
Java OO - Tema 07 - ArreglosJava OO - Tema 07 - Arreglos
Java OO - Tema 07 - Arreglos
 
Ciclo while y do while
Ciclo while y do whileCiclo while y do while
Ciclo while y do while
 
Patrones de diseño
Patrones de diseñoPatrones de diseño
Patrones de diseño
 
Ordenar arreglos en java
Ordenar arreglos en javaOrdenar arreglos en java
Ordenar arreglos en java
 
Vamos A Crear Un Blog Con Blogspot
Vamos A Crear Un Blog Con BlogspotVamos A Crear Un Blog Con Blogspot
Vamos A Crear Un Blog Con Blogspot
 
Programas de computacion en Pseint
Programas de computacion en PseintProgramas de computacion en Pseint
Programas de computacion en Pseint
 
Ejercicio de estructuras_condicionales
Ejercicio de estructuras_condicionalesEjercicio de estructuras_condicionales
Ejercicio de estructuras_condicionales
 
Espacios vectoriales
Espacios vectorialesEspacios vectoriales
Espacios vectoriales
 
Arreglos
ArreglosArreglos
Arreglos
 
Ejercicio en pseint
Ejercicio en pseintEjercicio en pseint
Ejercicio en pseint
 

Similar a APO1 - Presentacion nivel 3

Similar a APO1 - Presentacion nivel 3 (20)

Analizador Léxico y Sintáctico para Compilador que Invierte Cadenas utilizand...
Analizador Léxico y Sintáctico para Compilador que Invierte Cadenas utilizand...Analizador Léxico y Sintáctico para Compilador que Invierte Cadenas utilizand...
Analizador Léxico y Sintáctico para Compilador que Invierte Cadenas utilizand...
 
Lab 04 06
Lab 04 06Lab 04 06
Lab 04 06
 
Analizador de una matriz utilizando compiladores
Analizador de una matriz utilizando compiladoresAnalizador de una matriz utilizando compiladores
Analizador de una matriz utilizando compiladores
 
Programación Orientada a Objetos - Unidad 2: clases y objetos
Programación Orientada a Objetos - Unidad 2: clases y objetosProgramación Orientada a Objetos - Unidad 2: clases y objetos
Programación Orientada a Objetos - Unidad 2: clases y objetos
 
1 -programacion_oo
1  -programacion_oo1  -programacion_oo
1 -programacion_oo
 
R ecuperacion
R ecuperacionR ecuperacion
R ecuperacion
 
Lp2docclases
Lp2docclasesLp2docclases
Lp2docclases
 
Sintaxisenjava
Sintaxisenjava Sintaxisenjava
Sintaxisenjava
 
Unidad 2 Sintaxis en java
Unidad 2 Sintaxis en javaUnidad 2 Sintaxis en java
Unidad 2 Sintaxis en java
 
Computación 3
Computación 3Computación 3
Computación 3
 
7_CreacionDePresentaciones.pdf
7_CreacionDePresentaciones.pdf7_CreacionDePresentaciones.pdf
7_CreacionDePresentaciones.pdf
 
Fo 5.desarrollo android-almacenamientodedatos
Fo 5.desarrollo android-almacenamientodedatosFo 5.desarrollo android-almacenamientodedatos
Fo 5.desarrollo android-almacenamientodedatos
 
Computación 3
Computación 3Computación 3
Computación 3
 
02 formulario iniciar sesion programar
02 formulario iniciar sesion   programar02 formulario iniciar sesion   programar
02 formulario iniciar sesion programar
 
Curso de pl sql básico
Curso de pl sql básicoCurso de pl sql básico
Curso de pl sql básico
 
(533817759) guia comp
(533817759) guia comp(533817759) guia comp
(533817759) guia comp
 
Labo 2
Labo 2Labo 2
Labo 2
 
Rc orlando rondon 301305-17
Rc orlando rondon 301305-17Rc orlando rondon 301305-17
Rc orlando rondon 301305-17
 
Rc_Carlos_Herrera
Rc_Carlos_HerreraRc_Carlos_Herrera
Rc_Carlos_Herrera
 
Rc carlos herrera
Rc carlos herreraRc carlos herrera
Rc carlos herrera
 

Más de Mario Jose Villamizar Cano

e-Clouds A Platform and Marketplace to Access and Publish Scientific Applicat...
e-Clouds A Platform and Marketplace to Access and Publish Scientific Applicat...e-Clouds A Platform and Marketplace to Access and Publish Scientific Applicat...
e-Clouds A Platform and Marketplace to Access and Publish Scientific Applicat...Mario Jose Villamizar Cano
 
Frameworks y herramientas de desarrollo ágil para emprendedores y startups
Frameworks y herramientas de desarrollo ágil para emprendedores y startupsFrameworks y herramientas de desarrollo ágil para emprendedores y startups
Frameworks y herramientas de desarrollo ágil para emprendedores y startupsMario Jose Villamizar Cano
 
Desarrollo de Soluciones Escalables de Software como Servicio (SaaS)
Desarrollo de Soluciones Escalables de Software como Servicio (SaaS)Desarrollo de Soluciones Escalables de Software como Servicio (SaaS)
Desarrollo de Soluciones Escalables de Software como Servicio (SaaS)Mario Jose Villamizar Cano
 
An Overview of Internet Startups and Entrepreneurship
An Overview of Internet Startups and EntrepreneurshipAn Overview of Internet Startups and Entrepreneurship
An Overview of Internet Startups and EntrepreneurshipMario Jose Villamizar Cano
 
Energy-aware VM Allocation on An Opportunistic Cloud Infrastructure
Energy-aware VM Allocation on An Opportunistic Cloud InfrastructureEnergy-aware VM Allocation on An Opportunistic Cloud Infrastructure
Energy-aware VM Allocation on An Opportunistic Cloud InfrastructureMario Jose Villamizar Cano
 
Emprendimiento en Internet / Internet Startups
Emprendimiento en Internet / Internet StartupsEmprendimiento en Internet / Internet Startups
Emprendimiento en Internet / Internet StartupsMario Jose Villamizar Cano
 
e-Clouds: a SaaS Marketplace for Scientific Computing
e-Clouds: a SaaS Marketplace for Scientific Computinge-Clouds: a SaaS Marketplace for Scientific Computing
e-Clouds: a SaaS Marketplace for Scientific ComputingMario Jose Villamizar Cano
 
Cloud computing oportunidades para empresarios y emprendedores
Cloud computing oportunidades para empresarios y emprendedoresCloud computing oportunidades para empresarios y emprendedores
Cloud computing oportunidades para empresarios y emprendedoresMario Jose Villamizar Cano
 
UnaCloud: Opportunistic Cloud Computing Infrastructure as a Service
UnaCloud: Opportunistic Cloud Computing Infrastructure as a ServiceUnaCloud: Opportunistic Cloud Computing Infrastructure as a Service
UnaCloud: Opportunistic Cloud Computing Infrastructure as a ServiceMario Jose Villamizar Cano
 
Bio-UnaGrid: Easing bioinformatics workflow execution
Bio-UnaGrid: Easing bioinformatics workflow executionBio-UnaGrid: Easing bioinformatics workflow execution
Bio-UnaGrid: Easing bioinformatics workflow executionMario Jose Villamizar Cano
 
Taxonomía de los modelos de entrega de servicios, despliegue y facturación en...
Taxonomía de los modelos de entrega de servicios, despliegue y facturación en...Taxonomía de los modelos de entrega de servicios, despliegue y facturación en...
Taxonomía de los modelos de entrega de servicios, despliegue y facturación en...Mario Jose Villamizar Cano
 
BacteriumSimulatorGrid (BSGrid) - Tool for Simulating the Behavior of the Bac...
BacteriumSimulatorGrid (BSGrid) - Tool for Simulating the Behavior of the Bac...BacteriumSimulatorGrid (BSGrid) - Tool for Simulating the Behavior of the Bac...
BacteriumSimulatorGrid (BSGrid) - Tool for Simulating the Behavior of the Bac...Mario Jose Villamizar Cano
 
Una grid una solución oportunista para la HPC en colombia
Una grid una solución oportunista para la HPC en colombiaUna grid una solución oportunista para la HPC en colombia
Una grid una solución oportunista para la HPC en colombiaMario Jose Villamizar Cano
 
Infraestructura computacional: Computación en grid
Infraestructura computacional: Computación en gridInfraestructura computacional: Computación en grid
Infraestructura computacional: Computación en gridMario Jose Villamizar Cano
 

Más de Mario Jose Villamizar Cano (16)

e-Clouds A Platform and Marketplace to Access and Publish Scientific Applicat...
e-Clouds A Platform and Marketplace to Access and Publish Scientific Applicat...e-Clouds A Platform and Marketplace to Access and Publish Scientific Applicat...
e-Clouds A Platform and Marketplace to Access and Publish Scientific Applicat...
 
Frameworks y herramientas de desarrollo ágil para emprendedores y startups
Frameworks y herramientas de desarrollo ágil para emprendedores y startupsFrameworks y herramientas de desarrollo ágil para emprendedores y startups
Frameworks y herramientas de desarrollo ágil para emprendedores y startups
 
Desarrollo de Soluciones Escalables de Software como Servicio (SaaS)
Desarrollo de Soluciones Escalables de Software como Servicio (SaaS)Desarrollo de Soluciones Escalables de Software como Servicio (SaaS)
Desarrollo de Soluciones Escalables de Software como Servicio (SaaS)
 
An Overview of Internet Startups and Entrepreneurship
An Overview of Internet Startups and EntrepreneurshipAn Overview of Internet Startups and Entrepreneurship
An Overview of Internet Startups and Entrepreneurship
 
Energy-aware VM Allocation on An Opportunistic Cloud Infrastructure
Energy-aware VM Allocation on An Opportunistic Cloud InfrastructureEnergy-aware VM Allocation on An Opportunistic Cloud Infrastructure
Energy-aware VM Allocation on An Opportunistic Cloud Infrastructure
 
Emprendimiento en Internet / Internet Startups
Emprendimiento en Internet / Internet StartupsEmprendimiento en Internet / Internet Startups
Emprendimiento en Internet / Internet Startups
 
e-Clouds: a SaaS Marketplace for Scientific Computing
e-Clouds: a SaaS Marketplace for Scientific Computinge-Clouds: a SaaS Marketplace for Scientific Computing
e-Clouds: a SaaS Marketplace for Scientific Computing
 
Cloud computing oportunidades para empresarios y emprendedores
Cloud computing oportunidades para empresarios y emprendedoresCloud computing oportunidades para empresarios y emprendedores
Cloud computing oportunidades para empresarios y emprendedores
 
CLOUD COMPUTING HOY: Todo como Servicio.
CLOUD COMPUTING HOY: Todo como Servicio.CLOUD COMPUTING HOY: Todo como Servicio.
CLOUD COMPUTING HOY: Todo como Servicio.
 
UnaCloud: Opportunistic Cloud Computing Infrastructure as a Service
UnaCloud: Opportunistic Cloud Computing Infrastructure as a ServiceUnaCloud: Opportunistic Cloud Computing Infrastructure as a Service
UnaCloud: Opportunistic Cloud Computing Infrastructure as a Service
 
Bio-UnaGrid: Easing bioinformatics workflow execution
Bio-UnaGrid: Easing bioinformatics workflow executionBio-UnaGrid: Easing bioinformatics workflow execution
Bio-UnaGrid: Easing bioinformatics workflow execution
 
Taxonomía de los modelos de entrega de servicios, despliegue y facturación en...
Taxonomía de los modelos de entrega de servicios, despliegue y facturación en...Taxonomía de los modelos de entrega de servicios, despliegue y facturación en...
Taxonomía de los modelos de entrega de servicios, despliegue y facturación en...
 
An Opportunistic Storage System for UnaGrid
An Opportunistic Storage System for UnaGridAn Opportunistic Storage System for UnaGrid
An Opportunistic Storage System for UnaGrid
 
BacteriumSimulatorGrid (BSGrid) - Tool for Simulating the Behavior of the Bac...
BacteriumSimulatorGrid (BSGrid) - Tool for Simulating the Behavior of the Bac...BacteriumSimulatorGrid (BSGrid) - Tool for Simulating the Behavior of the Bac...
BacteriumSimulatorGrid (BSGrid) - Tool for Simulating the Behavior of the Bac...
 
Una grid una solución oportunista para la HPC en colombia
Una grid una solución oportunista para la HPC en colombiaUna grid una solución oportunista para la HPC en colombia
Una grid una solución oportunista para la HPC en colombia
 
Infraestructura computacional: Computación en grid
Infraestructura computacional: Computación en gridInfraestructura computacional: Computación en grid
Infraestructura computacional: Computación en grid
 

Último

Día de la Madre Tierra-1.pdf día mundial
Día de la Madre Tierra-1.pdf día mundialDía de la Madre Tierra-1.pdf día mundial
Día de la Madre Tierra-1.pdf día mundialpatriciaines1993
 
Mapa Mental de estrategias de articulación de las areas curriculares.pdf
Mapa Mental de estrategias de articulación de las areas curriculares.pdfMapa Mental de estrategias de articulación de las areas curriculares.pdf
Mapa Mental de estrategias de articulación de las areas curriculares.pdfvictorbeltuce
 
Presentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptx
Presentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptxPresentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptx
Presentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptxYeseniaRivera50
 
05 Fenomenos fisicos y quimicos de la materia.pdf
05 Fenomenos fisicos y quimicos de la materia.pdf05 Fenomenos fisicos y quimicos de la materia.pdf
05 Fenomenos fisicos y quimicos de la materia.pdfRAMON EUSTAQUIO CARO BAYONA
 
Actividad transversal 2-bloque 2. Actualización 2024
Actividad transversal 2-bloque 2. Actualización 2024Actividad transversal 2-bloque 2. Actualización 2024
Actividad transversal 2-bloque 2. Actualización 2024Rosabel UA
 
Monitoreo a los coordinadores de las IIEE JEC_28.02.2024.vf.pptx
Monitoreo a los coordinadores de las IIEE JEC_28.02.2024.vf.pptxMonitoreo a los coordinadores de las IIEE JEC_28.02.2024.vf.pptx
Monitoreo a los coordinadores de las IIEE JEC_28.02.2024.vf.pptxJUANCARLOSAPARCANARE
 
libro para colorear de Peppa pig, ideal para educación inicial
libro para colorear de Peppa pig, ideal para educación iniciallibro para colorear de Peppa pig, ideal para educación inicial
libro para colorear de Peppa pig, ideal para educación inicialLorenaSanchez350426
 
IV SES LUN 15 TUTO CUIDO MI MENTE CUIDANDO MI CUERPO YESSENIA 933623393 NUEV...
IV SES LUN 15 TUTO CUIDO MI MENTE CUIDANDO MI CUERPO  YESSENIA 933623393 NUEV...IV SES LUN 15 TUTO CUIDO MI MENTE CUIDANDO MI CUERPO  YESSENIA 933623393 NUEV...
IV SES LUN 15 TUTO CUIDO MI MENTE CUIDANDO MI CUERPO YESSENIA 933623393 NUEV...YobanaZevallosSantil1
 
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...fcastellanos3
 
Fichas de Matemática TERCERO DE SECUNDARIA.pdf
Fichas de Matemática TERCERO DE SECUNDARIA.pdfFichas de Matemática TERCERO DE SECUNDARIA.pdf
Fichas de Matemática TERCERO DE SECUNDARIA.pdfssuser50d1252
 
FICHA DE MONITOREO Y ACOMPAÑAMIENTO 2024 MINEDU
FICHA DE MONITOREO Y ACOMPAÑAMIENTO  2024 MINEDUFICHA DE MONITOREO Y ACOMPAÑAMIENTO  2024 MINEDU
FICHA DE MONITOREO Y ACOMPAÑAMIENTO 2024 MINEDUgustavorojas179704
 
Fichas de matemática DE PRIMERO DE SECUNDARIA.pdf
Fichas de matemática DE PRIMERO DE SECUNDARIA.pdfFichas de matemática DE PRIMERO DE SECUNDARIA.pdf
Fichas de matemática DE PRIMERO DE SECUNDARIA.pdfssuser50d1252
 
SIMULACROS Y SIMULACIONES DE SISMO 2024.docx
SIMULACROS Y SIMULACIONES DE SISMO 2024.docxSIMULACROS Y SIMULACIONES DE SISMO 2024.docx
SIMULACROS Y SIMULACIONES DE SISMO 2024.docxLudy Ventocilla Napanga
 
5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf
5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf
5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdfOswaldoGonzalezCruz
 
Manejo del Dengue, generalidades, actualización marzo 2024 minsa
Manejo del Dengue, generalidades, actualización marzo 2024 minsaManejo del Dengue, generalidades, actualización marzo 2024 minsa
Manejo del Dengue, generalidades, actualización marzo 2024 minsaLuis Minaya
 
4º SOY LECTOR PART2- MD EDUCATIVO.p df PARTE
4º SOY LECTOR PART2- MD  EDUCATIVO.p df PARTE4º SOY LECTOR PART2- MD  EDUCATIVO.p df PARTE
4º SOY LECTOR PART2- MD EDUCATIVO.p df PARTESaraNolasco4
 

Último (20)

Día de la Madre Tierra-1.pdf día mundial
Día de la Madre Tierra-1.pdf día mundialDía de la Madre Tierra-1.pdf día mundial
Día de la Madre Tierra-1.pdf día mundial
 
Mapa Mental de estrategias de articulación de las areas curriculares.pdf
Mapa Mental de estrategias de articulación de las areas curriculares.pdfMapa Mental de estrategias de articulación de las areas curriculares.pdf
Mapa Mental de estrategias de articulación de las areas curriculares.pdf
 
Presentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptx
Presentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptxPresentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptx
Presentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptx
 
05 Fenomenos fisicos y quimicos de la materia.pdf
05 Fenomenos fisicos y quimicos de la materia.pdf05 Fenomenos fisicos y quimicos de la materia.pdf
05 Fenomenos fisicos y quimicos de la materia.pdf
 
Actividad transversal 2-bloque 2. Actualización 2024
Actividad transversal 2-bloque 2. Actualización 2024Actividad transversal 2-bloque 2. Actualización 2024
Actividad transversal 2-bloque 2. Actualización 2024
 
Monitoreo a los coordinadores de las IIEE JEC_28.02.2024.vf.pptx
Monitoreo a los coordinadores de las IIEE JEC_28.02.2024.vf.pptxMonitoreo a los coordinadores de las IIEE JEC_28.02.2024.vf.pptx
Monitoreo a los coordinadores de las IIEE JEC_28.02.2024.vf.pptx
 
TL/CNL – 2.ª FASE .
TL/CNL – 2.ª FASE                       .TL/CNL – 2.ª FASE                       .
TL/CNL – 2.ª FASE .
 
libro para colorear de Peppa pig, ideal para educación inicial
libro para colorear de Peppa pig, ideal para educación iniciallibro para colorear de Peppa pig, ideal para educación inicial
libro para colorear de Peppa pig, ideal para educación inicial
 
IV SES LUN 15 TUTO CUIDO MI MENTE CUIDANDO MI CUERPO YESSENIA 933623393 NUEV...
IV SES LUN 15 TUTO CUIDO MI MENTE CUIDANDO MI CUERPO  YESSENIA 933623393 NUEV...IV SES LUN 15 TUTO CUIDO MI MENTE CUIDANDO MI CUERPO  YESSENIA 933623393 NUEV...
IV SES LUN 15 TUTO CUIDO MI MENTE CUIDANDO MI CUERPO YESSENIA 933623393 NUEV...
 
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...
 
Aedes aegypti + Intro to Coquies EE.pptx
Aedes aegypti + Intro to Coquies EE.pptxAedes aegypti + Intro to Coquies EE.pptx
Aedes aegypti + Intro to Coquies EE.pptx
 
Fichas de Matemática TERCERO DE SECUNDARIA.pdf
Fichas de Matemática TERCERO DE SECUNDARIA.pdfFichas de Matemática TERCERO DE SECUNDARIA.pdf
Fichas de Matemática TERCERO DE SECUNDARIA.pdf
 
FICHA DE MONITOREO Y ACOMPAÑAMIENTO 2024 MINEDU
FICHA DE MONITOREO Y ACOMPAÑAMIENTO  2024 MINEDUFICHA DE MONITOREO Y ACOMPAÑAMIENTO  2024 MINEDU
FICHA DE MONITOREO Y ACOMPAÑAMIENTO 2024 MINEDU
 
Fichas de matemática DE PRIMERO DE SECUNDARIA.pdf
Fichas de matemática DE PRIMERO DE SECUNDARIA.pdfFichas de matemática DE PRIMERO DE SECUNDARIA.pdf
Fichas de matemática DE PRIMERO DE SECUNDARIA.pdf
 
SIMULACROS Y SIMULACIONES DE SISMO 2024.docx
SIMULACROS Y SIMULACIONES DE SISMO 2024.docxSIMULACROS Y SIMULACIONES DE SISMO 2024.docx
SIMULACROS Y SIMULACIONES DE SISMO 2024.docx
 
5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf
5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf
5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf
 
DIA INTERNACIONAL DAS FLORESTAS .
DIA INTERNACIONAL DAS FLORESTAS         .DIA INTERNACIONAL DAS FLORESTAS         .
DIA INTERNACIONAL DAS FLORESTAS .
 
La luz brilla en la oscuridad. Necesitamos luz
La luz brilla en la oscuridad. Necesitamos luzLa luz brilla en la oscuridad. Necesitamos luz
La luz brilla en la oscuridad. Necesitamos luz
 
Manejo del Dengue, generalidades, actualización marzo 2024 minsa
Manejo del Dengue, generalidades, actualización marzo 2024 minsaManejo del Dengue, generalidades, actualización marzo 2024 minsa
Manejo del Dengue, generalidades, actualización marzo 2024 minsa
 
4º SOY LECTOR PART2- MD EDUCATIVO.p df PARTE
4º SOY LECTOR PART2- MD  EDUCATIVO.p df PARTE4º SOY LECTOR PART2- MD  EDUCATIVO.p df PARTE
4º SOY LECTOR PART2- MD EDUCATIVO.p df PARTE
 

APO1 - Presentacion nivel 3

  • 1. ALGORÍTMICA Y PROGRAMACIÓN 1 (APO 1) NIVEL 3 Mario José Villamizar Cano mj.villamizar24@uniandes.edu.co Oficina ML-648 http://sistemas.uniandes.edu.co/~mj.villamizar24/dokuwiki/doku.php Grupo de Tecnologías de Información y Comunicación (COMIT) Departamento de Ingeniería de Sistemas y Computación Universidad de los Andes, Bogotá D.C., Colombia
  • 3. NIVEL Temas principales Contenedoras de tamaño fijo Declaración de un arreglo Inicialización de un arreglo Acceso a los elementos de un arreglo Componentes de una instrucción repetitiva Patrones de algoritmos para instrucciones repetitivas NIVEL 3
  • 4. TEMAS PRINCIPALES Contenedoras de tamaño fijo (simples y objetos) Contenedoras de tamaño variable (objetos) Instrucciones repetitivas Creación de una clase completa en Java Entender la documentación de Java (Javadoc) NIVEL 3
  • 5. CASOS DE ESTUDIO NIVEL 3 Caso de estudio 1: Las Notas de un Curso Contenedoras de tamaño fijo con tipos de datos simples
  • 6. CASOS DE ESTUDIO NIVEL 3 Caso de estudio 2: Reservas de un vuelo Contenedoras de tamaño fijo con objetos
  • 7. CASOS DE ESTUDIO NIVEL 3 Caso de estudio 3: Tienda de Libros Contenedoras de tamaño variable
  • 8. HOJAS DE TRABAJO Hojas de trabajo 1: Parqueadero NIVEL 3
  • 9. HOJAS DE TRABAJO Hojas de trabajo 2: Lista de Contactos NIVEL 3
  • 10. HOJAS DE TRABAJO Ejemplo 1: Ahorcado NIVEL 3
  • 11. HOJAS DE TRABAJO Ejemplo 2: Observatorio Astronómico NIVEL 3
  • 12. HOJAS DE TRABAJO Ejemplo 3: El Censo NIVEL 3
  • 13. CASO DE ESTUDIO – LAS NOTAS DE UN CURSO NIVEL 3
  • 14. CONTENEDORAS DE TAMAÑO FIJO - ARREGLOS Utilizadas cuando se tienen un número fijo de elementos Todos los elementos se almacenan bajo una misma variable o atributo Numeración desde cero hasta el tamaño del arreglo menos uno Ejemplo: 3.5 2.8 5.0 3.2 2.1 4.5 3.6 5.0 4.9 2.7 4.7 3.4 0 1 2 3 4 5 6 7 8 9 10 11 Valores (datos simples u objetos) Posiciones: Tamaño del arreglo: 12 notas NIVEL 3
  • 15. DECLARACIÓN DE UN ARREGLO La definición de un arreglo public class Curso { //---------------------------------------------------------------- // Constantes //---------------------------------------------------------------- private final static int TOTAL_EST = 12; //---------------------------------------------------------------- // Atributos //---------------------------------------------------------------- private double [ ] notas; } notas NIVEL 3
  • 16. INICIALIZACIÓN DE UN ARREGLO Utilizada para definir el número de elementos que va a tener el arreglo y reservar el espacio en memoria. En este momento el valor de cada elemento es indefinido public class Curso { //---------------------------------------------------------------- // Constructores //---------------------------------------------------------------- public Curso( ) { notas = new double [TOTAL_EST]; } } d d d d d d d d d d d d notas d = double NIVEL 3
  • 17. ACCESO A LOS ELEMENTOS DE UN ARREGLO Un índice permite acceder y modificar un elemento de un arreglo public class Curso { public void modificarValores( ) { notas[0] = 2.0; notas[1] = 3.0; notas[2] = 4.0; notas[3] = 5.0; } } 2.0 3.0 4.0 5.0 d d d d d d d d notas d = double NIVEL 3
  • 18. ACCESO A LOS ELEMENTOS DE UN ARREGLO Un índice permite acceder y modificar un elemento de un arreglo public class Curso { public void consultarValores( ) { double nota0 = notas[0] ; double nota1 = notas[1] ; double nota2 = notas[2] ; notas[3] = 4.5; double nota3 = notas[3] ; tamanio = notas.length; } } 2.0 3.0 4.0 4.5 d d d d d d d d notas d = double Operador especial de Java que permite consultar el tamaño de un arreglo. NIVEL 3
  • 19. INTRUCCIONES REPETITIVAS Elementos del while <inicio> while( <condición> ) { <cuerpo> <avance> } Ejemplo con while (Clase Curso) public double darPromedio( ) { double suma = 0.0; int indice = 0; while( indice < TOTAL_EST ) { suma += notas[indice]; indice++; } return suma/TOTAL_EST; } 3.5 2.8 5.0 3.2 2.1 4.5 3.6 5.0 4.9 2.7 4.7 3.4 0 1 2 3 4 5 6 7 8 9 10 11 notas NIVEL 3
  • 20. INTRUCCIONES REPETITIVAS Elementos del for <inicio1> for (<inicio2>; <condición>; <avance> ) { <cuerpo> } NIVEL 3
  • 21. INTRUCCIONES REPETITIVAS Elementos del for public double darPromedio( ) { double suma = 0.0; for( int indice = 0; indice < TOTAL_EST; indice++) { suma += notas[indice]; } return suma/TOTAL_EST; } 3.5 2.8 5.0 3.2 2.1 4.5 3.6 5.0 4.9 2.7 4.7 3.4 0 1 2 3 4 5 6 7 8 9 10 11 notas NIVEL 3
  • 22. PATRONES DE ALGORITMOS Patrón de recorrido total Para modificar algunos elementos del arreglo Ejemplo: Definir un método en la clase Curso que adiciona 0.2 a los estudiantes con nota inferior a 3.0 Para calcular alguna propiedad sobre los elementos del arreglo Ejemplo: Definir un método en la clase Curso que retorne el número de estudiantes que aprobaron el curso (nota mayor o igual a 3). 3.5 2.8 5.0 3.2 2.1 4.5 3.6 5.0 4.9 2.7 4.7 3.4 0 1 2 3 4 5 6 7 8 9 10 11 notas NIVEL 3
  • 23. PATRONES DE ALGORITMOS Patrón de recorrido parcial Para modificar algunos elementos del arreglo Ejemplo: Definir un método en la clase Curso que incremente la nota de los estudiantes en 0.5 hasta que algún estudiante obtenga una nota superior o igual a 4.5. Para calcular alguna propiedad sobre los elementos del arreglo Ejemplo: Definir un método en la clase Curso que retorne si algún estudiantes sacó 5.0 en el curso. 3.5 2.8 5.0 3.2 2.1 4.5 3.6 5.0 4.9 2.7 4.7 3.4 0 1 2 3 4 5 6 7 8 9 10 11 notas NIVEL 3
  • 24. PATRONES DE ALGORITMOS Patrón de doble recorrido Para calcular alguna propiedad sobre los elementos del arreglo Ejemplo: Definir un método en la clase Curso que retorne la nota que aparece el mayor número de veces. 3.5 2.8 5.0 3.2 2.1 4.5 3.6 5.0 4.9 2.7 4.7 3.4 0 1 2 3 4 5 6 7 8 9 10 11 notas NIVEL 3
  • 25. PRÓXIMA CLASE - LABORATORIO DESARROLLO DE LAS TAREA 1, 2, 3, 4 Y 5 NIVEL 3
  • 27. CONTENEDORAS DE TAMAÑO FIJO – ARREGLOS MANEJO DE OBJETOS NIVEL 3
  • 28. CASO DE ESTUDIO DEL AVIÓN – ARREGLOS DE OBJETOS NIVEL 3
  • 29. CASO DE ESTUDIO DEL AVIÓN – ARREGLOS DE OBJETOS NIVEL 3
  • 30. CONTENEDORAS DE TAMAÑO FIJO ALMACENANDO OBJETOS NIVEL 3
  • 31. DECLARACIÓN DE UN ARREGLO DE OBJETOS La definición de un arreglo de objetos public class Avion { //---------------------------------------------------------------- // Constantes //---------------------------------------------------------------- public final static int SILLAS_EJECUTIVAS = 8; //---------------------------------------------------------------- // Atributos //---------------------------------------------------------------- private Silla[ ] sillasEjecutivas; } NIVEL 3
  • 32. INICIALIZACIÓN DE UN ARREGLO DE OBJETOS La inicialización de un arreglo de objetos public class Avion { public final static int SILLAS_EJECUTIVAS = 8; //---------------------------------------------------------------- // Constructores //---------------------------------------------------------------- public Avion() { sillasEjecutivas = new Silla[SILLAS_EJECUTIVAS]; } } NIVEL 3
  • 33. INTRUCCIONES REPETITIVAS Elementos del for-each for (NombreClase nombreObjeto: arreglo/vector ) { <cuerpo> } NIVEL 3
  • 34. EJERCICIOS CON ARREGLOS DE OBJETOS Ejercicios con arreglos de objetos En la clase Avion declarar un método denominado contarSillasEjecutivasDesocupadas, el cual retorna el número de sillas ejecutivas que están desocupadas. En la clase Avion declarar un método denominado buscarPasajeroEjecutivo el cual retorna la Silla en la que se encuentra el pasajero identificado con la cédula que se pasa como parámetro. Si no hay ningún pasajero con la cédula el método debe retornar null. En la clase Avion declarar un método denominado buscarSillaEconomicaLibre el cual retorna una silla económica disponible en la localización recibida como parámetro (ventana, centro o pasillo). Si no existe ninguna el método deberá retornar null. NIVEL 3
  • 35. EJERCICIOS CON ARREGLOS DE OBJETOS Ejercicios con arreglos de objetos En la clase Avion declarar un método denominado asignarSillaEconomica, el cual asigna al pasajero que recibe como parámetro una silla en clase económica que esté libre (en la ubicación recibida como parámetro). Si el proceso tiene éxito retorna verdadero, en caso contrario, retorna falso. En la clase Avion declarar un método denominado anularReservaEjecutivo el cual anula la reserva en clase ejecutiva que tenía el pasajero con la cédula recibida como parámetro. Retorna verdadero si el proceso tiene éxito. En la clase Avion declarar un método denominado contarVentanasEconomicas el cual retorna el número de puestos disponibles en una ventana, en la zona económica del avión. NIVEL 3
  • 36. EJERCICIOS CON ARREGLOS DE OBJETOS Ejercicios con arreglos de objetos En la clase Avion declarar un método denominado hayDosHomonimosEconomica, el cual informa si en la zona económica del avión hay dos personas que se llaman igual. Patrón de doble recorrido. NIVEL 3
  • 37. DESARROLLO DE LAS TAREA 6, 7, 8, 9 PRÓXIMA CLASE ANALIZAR EL CASO DE ESTUDIO 3 – TIENDA DE LIBROS CONTENEDORAS DE TAMAÑO VARIABLE TODAS LAS TAREAS DEL LIBRO NIVEL 3
  • 39. CONTENEDORAS DE TAMAÑO VARIABLE MANEJO DE OBJETOS NIVEL 3
  • 40. NIVEL 3 Contenedoras de tamaño variable Caso de estudio de la tienda de libros Declaración de un vector de objetos Inicialización y tamaño de un vector de objetos Acceso a los elementos de un vector de objetos Agregar elementos a un vector de objetos Reemplazar un elemento de un vector de objetos Eliminar un elemento de un vector de objetos Ejercicios del caso de estudio de la tienda de libros Uso de ciclos en otros contextos Creación de una clase en Java NIVEL 3
  • 41. CASO DE ESTUDIO DE LA TIENDA DE LIBROS NIVEL 3
  • 42. CASO DE ESTUDIO DE LA TIENDA DE LIBEROS CONTENEDORAS DE TAMAÑO VARIABLE (VECTOR) NIVEL 3
  • 43. CONTENEDORA DE TAMAÑO VARIABLE (VECTORES) En Java existen varias clases para manejar contenedoras de tamaño variable, en este nivel se va a utilizar la clase ArrayList. En un ArrayList no se pueden almacenar grupos de atributos de tipo simple, sino únicamente grupos de objetos. En este nivel se va a llamar Vector a cualquier implementación de una contenedora de tamaño variable. NIVEL 3
  • 44. DECLARACIÓN DE UN VECTOR La definición de un vector de objetos public class TiendaDeLibros { //---------------------------------------------------------------- // Atributos //---------------------------------------------------------------- private ArrayList<Libro> catalogo; } NIVEL 3
  • 45. DECLARACIÓN DE UN VECTOR La definición de un vector de objetos public class Libro { //---------------------------------------------------------------- // Atributos //---------------------------------------------------------------- private ArrayList<Transaccion> transacciones; } NIVEL 3
  • 46. INICIALIZACIÓN DE UN VECTOR DE OBJETOS La inicialización de un vector de objetos se realiza en el constructor de la clase que lo contiene. public class TiendaDeLibros { //---------------------------------------------------------------- // Constructores //---------------------------------------------------------------- public TiendaDeLibros() { catalogo = new ArrayList<Libro>( ); } } NIVEL 3
  • 47. INICIALIZACIÓN DE UN VECTOR DE OBJETOS En los vectores no es necesario definir el tamaño, en los arreglos es indispensable hacerlo. public class Libro { //---------------------------------------------------------------- // Constructores //---------------------------------------------------------------- public Libro() { transacciones = new ArrayList<Transaccion>( ); } } NIVEL 3
  • 48. AGREGAR ELEMENTOS A UN VECTOR DE OBJETOS Adición de elementos a u vector de objetos public class TiendaDeLibros { public void agregarTresLibros( ) { Libro lb1 = new Libro(“Mi libro 1”, “0011”, 100000); Libro lb2 = new Libro(“Mi libro 2”, “0012”, 200000); Libro lb3 = new Libro(“Mi libro 3”, “0013”, 300000); catalogo.add(lb1); } } NIVEL 3
  • 49. AGREGAR ELEMENTOS A UN VECTOR DE OBJETOS Adición de elementos a u vector de objetos public class TiendaDeLibros { public void agregarTresLibros( ) { Libro lb1 = new Libro(“Mi libro 1”, “0011”, 100000); Libro lb2 = new Libro(“Mi libro 2”, “0012”, 200000); Libro lb3 = new Libro(“Mi libro 3”, “0013”, 300000); catalogo.add(lb1); catalogo.add(lb2); } } NIVEL 3
  • 50. AGREGAR ELEMENTOS A UN VECTOR DE OBJETOS Adición de elementos a u vector de objetos public class TiendaDeLibros { public void agregarTresLibros( ) { Libro lb1 = new Libro(“Mi libro 1”, “0011”, 100000); Libro lb2 = new Libro(“Mi libro 2”, “0012”, 200000); Libro lb3 = new Libro(“Mi libro 3”, “0013”, 300000); catalogo.add(lb1); catalogo.add(lb2); catalogo.add(0, lb3); } } NIVEL 3
  • 51. ACCESO A LOS ELEMENTOS EN UN VECTOR DE OBJETOS Acceso a los elementos de un vector de objetos public class TiendaDeLibros { public void accederLibros() { Libro lb1 = catalogo.get(0); Libro lb2 = catalogo.get(1); } } NIVEL 3
  • 52. REEMPLAZAR UN ELEMENTO EN UN VECTOR DE OBJETOS Reemplazar un elemento de un vector de objetos public class TiendaDeLibros { public void reemplazarLibros() { Libro lb1 = (Libro) catalogo.get(0); Libro lb2 = (Libro) catalogo.get(1); catalogo.set(0, lb2); catalogo.set(1, lb1); } } NIVEL 3
  • 53. ELIMINAR UN ELEMENTO EN UN VECTOR DE OBJETOS Eliminar un elemento de un vector de objetos public class TiendaDeLibros { public void eliminarLibro() { Libro lb = catalogo.get(0); catalogo.remove(lb); } } NIVEL 3
  • 54. TAMAÑO DE UN VECTOR DE OBJETOS En los vectores el tamaño se conoce mediante el método size(), en lugar de utilizar el operador length empleado en los arreglos. public class TiendaDeLibros { public int darTamanoCatalogo( ) { return catalogo.size( ); } } NIVEL 3
  • 55. TAMAÑO DE UN VECTOR DE OBJETOS Determinar si un vector de objetos está vacío. public class TiendaDeLibros { public boolean estaVacioElCatalogo ( ) { return catalogo.isEmpty( ); } } NIVEL 3
  • 56. EJERCICIOS CON VECTORES DE OBJETOS Ejercicio - Recorrido Total En la clase TiendaDeLibros adicionar un nuevo método denominado darPrecioUnitarioPromedioCompraLibros, este método deberá retornar el precio unitario de compra promedio de los libros que hay en el catalogo de la tienda. En caso de que en el catálogo no hayan libros el método deberá retornar -1. Modificar el método metodo1 de la clase TiendaDeLibros para que retorne uno de los siguientes mensajes: El precio unitario de compra promedio de los libros que hay en el catálogo es: X No hay libros en el catálogo NIVEL 3
  • 57. EJERCICIOS CON VECTORES DE OBJETOS Ejercicio - Recorrido Parcial En la clase TiendaDeLibros agregar un método denominado buscarLibroPorISBN, este método recibe como parámetro el ISBN del libro que se está buscando. El método debe retornar el objeto del libro que tiene dicho ISBN, en caso que no haya un libro con el ISBN recibido como parámetro el método deberá retornar null. NIVEL 3
  • 58. EJERCICIOS CON VECTORES DE OBJETOS Ejercicio – Doble Recorrido En la clase TiendaDeLibros adicionar un nuevo método denominado hayDosLibrosConElMismoPrecioVenta, este método deberá retornar un valor indicando si en el catálogo de libros que hay en la tienda existen dos libros con el mismo precio de venta. Modificar el método metodo1 de la clase TiendaDeLibros para que retorne uno de los siguientes mensajes: Si hay dos libros con el mismo precio de venta en el catalogo No hay dos libros con el mismo precio de venta en el catalogo NIVEL 3
  • 59. EJERCICIOS CON VECTORES DE OBJETOS Ejercicio – Recorrido parcial En la clase TiendaDeLibros adicionar un método denominado eliminarLibro este método recibe como parámetro el ISBN del libro que se desea eliminar del catálogo, en caso de que en el catálogo haya un libro con ese ISBN, el libro debe ser eliminado. El método debe retornar un valor indicando si el libro pudo ser eliminado o no. Modificar el método metodo1 de la clase TiendaDeLibros para que retorne uno de los siguientes mensajes: El libro fue eliminado del catálogo El libro no fue eliminado del catálogo NIVEL 3
  • 60. EJERCICIOS CON VECTORES Tarea 10 de libro Tarea 11 del libro Tarea 12 del libro Tarea 13 del libro NIVEL 3