nivel 1
TRANSCRIPT
5/9/2018 Nivel 1 - slidepdf.com
http://slidepdf.com/reader/full/nivel-1-559ca16ca5feb 1/106
ALGORITMICA Y PROGRAMACION POR OBJETOS I
Nivel 1
Problemas, Soluciones yProgramas
Marcela Hernández Hoyos
5/9/2018 Nivel 1 - slidepdf.com
http://slidepdf.com/reader/full/nivel-1-559ca16ca5feb 2/106
Solucionar un Problema =
Construir un Programa
Análisis delproblema
Diseño de lasolución
Construcción de
la solución =Implementación =
Programación
Problema
Solución
H er r ami en
t a s y L en g u
a j e s Programador
5/9/2018 Nivel 1 - slidepdf.com
http://slidepdf.com/reader/full/nivel-1-559ca16ca5feb 3/106
Solucionar un Problema =
Construir un Programa
Análisis delproblema
Diseño de lasolución
Construcción de
la solución =Implementación =
Programación
Problema • Entender el
problema que tieneel cliente
• Especificar TODA
la información quesuministre el cliente
Solución
H er r ami en
t a s y L en g u
a j e s Programador
5/9/2018 Nivel 1 - slidepdf.com
http://slidepdf.com/reader/full/nivel-1-559ca16ca5feb 4/106
Solucionar un Problema =
Construir un Programa
H er r ami en
t a s y L en g u
a j e s
Análisis delproblema
Diseño de lasolución
Construcción de
la solución =Implementación =
Programación
Problema
Solución
• Detallar lascaracterísticas quetendrá la solución
• Usando algún
lenguaje (planos,dibujos,ecuaciones,
diagramas, texto,…)
Programador
5/9/2018 Nivel 1 - slidepdf.com
http://slidepdf.com/reader/full/nivel-1-559ca16ca5feb 5/106
Solucionar un Problema =
Construir un Programa
H er r ami en
t a s y L en g u
a j e s
Análisis delproblema
Diseño de lasolución
Construcción de
la solución =Implementación =
Programación
Problema
Solución
• Implementar elprograma a partir
del diseño
• Probar su
correctofuncionamiento
Programador
5/9/2018 Nivel 1 - slidepdf.com
http://slidepdf.com/reader/full/nivel-1-559ca16ca5feb 6/106
Caso de Estudio: El Empleado
5/9/2018 Nivel 1 - slidepdf.com
http://slidepdf.com/reader/full/nivel-1-559ca16ca5feb 7/106
El Empleado – Se quiere una aplicación que permita manejar la información de un
empleado.
– El empleado tiene:
• Nombre
• Apellido
• Sexo
• Fecha de nacimiento
• Imagen asociada• Fecha de ingreso a la misma
• Salario básico asignado
– La aplicación debe permitir :
• Modificar el salario del empleado
• Realizar algunos cálculos con la información disponible
– Edad actual
– Antigüedad en la empresa
– Prestaciones a las que tiene derecho. Para el cálculo de las prestaciones seutiliza la fórmula p = (a * s)/12 (p: prestaciones, a: antigüedad, s: salario).
5/9/2018 Nivel 1 - slidepdf.com
http://slidepdf.com/reader/full/nivel-1-559ca16ca5feb 8/106
El Empleado
5/9/2018 Nivel 1 - slidepdf.com
http://slidepdf.com/reader/full/nivel-1-559ca16ca5feb 9/106
Solucionar un Problema =
Construir un ProgramaSe quiere una aplicaciónque permita manejar lainformación de un
empleado.Análisis delproblema
Diseño de lasolución
Construcción de
la solución =Implementación =
Programación
Problema
Solución
H er r ami en
t a s y L en g u a j e s Programador
5/9/2018 Nivel 1 - slidepdf.com
http://slidepdf.com/reader/full/nivel-1-559ca16ca5feb 10/106
Análisis del Problema
5/9/2018 Nivel 1 - slidepdf.com
http://slidepdf.com/reader/full/nivel-1-559ca16ca5feb 11/106
Análisis del Problema
Análisis delproblema
Problema
• Entender el problema que tiene elcliente
• Especificar TODA la informaciónque suministre el clienteEspecificación
Qué quiere decir ESPECIFICACION …
5/9/2018 Nivel 1 - slidepdf.com
http://slidepdf.com/reader/full/nivel-1-559ca16ca5feb 12/106
Especificación
Requerimientos
funcionales (RF)
Mundo del
Problema
Requerimientos
No Funcionales
5/9/2018 Nivel 1 - slidepdf.com
http://slidepdf.com/reader/full/nivel-1-559ca16ca5feb 13/106
Especificación
Requerimientos
funcionales (RF)
• Las necesidades del cliente
• Operaciones o servicios que elprograma debe proveer alusuario
5/9/2018 Nivel 1 - slidepdf.com
http://slidepdf.com/reader/full/nivel-1-559ca16ca5feb 14/106
El Empleado – Se quiere una aplicación que permita manejar la información de un
empleado.
– El empleado tiene:
• Nombre
• Apellido
• Sexo
• Fecha de nacimiento
• Imagen asociada• Fecha de ingreso a la misma
• Salario básico asignado
– La aplicación debe permitir:
• Modificar el salario del empleado
• Realizar algunos cálculos con la información disponible
– Edad actual
– Antigüedad en la empresa
– Prestaciones a las que tiene derecho. Para el cálculo de las prestaciones seutiliza la fórmula p = (a * s)/12 (p: prestaciones, a: antigüedad, s: salario).
Requerimientos
funcionales (RF)
5/9/2018 Nivel 1 - slidepdf.com
http://slidepdf.com/reader/full/nivel-1-559ca16ca5feb 15/106
Requerimientos Funcionales
– R1:Modificar el salario delempleado.
– R2: Calcular la edad actual.
– R3: Calcular la antigüedad en laempresa.
– R4: Calcular las prestaciones.
5/9/2018 Nivel 1 - slidepdf.com
http://slidepdf.com/reader/full/nivel-1-559ca16ca5feb 16/106
El Empleado
R1
R2R3
R4
5/9/2018 Nivel 1 - slidepdf.com
http://slidepdf.com/reader/full/nivel-1-559ca16ca5feb 17/106
Especificación
Mundo del
Problema
• Contexto en el que ocurre el problema• Elementos (datos, información) que intervienenen el problema
5/9/2018 Nivel 1 - slidepdf.com
http://slidepdf.com/reader/full/nivel-1-559ca16ca5feb 18/106
El Empleado – Se quiere una aplicación que permita manejar la información de un
empleado.
– El empleado tiene:
• Nombre
• Apellido
• Sexo
• Fecha de nacimiento
• Imagen asociada• Fecha de ingreso a la misma
• Salario básico asignado
– La aplicación debe permitir:
• Modificar el salario del empleado
• Realizar algunos cálculos con la información disponible
– Edad actual
– Antigüedad en la empresa
– Prestaciones a las que tiene derecho. Para el cálculo de las prestaciones seutiliza la fórmula p = (a * s)/12 (p: prestaciones, a: antigüedad, s: salario).
Mundo delproblema
5/9/2018 Nivel 1 - slidepdf.com
http://slidepdf.com/reader/full/nivel-1-559ca16ca5feb 19/106
Especificación
Requerimientos
No Funcionales
• Restricciones o condiciones que
impone el cliente al programa
• Ejemplos: Tiempo de entrega del
programa, # de usuarios simultáneos,tiempo de ejecución del programa, …
5/9/2018 Nivel 1 - slidepdf.com
http://slidepdf.com/reader/full/nivel-1-559ca16ca5feb 20/106
Análisis del Problema
Especificación deRequerimientos Funcionales
5/9/2018 Nivel 1 - slidepdf.com
http://slidepdf.com/reader/full/nivel-1-559ca16ca5feb 21/106
Requerimientos Funcionales
• Se describen a través de 4 elementos:
– Identificador y nombre – Resumen de la operación
– Entradas que debe dar el usuario para que el
programa pueda realizar la operación – Resultado de la operación
• Modificación de un valor en el mundo del
problema• Cálculo de un valor
• Mezcla de los dos anteriores
5/9/2018 Nivel 1 - slidepdf.com
http://slidepdf.com/reader/full/nivel-1-559ca16ca5feb 22/106
Ejemplo RF
NombreR4 – Calcular las prestaciones del empleado
ResumenCalcula las prestaciones del empleado
Entradas
Resultados
5/9/2018 Nivel 1 - slidepdf.com
http://slidepdf.com/reader/full/nivel-1-559ca16ca5feb 23/106
Ejemplo RF
NombreR1 – Actualizar el salario básico del empleado
ResumenPermite la modificación del salario básico de unempleado
Entradas
Nuevo salario
Resultados
Se modificó el salario básico del empleado
5/9/2018 Nivel 1 - slidepdf.com
http://slidepdf.com/reader/full/nivel-1-559ca16ca5feb 24/106
Caso de Estudio: El Simulador
Bancario
El Si l d b i
5/9/2018 Nivel 1 - slidepdf.com
http://slidepdf.com/reader/full/nivel-1-559ca16ca5feb 25/106
El Simulador bancario – Se quiere una aplicación que haga la simulación en el tiempo de la
cuenta bancaria de un cliente.
– Un cliente tiene:
• Nombre
• Número de cédula (identifica la cuenta)
– Una cuenta tiene:
• Una cuenta de ahorro
• Una cuenta corriente• Certificado de depósito a término (CDT)
– Se quiere que el programa permita a una persona simular el manejo desus productos bancarios:
• Hacer las operaciones necesarias sobre los productos que conforman lacuenta
• Avanzar mes por mes en el tiempo, para que el cliente pueda ver elresultado de sus movimientos bancarios y el rendimiento de sus inversiones
El Si l d B i
5/9/2018 Nivel 1 - slidepdf.com
http://slidepdf.com/reader/full/nivel-1-559ca16ca5feb 26/106
El Simulador Bancario
5/9/2018 Nivel 1 - slidepdf.com
http://slidepdf.com/reader/full/nivel-1-559ca16ca5feb 27/106
Ejercicio
• Identifique y especifique tres requerimientos
funcionales del simulador bancario
Nombre
ResumenEntradas
Resultados
5/9/2018 Nivel 1 - slidepdf.com
http://slidepdf.com/reader/full/nivel-1-559ca16ca5feb 28/106
Especificación
Requerimientos
funcionales (RF)
Mundo del
Problema
Requerimientos
No Funcionales
5/9/2018 Nivel 1 - slidepdf.com
http://slidepdf.com/reader/full/nivel-1-559ca16ca5feb 29/106
Análisis del Problema
Mundo del Problema
Modelo del mundo del
5/9/2018 Nivel 1 - slidepdf.com
http://slidepdf.com/reader/full/nivel-1-559ca16ca5feb 30/106
– Esta actividad está basada en un proceso de “observación” delproblema.
– El objetivo es identificar los elementos que allí aparecen y describirlosde la mejor manera.
– Cuatro actividades para llevar a cabo esta etapa:
Modelo del mundo delproblema
Identificar las entidades
Modelar las características de las entidades
Buscar las relaciones entre las entidadesPara expresar el
modelo del mundo,usamos diagramas
de clases dellenguaje de modelos
UML (estándar).
Documentar (reglas, restricciones,
etc.)MODELO DEL MUNDO
5/9/2018 Nivel 1 - slidepdf.com
http://slidepdf.com/reader/full/nivel-1-559ca16ca5feb 31/106
Ejercicio
• Identifique los elementos que hacen parte delmundo del problema en el simulador bancario
• Saldo cuenta corriente
• Saldo cuenta ahorro
• Saldo CDT
• Cuenta bancaria
• Cuenta de ahorros• Cuenta corriente
• Saldo total
• Intereses CDT
• Interés cuenta deahorro
• Inversión CDT (monto)
• CDT
• Cliente
• Cedula
• Nombre
• Mes (de simulación)
Modelo del mundo del
5/9/2018 Nivel 1 - slidepdf.com
http://slidepdf.com/reader/full/nivel-1-559ca16ca5feb 32/106
– Esta actividad está basada en un proceso de “observación” delproblema.
– El objetivo es identificar los elementos que allí aparecen y describirlosde la mejor manera.
– Cuatro actividades para llevar a cabo esta etapa:
Modelo del mundo delproblema
Identificar las entidades
Modelar las características de las entidades
Buscar las relaciones entre las entidadesPara expresar el
modelo del mundo,usamos diagramas
de clases dellenguaje de modelos
UML (estándar).
Documentar (reglas, restricciones,
etc.)MODELO DEL MUNDO
5/9/2018 Nivel 1 - slidepdf.com
http://slidepdf.com/reader/full/nivel-1-559ca16ca5feb 33/106
Identificar las Entidades
• Elementos relevantes del mundo que intervienenen el problema
– Concretos (persona, vehículo)
– Abstractos (cuenta bancaria)
• Se les da un nombre significativo• Pista para ubicarlos: sustantivos del problema
• En POO las llamamos CLASES• Convención: los nombres de las clases empiezan
por mayúscula
5/9/2018 Nivel 1 - slidepdf.com
http://slidepdf.com/reader/full/nivel-1-559ca16ca5feb 34/106
Elementos del mundo del problema
• Saldo cuenta
corriente• Saldo cuenta
• Cuenta bancaria
• Cuenta de ahorros• Cuenta corriente
• CDT
• Cliente
• Cedula
• Nombre• Mes (de simulación)
ahorro
• Saldo CDT• Saldo total
• Intereses CDT
• Interés cuenta deahorro
• Inversión CDT
(monto)
5/9/2018 Nivel 1 - slidepdf.com
http://slidepdf.com/reader/full/nivel-1-559ca16ca5feb 35/106
Elementos del mundo del problema
• Cuenta bancaria
• Cuenta de ahorros• Cuenta corriente
• CDT
• Cliente• Cedula
• Nombre
• Mes (de simulación)
• Saldo cuentacorriente
• Saldo cuentaahorro
• Saldo CDT
• Saldo total
• Intereses CDT
• Interés cuenta deahorro
• Inversión CDT
(monto)NO TODOS ESTOS ELEMENTOS SON CLASES
5/9/2018 Nivel 1 - slidepdf.com
http://slidepdf.com/reader/full/nivel-1-559ca16ca5feb 36/106
Clases del simulador bancario
• Saldo cuenta corriente
• Saldo cuenta ahorro• Cuenta bancaria
• Cuenta de ahorros
• Saldo CDT
• Saldo total
• Intereses CDT
• Interés cuenta de ahorro
• Inversión CDT (monto)
• Cuenta corriente
• CDT
• Cliente• Cedula
• Nombre
• Mes (de simulación)
TODOS LOS DEMAS ELEMENTOS DEL PROBLEMA
SON CARACTERISTICAS DE LAS CLASES
5/9/2018 Nivel 1 - slidepdf.com
http://slidepdf.com/reader/full/nivel-1-559ca16ca5feb 37/106
Clases del simulador bancario
• CuentaBancaria
• CuentaCorriente• CuentaAhorros
• CDT• Mes
Hacen parte de la CuentaBancaria
Modelo del mundo del
5/9/2018 Nivel 1 - slidepdf.com
http://slidepdf.com/reader/full/nivel-1-559ca16ca5feb 38/106
– Esta actividad está basada en un proceso de “observación” delproblema.
– El objetivo es identificar los elementos que allí aparecen y describirlosde la mejor manera.
– Cuatro actividades para llevar a cabo esta etapa:
problema
Identificar las entidades
Modelar las características de las entidades
Buscar las relaciones entre las entidades Para expresar elmodelo del mundo,usamos diagramas
de clases dellenguaje de modelos
UML (estándar).
Documentar (reglas, restricciones,
etc.)MODELO DEL MUNDO
M d l l í i
5/9/2018 Nivel 1 - slidepdf.com
http://slidepdf.com/reader/full/nivel-1-559ca16ca5feb 39/106
Modelar las características
• A cada característica le debemos asociar:
– Nombre significativo – Descripción del conjunto de valores que dicha
característica puede tomar
• En POO las llamamos ATRIBUTOS
• Convención: los nombres de los atributos
empiezan por minúscula, sin espacios enblanco
Ej l b l E l d
5/9/2018 Nivel 1 - slidepdf.com
http://slidepdf.com/reader/full/nivel-1-559ca16ca5feb 40/106
Ejemplo sobre el Empleado
Ej l b l E l d
5/9/2018 Nivel 1 - slidepdf.com
http://slidepdf.com/reader/full/nivel-1-559ca16ca5feb 41/106
Ejemplo sobre el Empleado
Atributo Valores posibles
nombre Cadena de caracteres
apellido Cadena de caracteres
sexo Masculino o Femenino
salario Valores enteros positivos
Empleado
nombreapellidosexosalario
nombre de laentidad oclaseCaracterísticas
o atributos
Para expresar el
modelo del mundo,usamos diagramas
de clases dellenguaje de modelos
UML (estándar).
Ejercicio sobre el Simulador
5/9/2018 Nivel 1 - slidepdf.com
http://slidepdf.com/reader/full/nivel-1-559ca16ca5feb 42/106
Ejercicio sobre el Simulador
Bancario
Ejercicio sobre el Simulador
5/9/2018 Nivel 1 - slidepdf.com
http://slidepdf.com/reader/full/nivel-1-559ca16ca5feb 43/106
Ejercicio sobre el Simulador
Bancario
Modelo del mundo delbl
5/9/2018 Nivel 1 - slidepdf.com
http://slidepdf.com/reader/full/nivel-1-559ca16ca5feb 44/106
– Esta actividad está basada en un proceso de “observación” delproblema.
– El objetivo es identificar los elementos que allí aparecen y describirlosde la mejor manera.
– Cuatro actividades para llevar a cabo esta etapa:
problema
Identificar las entidades
Modelar las características de las entidades
Buscar las relaciones entre las entidades Para expresar elmodelo del mundo,usamos diagramas
de clases dellenguaje de modelos
UML (estándar).
Documentar (reglas, restricciones,
etc.)MODELO DEL MUNDO
L l i t l E tid d
5/9/2018 Nivel 1 - slidepdf.com
http://slidepdf.com/reader/full/nivel-1-559ca16ca5feb 45/106
Las relaciones entre las Entidades
• Identificar las relaciones que existen entre
las distintas entidades del mundo (clases).• Dar un nombre a cada relación
• En POO las llamamos ASOCIACIONESClase1 Clase2
nombre EnUML
Las relaciones entre las Entidades
5/9/2018 Nivel 1 - slidepdf.com
http://slidepdf.com/reader/full/nivel-1-559ca16ca5feb 46/106
Las relaciones entre las Entidades
• Identificar las relaciones que existen entre
las distintas entidades del mundo (clases).• Dar un nombre a cada relación
• En POO las llamamos ASOCIACIONESClase1 Clase2
nombre EnUML
Ejemplo sobre el Empleado
5/9/2018 Nivel 1 - slidepdf.com
http://slidepdf.com/reader/full/nivel-1-559ca16ca5feb 47/106
Ejemplo sobre el Empleado
Ejemplo sobre el Empleado
5/9/2018 Nivel 1 - slidepdf.com
http://slidepdf.com/reader/full/nivel-1-559ca16ca5feb 48/106
Ejemplo sobre el Empleado
EmpleadoFecha
fechaNacimientonombreapellidosexosalario
diamesañofechaIngreso
• El empleado tiene una fecha de nacimiento
• Esta fecha es una entidad del mundorepresentada por la clase Fecha
Ejemplo sobre el Empleado
5/9/2018 Nivel 1 - slidepdf.com
http://slidepdf.com/reader/full/nivel-1-559ca16ca5feb 49/106
Ejemplo sobre el Empleado
EmpleadoFecha
fechaNacimientonombreapellidosexosalario
diamesañofechaIngreso
• El empleado tiene una fecha de ingreso
• La dirección de la flecha indica que la clase quecontiene a la otra:
– El empleado tiene una fecha, pero la fecha NO tiene un
empleado
Diagrama de clases del modelo del
5/9/2018 Nivel 1 - slidepdf.com
http://slidepdf.com/reader/full/nivel-1-559ca16ca5feb 50/106
mundo para el simulador bancarioCuentaCorrienteCuentaBancaria
CuentaAhorros
Mes
CDT
Diagrama de clases del modelo del
5/9/2018 Nivel 1 - slidepdf.com
http://slidepdf.com/reader/full/nivel-1-559ca16ca5feb 51/106
mundo para el simulador bancarioCuentaCorrienteCuentaBancaria
CuentaAhorros
CDT
Mes
corriente
ahorros
inversion
mesActual
mesApertura
Solucionar un Problema =C i P
5/9/2018 Nivel 1 - slidepdf.com
http://slidepdf.com/reader/full/nivel-1-559ca16ca5feb 52/106
Construir un Programa
H er r ami en t a
s y L en g u a j e s
Análisis delproblema
Diseño de la
solución
Construcción de
la solución =Implementación =Programación
Problema
Solución
• Detallar lascaracterísticas que
tendrá la solución
• Usando algún
lenguaje (planos,dibujos,ecuaciones,diagramas, texto,
… UML
Programador
Solucionar un Problema =C i P
5/9/2018 Nivel 1 - slidepdf.com
http://slidepdf.com/reader/full/nivel-1-559ca16ca5feb 53/106
Construir un Programa
H er r ami en t a
s y L en g u a j e s
Análisis delproblema
Diseño de la
solución
Construcción de
la solución =Implementación =Programación
Problema
Solución
• Implementar elprograma a partir
del diseño
• Probar sucorrectofuncionamiento
Programador
5/9/2018 Nivel 1 - slidepdf.com
http://slidepdf.com/reader/full/nivel-1-559ca16ca5feb 54/106
Construcción de la Solución
5/9/2018 Nivel 1 - slidepdf.com
http://slidepdf.com/reader/full/nivel-1-559ca16ca5feb 55/106
Algoritmos e Instrucciones
Algoritmos e Instrucciones
5/9/2018 Nivel 1 - slidepdf.com
http://slidepdf.com/reader/full/nivel-1-559ca16ca5feb 56/106
Algoritmos e Instrucciones
• Algoritmo =
– Secuencia de instrucciones para resolver un problema
– Secuencia ordenada de pasos para realizar unaactividad
• Ejemplos: – Algoritmo para preparar unos huevos pericos
– Algoritmo para amarrarse los zapatos
– Algoritmo para cambiar una llanta – Algoritmo para llegar a una dirección dada
En el computador
5/9/2018 Nivel 1 - slidepdf.com
http://slidepdf.com/reader/full/nivel-1-559ca16ca5feb 57/106
En el computador …
• Las instrucciones de los algoritmos debenestar escritos en un lenguaje que entienda elcomputador
Lenguaje de Programación
5/9/2018 Nivel 1 - slidepdf.com
http://slidepdf.com/reader/full/nivel-1-559ca16ca5feb 58/106
Nuestro lenguaje: JAVA
Un programa en java está formado por unconjunto de CLASES
Cada Clase se guarda en un archivodistinto
Declaración de clases en Java
5/9/2018 Nivel 1 - slidepdf.com
http://slidepdf.com/reader/full/nivel-1-559ca16ca5feb 59/106
Declaración de clases en Java
Empleado • Archivo: Empleado.javapublic class Empleado{
// Atributosprivate String nombre;private String apellido;private int salario;
private int sexo;}
• Archivo: Fecha.javapublic class Fecha
{private int dia;private int mes;private int año;
}
nombreapellidosexosalario
Fecha
diamesaño
Declaración de clases en Java
5/9/2018 Nivel 1 - slidepdf.com
http://slidepdf.com/reader/full/nivel-1-559ca16ca5feb 60/106
Declaración de clases en Java
Empleado • Archivo: Empleado.javapublic class Empleado{
private String nombre;private String apellido;private int salario;private int sexo;
}
• Archivo: Fecha.javapublic class Fecha
{private int dia;private int mes;private int año;
}
nombreapellidosexosalario
Fecha
diamesaño
Tipos de Datos en Java
5/9/2018 Nivel 1 - slidepdf.com
http://slidepdf.com/reader/full/nivel-1-559ca16ca5feb 61/106
Tipos de Datos en Java
• Archivo: Empleado.javapublic class Empleado{
private String nombre;private String apellido;private int salario;private int sexo;
}
• Archivo: Fecha.javapublic class Fecha
{ private int dia;private int mes;private int año;
}
• Enteros – int
• Reales – double
• Cadenas de caracteres – String
Es de tipo entero (int).Convención: 1= masculino, 2=femenino
Diagrama de asociaciones en
5/9/2018 Nivel 1 - slidepdf.com
http://slidepdf.com/reader/full/nivel-1-559ca16ca5feb 62/106
JAVAEmpleado
Fecha
nombre
apellidosexosalario
diames
año
• Archivo: Empleado.javapublic class Empleado{
// Atributosprivate String nombre;private String apellido;private int salario;
private int sexo;
private Fecha fechaNacimiento;private Fecha fechaIngreso;
}
fechaNacimiento fechaIngreso
El orden de declaración de losatributos NO es importante
Diagrama de clases completo del
5/9/2018 Nivel 1 - slidepdf.com
http://slidepdf.com/reader/full/nivel-1-559ca16ca5feb 63/106
caso del empleado
EmpleadoFecha
String nombreString apellidoint sexo
int salario
int diaint mes
int año
fechaNacimiento
fechaIngreso
5/9/2018 Nivel 1 - slidepdf.com
http://slidepdf.com/reader/full/nivel-1-559ca16ca5feb 64/106
Caso de Estudio: Las líneas
telefónicas
Las líneas telefónicas
5/9/2018 Nivel 1 - slidepdf.com
http://slidepdf.com/reader/full/nivel-1-559ca16ca5feb 65/106
Las líneas telefónicas – Se quiere crear una aplicación para controlar los gastos telefónicos de
una empresa. La empresa cuenta con tres líneas telefónicas a través delas cuales se pueden realizar llamadas locales, de larga distancia y a
celulares. – La aplicación debe permitir:
1. Registrar una llamada en alguna de las líneas
2. Mostrar la información detallada de cada línea
– Número de llamadas realizadas
– Duración total de las llamadas en minutos
– Costo total de las llamadas en pesos
3. Mostrar un consolidado total de la información de todas las líneas (costototal en pesos de las tres líneas, número total de llamadas realizadas,duración total de llamadas en minutos y el cálculo del costo promedio porminuto según el costo total y el total de minutos).
4. Reiniciar el uso las líneas telefónicas, dejando todos sus valores en cero.
Interfaz usuario
5/9/2018 Nivel 1 - slidepdf.com
http://slidepdf.com/reader/full/nivel-1-559ca16ca5feb 66/106
Requerimientos Funcionales
5/9/2018 Nivel 1 - slidepdf.com
http://slidepdf.com/reader/full/nivel-1-559ca16ca5feb 67/106
q
– R1:Registrar (agregar) una llamada
en alguna de las líneas. – R2: Mostrar la información detallada
de cada línea. – R3: ...
– R4: ...
R1
5/9/2018 Nivel 1 - slidepdf.com
http://slidepdf.com/reader/full/nivel-1-559ca16ca5feb 68/106
Nombre R1: Agregar una llamada a una línea telefónica
Resumen
Se agrega una llamada a una línea telefónica. Se debe especificar lacantidad de minutos consumidos, así como el tipo de llamada realizada.
Entradas
Número de línea, siendo opciones validas la línea 1, 2 o 3.
Número de minutos consumidos, sabiendo que el número de minutos es un valorpositivo.
Tipo de llamada realizada. Puede ser local, larga distancia o celular.
Resultados
La línea telefónica tiene una llamada más.
Los minutos consumidos por la línea especificada aumentaron según el número de
minutos de la llamada.
El costo total de llamadas realizadas por la línea especificada se incrementó en el costode la llamada. El valor por minuto de una llamada local es de $35, de una llamada delarga distancia es de $380, y de una llamada a celular es de $999
Los totales de toda la empresa se actualizan.
Modelo del Mundo
5/9/2018 Nivel 1 - slidepdf.com
http://slidepdf.com/reader/full/nivel-1-559ca16ca5feb 69/106
No tiene atributos particulares
Hay 3 líneas telefónicas
(asociaciones)
Clase LineaTelefonica
5/9/2018 Nivel 1 - slidepdf.com
http://slidepdf.com/reader/full/nivel-1-559ca16ca5feb 70/106
Archivo: LineaTelefonica.java
public class LineaTelefonica{private int numeroLlamadas;private int numeroMinutos;private double costoLlamadas;
}
Clase Empresa
5/9/2018 Nivel 1 - slidepdf.com
http://slidepdf.com/reader/full/nivel-1-559ca16ca5feb 71/106
Archivo: Empresa.java
public class Empresa{
private LineaTelefonica linea1;
private LineaTelefonica linea2;private LineaTelefonica linea3;
}
Son las 3asociaciones
Qué son los métodos ?
5/9/2018 Nivel 1 - slidepdf.com
http://slidepdf.com/reader/full/nivel-1-559ca16ca5feb 72/106
Métodos
5/9/2018 Nivel 1 - slidepdf.com
http://slidepdf.com/reader/full/nivel-1-559ca16ca5feb 73/106
• Son los “algoritmos” de la clase.
• Lo que la clase sabe hacer:
– Resolver un problema puntual
– Servicio que la clase debe prestar a las demás clases
del modelo
• Piense que …
– Una clase es la responsable de manejar lainformación contenida en sus atributos
– Los métodos son el medio para hacerlo
Ejemplo: Qué debe saber hacer
5/9/2018 Nivel 1 - slidepdf.com
http://slidepdf.com/reader/full/nivel-1-559ca16ca5feb 74/106
una línea telefónica• Informar:
– El número total de sus llamadas – El costo total de sus llamadas
– La cantidad de minutos consumidos
• Agregar
– Una llamada local
– Una llamada de larga distancia – Una llamada de celular
Entoces …
5/9/2018 Nivel 1 - slidepdf.com
http://slidepdf.com/reader/full/nivel-1-559ca16ca5feb 75/106
• Cada una delas accionesque sabe
hacer unaclase
METODO
Métodos de la LineaTelefonica
5/9/2018 Nivel 1 - slidepdf.com
http://slidepdf.com/reader/full/nivel-1-559ca16ca5feb 76/106
• Informar: – El número total de sus
llamadas – El costo total de sus
llamadas – La cantidad de minutos
consumidos• Agregar
– Una llamada local
– Una llamada de largadistancia
– Una llamada de celular
– darCostoLlamadas
– darNumeroLlamadas
– darNumeroMinutos
– agregarLlamadaLocal
– agregarLlamadaLargaDistancia
– agregarLlamadaCelular
Un método está compuesto por:
5/9/2018 Nivel 1 - slidepdf.com
http://slidepdf.com/reader/full/nivel-1-559ca16ca5feb 77/106
public void agregarLlamadaLocal( int minutos )
nombre
Un método está compuesto por:
5/9/2018 Nivel 1 - slidepdf.com
http://slidepdf.com/reader/full/nivel-1-559ca16ca5feb 78/106
public void agregarLlamadaLocal( int minutos )
Lista de parámetros
Conjunto de valores (cada uno con su tipo)necesarios para resolver el problema
Un método está compuesto por:
5/9/2018 Nivel 1 - slidepdf.com
http://slidepdf.com/reader/full/nivel-1-559ca16ca5feb 79/106
public void agregarLlamadaLocal( int minutos )
Tipo de respuesta
Tipo de dato al que pertenece el resultado que vaa retornar el método. Si no hay respuesta, se
indica el tipo void
Un método está compuesto por:
5/9/2018 Nivel 1 - slidepdf.com
http://slidepdf.com/reader/full/nivel-1-559ca16ca5feb 80/106
public void agregarLlamadaLocal( int minutos ){
numeroLlamadas = numeroLlamadas + 1;numeroMinutos = numeroMinutos + minutos;costoLlamadas = costoLlamadas + ( minutos * 35 );
}
Cuerpo del método
•Lista de instrucciones que representa elalgoritmo que resuelve el problema puntual•En el cuerpo se explica la forma de utilizar los
valores de los atributos para calcular algunainformación o la forma de modificarlos
Tipos de instrucciones
5/9/2018 Nivel 1 - slidepdf.com
http://slidepdf.com/reader/full/nivel-1-559ca16ca5feb 81/106
• Instrucción de asignación – Para definir el nuevo valor de un atributo
– Se construye con un “=“
public void agregarLlamadaLocal( int minutos )
{numeroLlamadas = numeroLlamadas + 1;numeroMinutos = numeroMinutos + minutos;
costoLlamadas = costoLlamadas + ( minutos * 35 );}
Tipos de instrucciones
5/9/2018 Nivel 1 - slidepdf.com
http://slidepdf.com/reader/full/nivel-1-559ca16ca5feb 82/106
numeroLlamadas = numeroLlamadas + 1;
Atributo queva a ser
modificado
Expresión que indica elnuevo valor que debe
guardarse en el atributo
Pueden hacer parte deuna expresión: los
atributos, los parámetrosy los valores constantes.
Con operadoresaritméticos (+, -, *, /)
Tipos de instrucciones
5/9/2018 Nivel 1 - slidepdf.com
http://slidepdf.com/reader/full/nivel-1-559ca16ca5feb 83/106
• Instrucción de asignación – Para definir el nuevo valor de un atributo
– Se construye con un “=“
public void agregarLlamadaLocal( int minutos )
{numeroLlamadas = numeroLlamadas + 1;numeroMinutos = numeroMinutos + minutos;
costoLlamadas = costoLlamadas + ( minutos * 35 );}
Tipos de instrucciones
5/9/2018 Nivel 1 - slidepdf.com
http://slidepdf.com/reader/full/nivel-1-559ca16ca5feb 84/106
• Instrucción de retorno – Para devolver un resultado como solución del problema
puntual – Se representa con un “return“
public int darNumeroLlamadas( ){
return numeroLlamadas;
}
Tipos de instrucciones
5/9/2018 Nivel 1 - slidepdf.com
http://slidepdf.com/reader/full/nivel-1-559ca16ca5feb 85/106
• Instrucción de llamada (o invocación) de unMétodo
– Para usar métodos de la misma clase
– Para usar métodos de un objeto de otra clase con
el cual existe una asociación.
Invocación de un método de lamisma clase
5/9/2018 Nivel 1 - slidepdf.com
http://slidepdf.com/reader/full/nivel-1-559ca16ca5feb 86/106
• Se hace para construir métodos complejos a partirde métodos mas simples que ya están escritos.
• Ejemplo: calcular el monto de losimpuestos que debe pagar elempleado en un año. Los impuestosse calculan como el 19.5% del total de
Empleado
String nombreString apellidoint sexoint salario
int calcularSalarioAnual( )
int calcularImpuesto( )
salarios recibidos en un año
• Vamos a descomponer el problema endos métodos:
– Cálculo del valor total del salario anual
– Cálculo del monto del impuesto, queusa el método anterior
Ejemplo de invocación de unmétodo de la misma clase
5/9/2018 Nivel 1 - slidepdf.com
http://slidepdf.com/reader/full/nivel-1-559ca16ca5feb 87/106
Empleado
String nombreString apellidoint sexo
int salario
int calcularSalarioAnual( )
int calcularImpuesto( )
public class Empleado{
…
public int calcularSalarioAnual( ){
return (salario * 12 );
}
public int calcularImpuesto( )
{
return ( calcularSalarioAnual( ) * 19.5 / 100 );}
}
Llamado al método calcularSalarioAnual
Invocación de un método de un
bj d l l l
5/9/2018 Nivel 1 - slidepdf.com
http://slidepdf.com/reader/full/nivel-1-559ca16ca5feb 88/106
objeto de otra clase con el cualexiste una asociación
• Se hace cuando se necesita obtenero modificar alguna información de un
objeto de otra clase con el cualexiste una asociación.
Ejemplo
5/9/2018 Nivel 1 - slidepdf.com
http://slidepdf.com/reader/full/nivel-1-559ca16ca5feb 89/106
Hay 3 líneas telefónicas(asociaciones)
Ejemplo
5/9/2018 Nivel 1 - slidepdf.com
http://slidepdf.com/reader/full/nivel-1-559ca16ca5feb 90/106
En la clase LineaTelefonica existe el
método darNumeroLlamadas
int darNumeroLlamadas( )int darTotalNumeroLlamadas( )
Ejemplo
5/9/2018 Nivel 1 - slidepdf.com
http://slidepdf.com/reader/full/nivel-1-559ca16ca5feb 91/106
El método darTotalNumeroLlamadas de la clase Empresa
DEBE invocar el método darNumeroLlamadas de la claseLineaTelefonica
int darNumeroLlamadas( )int darTotalNumeroLlamadas( )
Ejemplo
5/9/2018 Nivel 1 - slidepdf.com
http://slidepdf.com/reader/full/nivel-1-559ca16ca5feb 92/106
public class LineaTelefonica
{
…public int darNumeroLlamadas( )
{ return ( );
}
}
LineaTelefonica
int numeroLlamadasint numeroMinutosdouble costoLlamadas
int darNumeroLlamadas( )
Ejemplo
5/9/2018 Nivel 1 - slidepdf.com
http://slidepdf.com/reader/full/nivel-1-559ca16ca5feb 93/106
El número total dellamadas de la empresaes la suma del número dellamadas de la linea1 + el
número de llamadas de lalinea2 + el número de
llamadas de la linea3
Empresa
int darTotalNumeroLlamadas( )
Ejemplo
5/9/2018 Nivel 1 - slidepdf.com
http://slidepdf.com/reader/full/nivel-1-559ca16ca5feb 94/106
public class Empresa
{
…
public int darTotalNumeroLlamadas( )
{
return ( linea1.darNumeroLlamadas( ) +
linea2.darNumeroLlamadas( ) +linea3.darNumeroLlamadas( );
}
}
Empresa
int darTotalNumeroLlamadas( )
Ejemplo
5/9/2018 Nivel 1 - slidepdf.com
http://slidepdf.com/reader/full/nivel-1-559ca16ca5feb 95/106
Empresa
int darTotalNumeroLlamadas( )
public class Empresa
{
…
public int darTotalNumeroLlamadas( )
{
return ( linea1.darNumeroLlamadas( ) +
linea2.darNumeroLlamadas( ) +linea3.darNumeroLlamadas( );
}
}
Nombre de la asociación punto nombre del método de
la asociación
Parámetros
(ninguno eneste caso)
Ejemplo con parámetros
5/9/2018 Nivel 1 - slidepdf.com
http://slidepdf.com/reader/full/nivel-1-559ca16ca5feb 96/106
public class LineaTelefonica
{
…public void agregarLlamadaLocal( int minutos ){
numeroLlamadas = numeroLlamadas + 1;numeroMinutos = numeroMinutos + minutos;costoLlamadas = costoLlamadas + ( minutos * 35 );
}
}
Ejemplo con parámetros
5/9/2018 Nivel 1 - slidepdf.com
http://slidepdf.com/reader/full/nivel-1-559ca16ca5feb 97/106
public class Empresa
{
…public void agregarLlamadaLocalLinea1( int minutos )
{
linea1.agregarLlamadaLocal( minutos );}
}
Nombre de la asociaciónnombre del método de
la asociación
Parámetros
Llamando métodos con parámetros
5/9/2018 Nivel 1 - slidepdf.com
http://slidepdf.com/reader/full/nivel-1-559ca16ca5feb 98/106
• Cuándo necesita parámetrosun método?
• Cómo se declara unparámetro?
• Cómo se utiliza el valor de unparámetro
• Cuando la información quetiene el objeto en sus atributosno es suficiente para resolver
el problema
• En la signatura del método sedefine el tipo del dato del
parámetro y se le asocia unnombre
• Basta con utilizar el nombre
del parámetro en el cuerpo delmétodo de la misma maneraque se utilizan los atributos
Llamando métodos con parámetros
NO i ú
5/9/2018 Nivel 1 - slidepdf.com
http://slidepdf.com/reader/full/nivel-1-559ca16ca5feb 99/106
• Se puede utilizar el parámetropor fuera del cuerpo delmétodo?
• Aquel que hace la llamada delmétodo, cómo hace paradefinir los valores de losparámetros ?
• NO, en ningún caso
• En el momento de hacer lallamada, se deben pasar tantosvalores como parámetros está
esperando el método. Esosvalores pueden ser constantes(por ejemplo, 500), atributos delobjeto que hace la llamada (por
ejemplo, costoLlamadas),parámetros del método desde elcual se hace la llamada (porejemplo, minutos) o expresionesque mezclen los tres anteriores(por ejemplo, costoLlamadas *minutos * 500
Llamando métodos con parámetros
5/9/2018 Nivel 1 - slidepdf.com
http://slidepdf.com/reader/full/nivel-1-559ca16ca5feb 100/106
• Cómo se hace la relaciónentre esos valores y losparámetros?
• Los valores se deben pasarteniendo en cuenta el orden enel que se declararon los
parámetrospublic class C2
{
private int atr1;
private C1 obj;
public void m2( int x ){
obj.m1( x, 34+atr1, “prueba”);}
}
public class C1
{
…
public void m1( int a, int b, String c ){
…
}}
Llamando métodos con parámetros
Có h l l ió L l d b
5/9/2018 Nivel 1 - slidepdf.com
http://slidepdf.com/reader/full/nivel-1-559ca16ca5feb 101/106
• Cómo se hace la relaciónentre esos valores y losparámetros?
• Los valores se deben pasarteniendo en cuenta el orden enel que se declararon los
parámetrospublic class C2
{
private int atr1;
private C1 obj;
public void m2( int x ){
obj.m1( x, 34+atr1, “prueba”);}
}
public class C1
{
…
public void m1( int a, int b, String c ){
…
}}
Llamando métodos con parámetros
Có h l l ió L l d b
5/9/2018 Nivel 1 - slidepdf.com
http://slidepdf.com/reader/full/nivel-1-559ca16ca5feb 102/106
• Cómo se hace la relaciónentre esos valores y losparámetros?
• Los valores se deben pasarteniendo en cuenta el orden enel que se declararon los
parámetrospublic class C2
{
private int atr1;
private C1 obj;
public void m2( int x ){
obj.m1( x, 34+atr1, “prueba”);}
}
public class C1
{
…
public void m1( int a, int b, String c ){
…
}}
Creación de los objetos de lasclases con quienes hay
asociaciones
5/9/2018 Nivel 1 - slidepdf.com
http://slidepdf.com/reader/full/nivel-1-559ca16ca5feb 103/106
Hay 3 líneas telefónicas
(asociaciones: SON OBJETOS)
asociaciones
Creación de los objetos de las
clases con quienes hay
5/9/2018 Nivel 1 - slidepdf.com
http://slidepdf.com/reader/full/nivel-1-559ca16ca5feb 104/106
clases con quienes hayasociaciones
• Se hace con la instrucción new
• Los objetos de las asociaciones los crea laclase dueña (que posee) las asociacionesen alguno de sus métodos
Ejemplo: Creación de las 3 líneastelefónicas en la clase Empresa
5/9/2018 Nivel 1 - slidepdf.com
http://slidepdf.com/reader/full/nivel-1-559ca16ca5feb 105/106
/*** Inicializa las líneas telefónicas de la empresa <br>* <b>post: </b> Se inicializaron las 3 líneas telefónicas.
*/ public void inicializar( ){
//
//Inicializa la línea 1linea1 = new LineaTelefonica( );linea1.inicializar( ); // //Inicializa la línea 2
linea2 = new LineaTelefonica( );linea2.inicializar( ); // //Inicializa la línea 3
linea3 = new LineaTelefonica( );linea3.inicializar( );
Ejercicio
5/9/2018 Nivel 1 - slidepdf.com
http://slidepdf.com/reader/full/nivel-1-559ca16ca5feb 106/106
Tarea No. 10 – Nivel 1 del libro