Definición de situaciones y manejo de casos

Slides:



Advertisements
Presentaciones similares
Nuestro reto es educar al pensamiento, para que razone de acuerdo a ciertas reglas; con ello podremos ser más eficientes al momento en que ordenamos.
Advertisements

Clase 2 Tipos de datos Asignación de valores Estructura IF Ejercicios
Entendiendo la definición de clases
Elementos básicos del Lenguaje
El proceso de desarrollo de software
Técnico en programación de Software
Tema 2: Lenguaje PHP básico
Tipo de Dato Abstracto Tipos de datos:
UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO
ALGORÍTMICA Dpto. Ingeniería de Sistemas y Automática
3. INTRODUCCIÓN A LA PROGRAMACIÓN
Abstracción de Datos La abstracción es un recurso fundamental en la programación orientada a objetos y está además fuertemente ligado a reusabilidad.
ESTRUCTURAS DE SECUENCIA
Conceptos Básicos de Java
Material Elaborado por: Lic. Saily González. CONTENIDO 2.1- Estructura de una Aplicación JAVA 2.2- Elementos básicos de la Programación JAVA Comentarios.
Tema 7: Polimorfismo Antonio J. Sierra. Índice Introducción. Sobrecarga de métodos. Objetos como parámetros. Paso de argumentos. Devolución de objetos.
POO Java Módulo 3 Elementos de programas Identificadores
Tema 6: Clases Antonio J. Sierra.
ESTRUCTURAS DE CONTROL
UNIVERSIDAD DE MANAGUA I CUATRIMESTRE INTRODUCCION A LA PROGRAMACION
Semana 5 Subprogramas..
Características de “C”
Características de “C” Y Esta conformado por un Ambiente Integrado. Y Es un Lenguaje de Nivel medio. Y Es un compilador. YContiene un conjunto de palabras.
Clase Teórica No. 4 Programación IV
El lenguaje de programación Java
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS Objetos.
Java. Java nació el año 1991, por un par de ingenieros de la Sun Microsystems.
Capítulo 1 “Elementos de Programación”
PHP TODO SOBRE PHP.
Programación Orientada a Objetos usando CONSTRUCTORES DESTRUCTORES.
Computación II Repaso de java Karina Figueroa Mora.
Lenguaje de programación Java UNIVERSIDAD REGIONAL DEL SURESTE.
DEFINICIÓN  Es una forma de entender un problema identificando las entidades principales que se encuentran en el.  Es una forma de desarrollar un sistema.
El Lenguaje C++. Creación de programas simples de C++ Builder como ejercicios en C++. Los elementos de control fundamentales en C++, incluyendo operadores.
Resumen Fundamentos de Programación/ Programación I
Teoría – Alejandro Gonzalez
Algoritmo Ing. Maria Rosana Heredia
Programación orientada a objetos. El método main es el comportamiento por el cual comienzan todos los programas en Java, de la misma forma en la que C,
Unidad 1: FUNDAMENTOS DE COMPUTACIÓN Y PSEUDOLENGUAJE
Programanción I Ing. Cristhian Garita Fonseca
Elementos básicos del lenguaje
Nivel 2. Definición de situaciones y manejo de casos Fundamentos de programación Villalobos JA, Casallas R. Prentice Hall, Presentación creada por.
Elementos básicos del lenguaje
IDENTIFICADORES Un identificador es un "nombre" que nos permite dirigirnos específicamente a una de las entidades propias del lenguaje, es decir, son los.
FUNDAMENTOS DE PROGRAMACIÓN
Términos algoritmo diseñar algoritmo implementar algoritmo
UNIVERSIDAD TECNICA PERTICULAR DE LOJA
 Un lenguaje se puede definir como un conjunto de palabras y formas de expresión por medio de las cuales se comunican y relacionan miembros de una comunidad.

Fundamentos de Programación
Presente un cuestionario con los aspectos mas importantes sobre los
Definición y cumplimiento de responsabilidades Giovanni Hernández P. Nivel 4.
Manejo de grupos de atributos Giovanni Hernández P. Nivel 3.
Fundamentos de Programación
Ing. Esp. Ricardo Cujar.  Lenguaje de programación orientado a objetos.  Desarrollado por Sun MicroSystems.  Independiente del Sistema Operativo gracias.
Estructuras de Decisión
Lic. Carla Aguirre Montalvo
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS Caso.
Java Java es un lenguaje de programación presentado en 1995 enfocado a: soportar los fundamentos de la programación orientada a objetos. generar código.
EL TIPO DE DATO LOGICO y constantes.
ESTRUCTURAS DE DECISION MULTIPLE
Elementos básicos.  Fuertemente tipeado.  Sintaxis similar a C/C++.  Sin punteros: garbage collection.  Portable.  Integra librerías para objetos.
PROGRAMACIÓN Grupo de Modelamiento de Sistemas
LE, EI, Profesor Ramón Castro Liceaga UNIVERSIDAD LATINA (UNILA) V. GESTIÓN DE TIPOS Y GENERACIÓN DE CÓDIGOS.
Estructuras de control selectivas Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Versión Práctica 3.
Tema 8: Programación estructurada Introducción La importancia del conocimiento de programación es mucho mayor de lo que se piensa. Aprender a programar.
Las interfaces Predicate y Function Versión Unidad Didáctica 17 Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos.
Programación en Java Introducción a Java. Reseña histórica Surge en 1991 por Sun Microsystems Desarrollado para electrodomésticos Se buscaba un código.
Tipos genéricos Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Unidad Didáctica 3.
Programación en Java Introducción a Java. Reseña histórica Surge en 1991 por Sun Microsystems Desarrollado para electrodomésticos Se buscaba un código.
Transcripción de la presentación:

Definición de situaciones y manejo de casos Giovanni Hernández P. Nivel 2

CASO DE ESTUDIO Enunciado En algunas tiendas, existen procesos de control de inventarios y de control de estadísticas para poder realizar pedidos. Además, se realizan actividades de mercadeo con sus productos más vendidos. Estos procesos y actividades sirven para poder tomar decisiones en cuanto a los productos que se deben vender en la tienda. En este caso, tenemos una pequeña tienda que vende cuatro productos, para cada uno de los cuales se debe manejar la siguiente información: (1) su nombre, (2) su tipo (puede ser un producto de papelería, de supermercado o de droguería), (3) la cantidad actual del producto en la tienda (número de unidades disponibles para la venta que hay en bodega), (4) el número de productos por debajo del cual se debe hacer un nuevo pedido al proveedor y (5) el precio base de venta por unidad. Para calcular el precio final de cada producto, se deben sumar los impuestos que define la ley. Dichos impuestos dependen del tipo de producto: uno de papelería tiene un IVA del 16%, uno de supermercado del 4% y uno de droguería del 12%. Eso quiere decir, que si un lápiz tiene un precio base de $10, el precio final será de $11,6 considerando que un lápiz es un producto de papelería, y sobre estos se debe pagar el 16% de impuestos. El programa de manejo de esta tienda debe permitir las siguientes operaciones: (1) vender a un cliente un cierto número de unidades de un producto, (2) hacer un pedido de un producto para el cual ya se llegó al tope mínimo definido y (3) mostrar algunas estadísticas de la tienda. Dichas estadísticas son: (a) el producto más vendido, (b) el producto menos vendido, (c) la cantidad total de dinero obtenido por las ventas de la tienda y (d) el promedio de ventas de la tienda (valor total de las ventas dividido por el número total de unidades vendidas de todos los productos).

Interfaz GUI

Entender el problema del caso de estudio tienda Taller No 1 Entender el problema del caso de estudio tienda

Nuevos elementos del modelado Caso de estudio (La tienda) Nuevos elementos del modelado Entero int Real double Cadena de caracteres String double valorUnitario = 11.6; Int valorPesos = (int) valorUnitario; 14 % 2  2 La parte entera de un valor real Calcular el residuo

Nuevos elementos del modelado Caso de estudio (La tienda) Valores lógicos (Verdadero - Falso) Valor lógico boolean Ej. Modelar la característica de un producto si es o no subsidiado Sintaxis Java public class Producto { private boolean subsidiado; } Valores que tiene  true, false

Nuevos elementos del modelado Caso de estudio (La tienda) Un carácter (Un carácter alfanumérico) Un carácter char Ej. Un producto clasificado en tres grupos: A, B, C, según su calidad Sintaxis Java public class Producto { private char calidad; } Valores que tiene  un solo carácter Se le asigna en comilla sencilla ‘ cadena de caracteres comilla doble “

Constantes para definir el dominio de un atributo Ej. Modelar las características del tipo de producto Supermercado Papelería Droguería

Constantes para definir el dominio de un atributo … public class Producto { // - - - - - - - - - - - - - - - // Constantes public final static int PAPELERIA = 1; public final static int SUPERMERCADO = 2; public final static int DROGUERIA = 3; // Atributos private int tipo; } Esta instrucción puede ir en Cualquier método de la clase Producto tipo = PAPELERIA; tipo = SUPERMERCADO; tipo = DROGUERIA; Las constantes siempre van en mayúsculas. Si el nombre los compone mas de una palabra se utiliza en “_” para unirlas.

Constantes para representar valores inmutables Valores que no van a cambiar durante la ejecución de un programa public class Producto { // - - - - - - - - - - - - - - - // Constantes private final static double IVA_PAPEL = 0.16; private final static double IVA_FARMACIA = 0.12; private final static double IVA_MERCADO = 0.04; } Equivale a precio = valorUnitario * (1 + IVA_MERCADO); precio = valorUnitario * (1 + 0.04);

Taller No 2 Mostrar el uso de constantes para representar los valores posibles de alguna característica

Manejo de asociaciones opcionales Modificar el enunciado de la tienda para que el programa maneje 1,2,3 y 4 productos Diagrama anterior Nuevo diagrama Cardinalidad : Define el No de instancias de una clase que se puede manejar a través de una asociación.

Manejo de asociaciones opcionales Modificar el enunciado de la tienda para que el programa maneje 1,2,3 y 4 productos Nuevo diagrama pr1 pr2 = null; pr3 = null; pr4 null : permite representar un objeto correspondiente a una asociación que no esta presente.

Mostrar declaraciones de las clases Tienda y Producto public class Tienda { // --------------------- // Atributos //---------------------- private double dineroEnCaja; // Relaciones private Producto pr1; private Producto pr2; private Producto pr3; private Producto pr4; }

Diagrama de clases

Mostrar las declaraciones de las clases Tienda y Producto Taller No 3 Mostrar las declaraciones de las clases Tienda y Producto

cantidadBodega > cantidadMinima Expresiones OPERADORES RELACIONALES Permiten determinar un valor de verdad (VERDADERO O FALSO) para una situación del mundo. Es igual que == valorUnitario == 55.75 Es diferente de != tipo != PAPELERIA Es menor que < cantidadBodega < 120 Es mayor que > cantidadBodega > cantidadMinima Es menor o igual que <= valorUnitario <= 100.0 Es mayor o igual que >= valorUnitario >= 100 Describen situaciones de un objeto

Identificar el funcionamiento los operadores relacionales Mapa Conceptual No 1 Identificar el funcionamiento los operadores relacionales

Expresiones OPERADORES LOGICOS Permiten describir situaciones mas complejas, a partir de varias expresiones relacionales o atributos de tipo boolean (Y) && tipo == SUPERMERCADO && totalProductosVendidos == 0 (O) || tipo == SUPERMERCADO || tipo == PAPELERIA (NO) ! !(tipo == PAPELERIA)

Expresiones OPERADORES SOBRE CADENAS DE CARACTERES Concatenación + return “Compre el producto” + nombre + “ por solo $” + valorUnitario; Comparación equals return nombre.equals(buscado); Extracción de un caracter charAt cd1.charAt(1)

Ej. String cad1 = “viva Pasto”; String cad2 = “viva pasto”; cad1.equals(cad2) false Existe una P mayúscula Cad1.equalsIgnoreCase(cad2) true Compara e ignora si son mayúsculas o minúsculas Cad1.charAt(1) ‘i’ Las cadenas de caracteres se enumeran desde 0

Otros operadores de asignación Operador ++: Se aplica a valores enteros Operador --: Se aplica a valores enteros Operador +=: Incrementa un atributo en cualquier valor Operador -=: Decrementa un atributo en cualquier valor cantidadBodega ++; cantidadBodega = cantidadBodega + 1;

Taller No 4 Generar habilidad en la utilización de asignaciones y las expresiones como un medio para transformar el estado de un objeto

Clases y objetos Diagrama de objetos

Creación de un objeto Producto p = new Producto(); :Producto nombre = tipo = valorUnitario = cantidadBodega = cantidadMinima = totalProductoVendidos = pr1 No tiene valores iniciales

Métodos constructores Permiten inicializar los valores de un objeto y son invocados automáticamente al momento de ejecutar la instrucción de creación Reglas: Se debe llamar igual que la clase No puede tener ningún tipo de retorno

Métodos constructores … Ej. Para la clase producto public Producto() { tipo = 0; nombre = “”; valorUnitario = 0.0; cantidadBodega = 0; cantidadMinima = 0; totalProductoVendidos = 0 }

Métodos constructores … Producto p = new Producto(); :Producto nombre = “” tipo = 0 valorUnitario = 0.0 cantidadBodega = 0 cantidadMinima = 0 totalProductoVendidos = 0 pr1 Con valores iniciales a través del constructor

Métodos constructores … Ej. Una nueva tienda acaba de abrir y quiere utilizar el programa a del caso de estudio con los siguientes productos: Frasco jarabe para la gripe, producto de droguería, con un valor base de $ 7.200 Botella de alcohol, producto de droguería, a $2.800 la unidad Kilo de queso, producto de supermercado, a $ 4.100 la unidad Resaltador, producto de papelería, a $ 3.500 la unidad

Métodos constructores … Producto Cantidad en bodega Tope mínimo Jarabe 14 10 Alcohol 12 8 Queso 4 Resaltador 20 Código Producto pr1 = new Producto(Producto.Drogueria, “Jarabe”, 7200.0, 14, 10)

Taller No 5 Generar habilidad en el uso de los constructores de las clases para crear escenarios

Instrucciones condicionales Permite plantear la solución al problema considerando los diferentes casos que se pueden presentar Ej. Cuando la cantidad que se desea vender es mayor a la que existe en bodega. Cuando la cantidad que se desea vender esta disponible en bodega.

Instrucciones condicionales… Caso Expresión que describe el caso Algoritmo para resolver el problema de ese caso 1 cantidad > cantidadBodega // Vende todas las unidades disponibles totalProductosVendidos += cantidadBodega; cantidadBodega = 0; 2 Cantidad <= cantidadBodega // vende lo pedido por el usuario totalProductosVendidos += cantidad; cantidadBodega -= cantidad;

Instrucciones condicionales… If () {} Else { } Codigo Java public class Producto { … if(cantidad > cantidadBodega) totalProductosVendidos += cantidadBodega; cantidadBodega = 0; } else totalProductosVendidos =+ cantidad; cantidadBodega -= cantidad;

Instrucciones condicionales… Condicionales en cascada Caso Expresión que describe el caso Algoritmo para resolver el problema de ese caso 1 (tipo==SUPERMERCADO) return IVA_MERCADO; 2 (tipo==DROGUERIA) return IVA_FARMACIA; 3 (tipo==PAPELERIA) return IVA_PAPEL;

Instrucciones condicionales… If () {} Else if() { } Else {} Codigo Java public double darIVA() { if(tipo == PAPELERIA) return IVA_PAPEL; } else if(tipo == SUPERMERCADO) return IVA_MERCADO; else return IVA_FARMACIA;

Identificar el funcionamiento de una instrucción condicional Mapa Conceptual Identificar el funcionamiento de una instrucción condicional

Taller No 6 Utilizar las instrucciones condicionales simples para expresar el cambio de estado que debe hacerse en un objeto, en cada uno de los casos identificados

Ej. Requerimiento Nombre R1-Dar el nombre del producto mas vendido entre el producto 1 y el producto 2 Resumen Se requiere calcular y retorna el producto que mas se ha vendido en la tienda, entre el producto1 y el producto2 Entradas Ninguna Resultados Se ha calculado y retornado el nombre del producto mas vendido.

Ej. Requerimiento Nombre R2-Dar el nombre del producto mas vendido entre el producto1, el producto2 y el prducto3. Resumen Se requiere calcular y retorna el producto que más se ha vendido en la tienda, entre el producto1 , el producto2 y el producto3. Entradas Ninguna Resultados Se ha calculado y retornado el nombre del producto mas vendido.

Ej. Requerimiento Nombre R3-Dar el nombre del producto mas vendido entre el producto1, el producto2 ,el prducto3 y el producto4. Resumen Se requiere calcular y retorna el producto que mas se ha vendido en la tienda, entre el producto1 , el producto2 , el producto3 y el producto4. Entradas Ninguna Resultados Se ha calculado y retornado el nombre del producto mas vendido.

Codigo Public String darProductoMasVendido() { int valor1 = p1.darProductosVendidos(); int valor2 = p2.darProductosVendidos(); int valor3 = p3.darProductosVendidos(); int valor4 = p4.darProductosVendidos(); if(valor1 > valor2 && valor1 > valor3 && valor1 > valor4) return p1.darNombre(); } else if(valor2 > valor1 && valor2 > valor3 && valor2 > valor4) return p2.darNombre(); else if(valor3 > valor1 && valor3 > valor2 && valor3 > valor4) return p3.darNombre(); else if(valor4 > valor1 && valor4 > valor2 && valor4 > valor3) return p4.darNombre();

Ej. Requerimiento Nombre R2-Dar el producto con menos existencias Resumen S requiere calcular y retornar el nombre del producto con menos existencias (Cantidad en bodega) Entradas Ninguna Resultados Se ha calculado y retornado el producto con menos existencias.

Instrucciones condicionales compuestas switch Representa un conjunto de casos Cada caso tiene un algoritmo diferente Cada caso debe esta identificado con un valor entero

Estructura de la instrucción switch en java switch(expresion) { case constante : solución del caso 1 break; case constante : solución del caso 2 …. }

Ej. public double darIva() { double iva = 0.0; switch( tipo) case PAPELERIA: iva = IVA_PAPEL; break; case SUPERMERCADO: iva = IVA_MERCADO; case DROGUERIA: iva = IVA_FARMACIA; } return iva;

Ej. Nombre R3-Dar el nombre del tipo de producto Resumen Retorna el nombre del tipo de producto. Por ejemplo, si el producto es de tipo SUPERMERCADO, debe retornar “El producto es de supermercado” Entradas Ninguna Resultados Retorna el nombre del tipo de producto. Método de la clase Producto

Ej. Nombre R4-Aumentar el precio del producto Resumen Aumenta el precio del producto de acuerdo con la siguiente regla: si es un producto de droguería debe aumentar el 1%, si es de supermercado el 3% y si es de papelería el 2% Entradas Ninguna Resultados El valor unitario del producto se ha aumentado en el porcentaje correspondiente. Método de la clase Producto

Ej. Nombre R5-Retorna el precio final del producto Resumen Retorna el precio final del producto identificado por el numero si el numero es 1 se debe retornar el precio del primer producto, si el numero es 2 se debe entregar el precio del producto 2, si el numero es 3 se debe entregar el precio del producto 3 y si el numero es 4 debe entregar el precio del producto 4. Entradas Numero de identificación Resultados Retorna el precio del producto de acuerdo con el numero de identificación. Método de la clase Producto

Ej. Nombre R5-Retorna el precio final del producto Resumen Retorna el precio final del producto identificado por nombre del producto. Entradas Nombre del producto Resultados Retorna el precio del producto de acuerdo con el nombre del producto. Método de la clase Producto

Taller No 7 Utilizar las instrucciones condicionales simples para expresar conjuntos de casos y soluciones asociadas con los mismos.

Responsabilidades de una clase Tipos de métodos Métodos constructores : Tienen la responsabilidad de inicializar los valores de los atributos de un objeto durante su creación Métodos modificadores: tienen la responsabilidad de cambiar el estado de los objetos de la clase. (“hacer”) Métodos analizadores: Tienen la responsabilidad de analizar información a partir del estado de los objetos de una clase. (“Saber”)

Responsabilidades de una clase… Una clase es responsable de administrar su propia información. Una clase es responsable de ayudar a sus vecinos del mundo y colaborar con ellos en la solución de problemas. Primero los constructores Segundo los modificadores Tercero los analizadores

Identificar cuáles son las responsabilidades de una clase. Mapa conceptual No 3 Identificar cuáles son las responsabilidades de una clase.