3. resolución de problemas.. conocer lo que se quiere resolver. buscar las herramientas para...

Post on 02-Feb-2016

216 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Introducción a la Programación3. Resolución de Problemas.

3.1 Conceptos de Resolución de

Problemas

Proceso de Resolución de Problemas

Conocer lo que se quiere resolver. Buscar las herramientas para poder solucionar

el problema. Implementar la solución.

Problema SoluciónProblema Resuelto

Definiciones

Problema:◦ Abstracción de la realidad para la cual nos

interesa conocer una solución.

Solución:◦ Procedimiento para establecer el mecanismo de

trasformación del mundo que nos lleve a satisfacer ciertos requerimientos.

Modelo

Estructura que se utiliza para dar razón y abstraer de la realidad a un conjunto de acciones o fenómenos que guardan entre sí ciertas relaciones.

90’: Enfoque en base a la utilización de objetos, donde cada elemento del mundo real se representa con mayor precisión y fidelidad, logrando así soluciones modulares y con encapsulación.

3.2 Algoritmos

Algoritmo

Procedimiento detallado y preciso de operaciones para resolver un problema en un número finito de pasos.

Tiene un input y un output definido.

Ejemplos de la vida real:◦ ¿Una receta de cocina?◦ ¿Manual de armado de mueble?

Algoritmo

Algoritmo

Origami

Flujo de Operaciones

Toma de decisiones◦ La secuencia se decide de acuerdo a ciertas

condiciones que dependen de los datos del algoritmo.

Iteración◦ Especifica la repetición de operaciones, controlada por

condiciones que dependen de los datos.

Flujo de Operaciones

Toma de decisiones:◦ Un enemigo decide si se acerca a atacar al jugador o

sigue patrullando, según las condiciones en las que se encuentra en el mundo.

Iteración◦ Mientras el usuario no presione la tecla escape se

vuelve a pintar la pantalla.

Estrategias para elaborar un algoritmo

Buscar similitud con otros problemas.

Utilizar ejemplos conocidos.

Utilizar algoritmos genéricos conocidos.

Conceptualizar actividades y objetos participantes.

Descomponer en subproblemas.

¿Existe un único algoritmo de solución?

Para cualquier problema existen múltiples soluciones.

Para cualquier problema pueden existir varios algoritmos de solución, tantos como personas que quieran resolverlos.

Problema de las soluciones

Es necesario validar la solución. Es necesario especificar limitaciones del

algoritmo de la solución.

Para esto verificar casos “extremos”.

Ej: Punto de intersección de 2 rectas

Datos de entrada:◦ Coordenadas x11, x12, y11, y12, de 2 puntos que

identifican la recta 1.◦ Coordenadas x21, x22, y21, y22, de 2 puntos que

identifican la recta 2.

(x11, y11)

(x12, y12)

(x22, y22)

(x21, y21)

Recta 2

Recta 1(x, y)

Ej: Punto de intersección de 2 rectas

Solución: Definamos m1 y m2 como las pendientes de las

rectas 1 y 2 sucesivamente:◦ m1 = (x12 – x11) / (y12 – y11)◦ m2 = (x22 – x21) / (y22 – y21)

Así para resolver el problema, lo hacemos usando la ecuación de la recta:◦ y – y11 = m1 * (x – x11)◦ y – y21 = m2 * (x – x21)

Ej: Punto de intersección de 2 rectas

Solución: Resolviendo las ecuaciones tenemos el punto

de intersección de la recta.

x = ? y = ?

Ej: Punto de intersección de 2 rectas

¿La solución encontrada cumple todos los casos del problema?

¿Problemas?:¿Qué pasa si las rectas son paralelas?¿Qué pasa si las rectas son la misma?¿Qué pasa si una recta es paralela al eje y?

3.3 Orientación a Objetos

Orientación a Objetos

Anteriormente se usaba un enfoque llamado “procedural”, donde la solución se especifica como una serie de pasos y subpasos.

Premisa: “El mundo real está compuesto de objetos que interactúan.” y no es un mundo procedural donde todo ocurre secuencialmente.

Programación Orientada a Objetos (POO)

Se usan objetos para solucionar problemas, que son estructuras lógicas que representan elementos o entidades del mundo real.

Se usan nombres que permiten hacer una rápida asociación con el correspondiente objeto.

Se usan atributos o propiedades para representar los estados del objeto.

Se usan métodos que describen el comportamiento del objeto y permite interacción con otros objetos.

POO: Ejemplo1

Objeto (Moto) en el mundo real

POO : Ejemplo1

Representación lógica de la “Moto” -> Clase Moto

Atributos:•Marca•Color•CC•Velocidad Máxima•Peso Máximo•Velocidad Actual

Métodos:•Avanzar•Frenar•Cambiar “cambio”•Acelerar•Mover manubrio

Definiciones

Objetos:◦ Mundo Real: Compuesto de objetos físicos y

simbólicos.◦ POO: Elementos simbólicos que representan objetos

del mundo real.

Clase: ◦ “Un tipo de objeto”, descripción que especifica

características comunes a un objeto de un tipo en común.

Definiciones

Instancia de objeto:◦ Objeto específico de una Clase que se puede

relacionar con otras instancias del mismo u otro tipo.◦ Se le conoce como el “objeto” en sí.◦ Por los atributos una instancia es diferente a otra.

Definiciones

Objeto real: Moto. Clase: “Moto”.

Instancia1:◦ Moto Kawasaki, Amarilla, 250 cc, peso máximo 300 kg,

200 km velocidad máxima.

Instancia 2:◦ Moto Scooter YY-150T-12, 150 cc, peso máximo 120 kg,

80 km velocidad máxima.

POO : Ejemplo2

Objeto (Soldado) en el mundo real

POO : Ejemplo2

Representación lógica del “Soldado” -> Clase Soldado

Métodos:•Morir•Atacar•Cambiar arma•Avanzar•Correr•Girar

Atributos:•Armas•Arma actual•Daño•Velocidad•Posicion

POO : Ejemplo3

Objeto (Zombie) en el “mundo real”

POO : Ejemplo3

Representación lógica del “Zombie” -> Clase Zombie

Métodos:•Morir•Atacar•Avanzar•Correr•Gritar•Contagiar

Atributos:•Estado•Daño•Cantidad de sangre•Tipo•Velocidad

POO: Ejercicio

Métodos: Atributos:

Representación lógica del “Boss” en 1943

POO: Ejercicio

Métodos: Atributos:

Representación lógica del “Jugador” en Winning Eleven

Orientación a Objetos

FuegoSoldado

Soldado

Soldado

Rifle

PastoHumo

Rifle

Orientación a Objetos

Expresa una solución como un conjunto de objetos, que colaboran entre ellos para realizar tareas.

Es más fácil conceptualizar los problemas de esta manera.

Es más fácil llevar la conceptualización a un programa en sí.

Orientación a Objetos

Cavernicola1 Cavernicola2 Soldado1

Soldado2

Soldado3

Cavernicola3

Jugador1Jugador2

Fuego1

Fuego2RifleJugador1

Tiempo1

PuntajeGanado1PuntajeGanado2

Bala1Jugador2

Preguntas ¿?

top related