APO1 - Presentacion nivel 3
Upcoming SlideShare
Loading in...5
×
 

APO1 - Presentacion nivel 3

on

  • 5,959 views

Esta es la presentación del Nivel 3 del curso "ISIS-1204 Algorítmia y Programación por Objetos 1" (APO1) de la Universidad de los Andes, Bogotá, Colombia.

Esta es la presentación del Nivel 3 del curso "ISIS-1204 Algorítmia y Programación por Objetos 1" (APO1) de la Universidad de los Andes, Bogotá, Colombia.

Statistics

Views

Total Views
5,959
Views on SlideShare
5,486
Embed Views
473

Actions

Likes
1
Downloads
60
Comments
0

3 Embeds 473

http://jorgeportella.wordpress.com 467
http://www.edmodo.com 4
https://www.google.com.co 2

Accessibility

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    APO1 - Presentacion nivel 3 APO1 - Presentacion nivel 3 Presentation Transcript

    • NIVEL 3 ALGORÍTMICA Y PROGRAMACIÓN 1 (APO 1) Mario José Villamizar Cano mj.villamizar24@uniandes.edu.co Oficina ML-637http://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
    • NIVEL 3 REDES SOCIALES mjvc007@hotmail.com http://twitter.com/mariocloudhttp://linkedin.com/in/mariojosevillamizarcano
    • NIVEL 3 NIVELTemas principalesContenedoras de tamaño fijoDeclaración de un arregloInicialización de un arregloAcceso a los elementos de un arregloComponentes de una instrucción repetitivaPatrones de algoritmos para instrucciones repetitivas
    • NIVEL 3 TEMAS PRINCIPALESContenedoras de tamaño fijo (simples y objetos)Contenedoras de tamaño variable (objetos)Instrucciones repetitivasCreación de una clase completa en JavaEntender la documentación de Java (Javadoc)
    • NIVEL 3 CASOS DE ESTUDIO1 Caso de estudio: Las Notas de un CursoContenedoras de tamaño fijo con tipos de datos simples
    • NIVEL 3 CASOS DE ESTUDIO2 Caso de estudio: Reservas de un vueloContenedoras de tamaño fijo con objetos
    • NIVEL 3 CASOS DE ESTUDIO3 Caso de estudio: Tienda de LibrosContenedoras de tamaño variable
    • NIVEL 3 HOJAS DE TRABAJO2 Hojas de trabajo: Parqueadero y Lista de Contactos
    • NIVEL 3CASO 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 unoEjemplo: notasValores (datos simplesu objetos) 3.5 2.8 5.0 3.2 2.1 4.5 3.6 5.0 4.9 2.7 4.7 3.4 Posiciones: 0 1 2 3 4 5 6 7 8 9 10 11 Tamaño del arreglo: 12
    • NIVEL 3 DECLARACIÓN DE UN ARREGLOLa definición de un arreglo notaspublic class Curso{ //---------------------------------------------------------------- // Constantes //---------------------------------------------------------------- private final static int TOTAL_EST = 12; //---------------------------------------------------------------- // Atributos //---------------------------------------------------------------- private double [ ] notas;}
    • NIVEL 3 INICIALIZACIÓN DE UN ARREGLO Utilizada para definir el número de elementos que va a tener el arreglo yreservar el espacio en memoria. En este momento el valor de cada elemento esindefinido public class Curso { //---------------------------------------------------------------- // Constructores //---------------------------------------------------------------- public Curso( ) { notas = new double [TOTAL_EST]; } notas } d d d d d d d d d d d d d = double
    • NIVEL 3 ACCESO A LOS ELEMENTOS DE UN ARREGLOUn índice permite acceder y modificar un elemento de un arreglopublic class Curso{ public void modificarValores( ) { notas[0] = 2.0; notas[1] = 3.0; notas[2] = 4.0; notas[3] = 5.0; }} notas 2.0 3.0 4.0 5.0 d d d d d d d d d = double
    • NIVEL 3 ACCESO A LOS ELEMENTOS DE UN ARREGLOUn índice permite acceder y modificar un elemento de un arreglopublic class Curso{ public void consultarValores( ) { Operador especial de Java que double nota0 = notas[0] ; permite consultar el tamaño de double nota1 = notas[1] ; un arreglo. double nota2 = notas[2] ; notas[3] = 4.5; double nota3 = notas[3] ; tamanio = notas.length; notas }} 2.0 3.0 4.0 4.5 d d d d d d d d d = double
    • NIVEL 3 INTRUCCIONES REPETITIVASElementos del while Ejemplo con while (Clase Curso) <inicio> public double darPromedio( ) while( <condición> ) { { double suma = 0.0; <cuerpo> int indice = 0; <avance> while( indice < TOTAL_EST ) } { suma += notas[indice]; indice++; } return suma/TOTAL_EST; }notas 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
    • NIVEL 3 INTRUCCIONES REPETITIVASElementos del for<inicio1>for (<inicio2>; <condición>; <avance> ){ <cuerpo>}
    • NIVEL 3 INTRUCCIONES REPETITIVASElementos del for public double darPromedio( ) { double suma = 0.0; for( int indice = 0; indice < TOTAL_EST; indice++) { suma += notas[indice]; } return suma/TOTAL_EST; }notas 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
    • NIVEL 3 PATRONES DE ALGORITMOSPatró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).notas 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
    • NIVEL 3 PATRONES DE ALGORITMOSPatró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.notas 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
    • NIVEL 3 PATRONES DE ALGORITMOSPatró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.notas 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
    • NIVEL 3 PRÓXIMA CLASE - LABORATORIODESARROLLO DE LAS TAREA 2, 3, 4 Y 5
    • NIVEL 3PREGUNTAS
    • NIVEL 3CONTENEDORAS DE TAMAÑO FIJO – ARREGLOS MANEJO DE OBJETOS
    • NIVEL 3CASO DE ESTUDIO DEL AVIÓN – ARREGLOS DE OBJETOS
    • NIVEL 3CASO DE ESTUDIO DEL AVIÓN – ARREGLOS DE OBJETOS
    • NIVEL 3CONTENEDORAS DE TAMAÑO FIJO ALMACENANDO OBJETOS
    • NIVEL 3 DECLARACIÓN DE UN ARREGLO DE OBJETOSLa definición de un arreglo de objetospublic class Avion{ //---------------------------------------------------------------- // Constantes //---------------------------------------------------------------- public final static int SILLAS_EJECUTIVAS = 8; //---------------------------------------------------------------- // Atributos //---------------------------------------------------------------- private Silla[ ] sillasEjecutivas;}
    • NIVEL 3 INICIALIZACIÓN DE UN ARREGLO DE OBJETOSLa inicialización de un arreglo de objetospublic class Avion{ public final static int SILLAS_EJECUTIVAS = 8; //---------------------------------------------------------------- // Constructores //---------------------------------------------------------------- public Avion() { sillasEjecutivas = new Silla[SILLAS_EJECUTIVAS]; }}
    • NIVEL 3 EJERCICIOS CON ARREGLOS DE OBJETOS Ejercicios con arreglos de objetosEn la clase Avion declarar un método denominadocontarSillasEjecutivasDesocupadas, el cual retorna el número de sillasejecutivas que están desocupadas.En la clase Avion declarar un método denominado buscarPasajeroEjecutivo elcual retorna la Silla en la que se encuentra el pasajero identificado con la cédulaque se pasa como parámetro. Si no hay ningún pasajero con la cédula el métododebe retornar null.En la clase Avion declarar un método denominado buscarSillaEconomicaLibreel cual retorna una silla económica disponible en la localización recibida comopará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 objetosEn la clase Avion declarar un método denominado asignarSillaEconomica, elcual asigna al pasajero que recibe como parámetro una silla en clase económicaque 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 elcual anula la reserva en clase ejecutiva que tenía el pasajero con la cédularecibida como parámetro. Retorna verdadero si el proceso tiene éxito.En la clase Avion declarar un método denominadocontarVentanasEconomicas el cual retorna el número de puestos disponiblesen una ventana, en la zona económica del avión.
    • NIVEL 3 EJERCICIOS CON ARREGLOS DE OBJETOS Ejercicios con arreglos de objetosEn la clase Avion declarar un método denominadohayDosHomonimosEconomica, el cual informa si en la zona económica delavión hay dos personas que se llaman igual. Patrón de doble recorrido.
    • NIVEL 3 PRÓXIMA CLASEANALIZAR EL CASO DE ESTUDIO 3 – TIENDA DE LIBROS CONTENEDORAS DE TAMAÑO VARIABLE TODAS LAS TAREAS DEL LIBRO
    • NIVEL 3PREGUNTAS
    • NIVEL 3CONTENEDORAS DE TAMAÑO VARIABLE MANEJO DE OBJETOS
    • NIVEL 3 NIVEL 3Contenedoras de tamaño variableCaso de estudio de la tienda de librosDeclaración de un vector de objetosInicialización y tamaño de un vector de objetosAcceso a los elementos de un vector de objetosAgregar elementos a un vector de objetosReemplazar un elemento de un vector de objetosEliminar un elemento de un vector de objetosEjercicios del caso de estudio de la tienda de librosUso de ciclos en otros contextosCreación de una clase en Java
    • NIVEL 3CASO DE ESTUDIO DE LA TIENDA DE LIBROS
    • NIVEL 3 CASO DE ESTUDIO DE LA TIENDA DE LIBEROSCONTENEDORAS 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 unacontenedora de tamaño variable.
    • NIVEL 3 DECLARACIÓN DE UN VECTORLa definición de un vector de objetospublic class TiendaLibros{ //---------------------------------------------------------------- // Atributos //---------------------------------------------------------------- private ArrayList catalogo; private CarroCompras carrito;}
    • NIVEL 3 DECLARACIÓN DE UN VECTORLa definición de un vector de objetospublic class CarroCompras{ //---------------------------------------------------------------- // Atributos //---------------------------------------------------------------- private ArrayList itemsCompra;}
    • NIVEL 3 INICIALIZACIÓN DE UN VECTOR DE OBJETOS La inicialización de un vector de objetos se realiza en el constructor de laclase que lo contiene. public class TiendaLibros { //---------------------------------------------------------------- // Constructores //---------------------------------------------------------------- public TiendaLibros() { catalogo = new ArrayList( ); carrito = new CarroCompras( ); } }
    • NIVEL 3 INICIALIZACIÓN DE UN VECTOR DE OBJETOS En los vectores no es necesario definir el tamaño, en los arreglos esindispensable hacerlo. public class CarroCompras { //---------------------------------------------------------------- // Constructores //---------------------------------------------------------------- public CarroCompras() { itemsCompra = new ArrayList( ); } }
    • NIVEL 3 AGREGAR ELEMENTOS A UN VECTOR DE OBJETOSAdición de elementos a u vector de objetospublic class TiendaLibros{ 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 OBJETOSAdición de elementos a u vector de objetospublic class TiendaLibros{ 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 OBJETOSAdición de elementos a u vector de objetospublic class TiendaLibros{ 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 OBJETOSAcceso a los elementos de un vector de objetospublic class TiendaLibros{ public void accederLibros() { Libro lb1 = (Libro) catalogo.get(0); Libro lb2 = (Libro) catalogo.get(1); }}
    • NIVEL 3REEMPLAZAR UN ELEMENTO EN UN VECTOR DE OBJETOSReemplazar un elemento de un vector de objetospublic class TiendaLibros{ 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 OBJETOSEliminar un elemento de un vector de objetospublic class TiendaLibros{ public void eliminarLibro() { Libro lb = (Libro)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 deutilizar el operador length empleado en los arreglos. public class TiendaLibros { public int darTamanoCatalogo( ) { return catalogo.size( ); } }
    • NIVEL 3 TAMAÑO DE UN VECTOR DE OBJETOSDeterminar si un vector de objetos está vacío.public class TiendaLibros{ public boolean estaVacioElCatalogo ( ) { return catalogo.isEmpty( ); }}
    • NIVEL 3 EJERCICIOS CON VECTORES DE OBJETOS Ejercicio - Recorrido TotalEn la clase TiendaLibros adicionar un nuevo método denominadodarPrecioUnitarioPromedioLibro, este método deberá retornar el preciounitario promedio de los libros que hay en el catalogo de la tienda. En caso deque en el catálogo no hayan libros el método deberá retornar -1.Modificar el método metodo1 de la clase TiendaLibros para que retorne uno delos siguientes mensajes:El precio unitario promedio de los libros que hay en el catálogo es: XNo hay libros en el catálogo
    • NIVEL 3 EJERCICIOS CON VECTORES DE OBJETOS Ejercicio - Recorrido ParcialEn la clase TiendaLibros agregar un método denominadobuscarLibroPorISBN, este método recibe como parámetro el ISBN del libro quese está buscando. El método debe retornar el objeto del libro que tiene dichoISBN, en caso que no haya un libro con el ISBN recibido como parámetro elmétodo deberá retornar null.
    • NIVEL 3 EJERCICIOS CON VECTORES DE OBJETOS Ejercicio – Doble RecorridoEn la clase TiendaLibros adicionar un nuevo método denominadohayDosLibrosConElMismoTitulo, este método deberá retornar un valorindicando si en el catálogo de libros que hay en la tienda existen dos libros con elmismo título.Modificar el método metodo1 de la clase TiendaLibros para que retorne uno delos siguientes mensajes:Si hay dos libros con el mismo título en el catalogoNo hay dos libros con el mismo título en el catalogo
    • NIVEL 3 EJERCICIOS CON VECTORES DE OBJETOS Ejercicio – Recorrido parcialEn la clase TiendaLibros adicionar un método denominado eliminarLibro estemétodo recibe como parámetro el ISBN del libro que se desea eliminar delcatálogo, en caso de que en el catálogo haya un libro con ese ISBN, el libro debeser eliminado. El método debe retornar un valor indicando si el libro pudo sereliminado o no.Modificar el método metodo1 de la clase TiendaLibros para que retorne uno delos siguientes mensajes:El libro fue eliminado del catálogoEl libro no fue eliminado del catálogo
    • NIVEL 3 EJERCICIOS CON VECTORESTarea 10 de libroTarea 11 del libro
    • NIVEL 3PREGUNTAS