Nivel 1

106
 ALGORITMICA Y PROGRAMACION POR OBJETOS I Nivel 1 Problemas, Soluciones y Programas Marcela Hernández Hoyos

Transcript of Nivel 1

Page 1: Nivel 1

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

Page 2: Nivel 1

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

Page 3: Nivel 1

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

 

Page 4: Nivel 1

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

 

Page 5: Nivel 1

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

 

Page 6: Nivel 1

5/9/2018 Nivel 1 - slidepdf.com

http://slidepdf.com/reader/full/nivel-1-559ca16ca5feb 6/106

Caso de Estudio: El Empleado

 

Page 7: Nivel 1

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).

 

Page 8: Nivel 1

5/9/2018 Nivel 1 - slidepdf.com

http://slidepdf.com/reader/full/nivel-1-559ca16ca5feb 8/106

El Empleado

 

Page 9: Nivel 1

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

 

Page 10: Nivel 1

5/9/2018 Nivel 1 - slidepdf.com

http://slidepdf.com/reader/full/nivel-1-559ca16ca5feb 10/106

Análisis del Problema

 

Page 11: Nivel 1

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 …

 

Page 12: Nivel 1

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

 

Page 13: Nivel 1

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

 

Page 14: Nivel 1

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)

 

Page 15: Nivel 1

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.

 

Page 16: Nivel 1

5/9/2018 Nivel 1 - slidepdf.com

http://slidepdf.com/reader/full/nivel-1-559ca16ca5feb 16/106

El Empleado

R1

R2R3

R4

 

Page 17: Nivel 1

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

 

Page 18: Nivel 1

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

 

Page 19: Nivel 1

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, …

 

Page 20: Nivel 1

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

 

Page 21: Nivel 1

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

 

Page 22: Nivel 1

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

 

Page 23: Nivel 1

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

 

Page 24: Nivel 1

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

Page 25: Nivel 1

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

Page 26: Nivel 1

5/9/2018 Nivel 1 - slidepdf.com

http://slidepdf.com/reader/full/nivel-1-559ca16ca5feb 26/106

El Simulador Bancario

 

Page 27: Nivel 1

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

 

Page 28: Nivel 1

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

 

Page 29: Nivel 1

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

Page 30: Nivel 1

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

 

Page 31: Nivel 1

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

Page 32: Nivel 1

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

 

Page 33: Nivel 1

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

 

Page 34: Nivel 1

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)

 

Page 35: Nivel 1

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

 

Page 36: Nivel 1

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

 

Page 37: Nivel 1

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

Page 38: Nivel 1

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

Page 39: Nivel 1

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

Page 40: Nivel 1

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

Page 41: Nivel 1

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

Page 42: Nivel 1

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

Page 43: Nivel 1

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

Page 44: Nivel 1

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

Page 45: Nivel 1

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

Page 46: Nivel 1

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

Page 47: Nivel 1

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

Page 48: Nivel 1

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

Page 49: Nivel 1

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

Page 50: Nivel 1

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

Page 51: Nivel 1

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

Page 52: Nivel 1

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

Page 53: Nivel 1

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

 

Page 54: Nivel 1

5/9/2018 Nivel 1 - slidepdf.com

http://slidepdf.com/reader/full/nivel-1-559ca16ca5feb 54/106

Construcción de la Solución

 

Page 55: Nivel 1

5/9/2018 Nivel 1 - slidepdf.com

http://slidepdf.com/reader/full/nivel-1-559ca16ca5feb 55/106

Algoritmos e Instrucciones

 

Algoritmos e Instrucciones

Page 56: Nivel 1

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

Page 57: Nivel 1

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

 

Page 58: Nivel 1

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

Page 59: Nivel 1

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

Page 60: Nivel 1

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

Page 61: Nivel 1

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

Page 62: Nivel 1

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

Page 63: Nivel 1

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

 

Page 64: Nivel 1

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

Page 65: Nivel 1

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

Page 66: Nivel 1

5/9/2018 Nivel 1 - slidepdf.com

http://slidepdf.com/reader/full/nivel-1-559ca16ca5feb 66/106

 

Requerimientos Funcionales

Page 67: Nivel 1

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

Page 68: Nivel 1

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

Page 69: Nivel 1

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

Page 70: Nivel 1

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

Page 71: Nivel 1

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 ?

Page 72: Nivel 1

5/9/2018 Nivel 1 - slidepdf.com

http://slidepdf.com/reader/full/nivel-1-559ca16ca5feb 72/106

 

Métodos

Page 73: Nivel 1

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

Page 74: Nivel 1

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 …

Page 75: Nivel 1

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

Page 76: Nivel 1

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:

Page 77: Nivel 1

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:

Page 78: Nivel 1

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:

Page 79: Nivel 1

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:

Page 80: Nivel 1

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

Page 81: Nivel 1

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

Page 82: Nivel 1

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

Page 83: Nivel 1

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

Page 84: Nivel 1

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

Page 85: Nivel 1

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

Page 86: Nivel 1

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

Page 87: Nivel 1

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

Page 88: Nivel 1

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

Page 89: Nivel 1

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

Page 90: Nivel 1

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

Page 91: Nivel 1

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

Page 92: Nivel 1

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

Page 93: Nivel 1

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

Page 94: Nivel 1

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

Page 95: Nivel 1

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

Page 96: Nivel 1

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

Page 97: Nivel 1

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

Page 98: Nivel 1

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 ú

Page 99: Nivel 1

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

Page 100: Nivel 1

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

Page 101: Nivel 1

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

Page 102: Nivel 1

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

Page 103: Nivel 1

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

Page 104: Nivel 1

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

Page 105: Nivel 1

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

Page 106: Nivel 1

5/9/2018 Nivel 1 - slidepdf.com

http://slidepdf.com/reader/full/nivel-1-559ca16ca5feb 106/106

Tarea No. 10 – Nivel 1 del libro