teoría nº 3 -...
TRANSCRIPT
1 Resolución de Problemas y Algoritmos - 2017
Teoría Nº 3
ü Resolución de Problemas
ü Lenguaje de Problemas
ü Estructuras de Control
ü Diagramas de Flujo
Primer Cuatrimestre 2017
2
Una computadora es, esencialmente, una HERRAMIENTA.
Una herramienta sirve para operar la conversión de una materia prima en un producto mediante un dispositivo que desarrolla un proceso; el proceso a su vez, lo determina una persona.
Resolución de problemas
• materia prima
• producto
• dispositivo
• proceso
datos
información
componentes de la computadora
PROBLEMA
PROBLEMA RESUELTO
?
Analogía
Resolución de Problemas y Algoritmos - 2017
LapirámidenuméricadelSeñorMothadaComo un juego de preparación para los a lumnos de la c lase de computación del colegio secundario, el señor Mothada diseñó una pirámide numérica para poner a prueba la matemática lógica y mental. Excepto en la fila de la base, cada bloque contiene un número que es la suma de los 2 números de abajo, de manera que F= A+B, y así, sucesivamente. ¿Puedes descubrir los números que faltan?
A=104 B= C=91 D=22 E=
F= G=132 H= I=
J= K= L=252
M=522 N=
O=
Resolución de Problemas
Resolución de Problemas y Algoritmos - 2017
LapirámidenuméricadelSeñorMothada
A=104 B= C=91 D=22 E=
F= G=132 H= I=
J= K= L=252
M=522 N=
O=¿Solución?
Resolución de Problemas
¿Estrategia?
Resolución de Problemas y Algoritmos - 2017
5
• Enunciado Diseñar un método para
lavarse las manos .
Bosquejo de Solución – Abrir la canilla – Poner las manos debajo del agua y refrejar – Tomar el jabón – Enjabonarse – Dejar el jabón – Refrejarse – Enjuagarse – Cerrar la canilla – Tomar la toalla – Secarse – Dejar la toalla
Resolución de Problemas
Resolución de Problemas y Algoritmos - 2017
6
Tipos de problemas a resolver:
Según la solución a encontrar
Ej.: Elección de un candidato en un sistema de votación .
Ej.: La resolución de un sistema de ecuaciones.
Nosotros nos concentraremos en problemas de tipo OBJETIVO
Subjetiva
La solución depende de un sistema de valores o criterios subjetivos
planteo vago con soluciones dispares y/o contrapuestas.
Objetiva
La solución depende de hechos objetivos.
planteo contiene condiciones y/o
restricciones que permiten decidir la validez de la solución.
Resolución de Problemas
Resolución de Problemas y Algoritmos - 2017
Resolución de Problemas
Método de Polya
Resolución de Problemas y Algoritmos - 2017
ResolucióndeProblemas
Método de Polya
Resolución de Problemas y Algoritmos - 2017
ResolucióndeProblemas
Método de Polya
Resolución de Problemas y Algoritmos - 2017
ResolucióndeProblemas
Método de Polya
Resolución de Problemas y Algoritmos - 2017
¿Soluciona el problema?
¿Es la mejor solución?
ResolucióndeProblemas
Método de Polya
Resolución de Problemas y Algoritmos - 2017
ProblemaUna habitación, con 2 ventanas rectangulares, mide 25m2, cada baldosa mide 0,04m2. ¿Cuántas baldosas se necesitan para cubrir el piso completo de la habitación?
¿Datos?
¿Qué hacer?
¿Qué se desea saber?
ResolucióndeProblemas
Método de Polya
Resolución de Problemas y Algoritmos - 2017
1. Entenderelproblema.
Escribir EL Objetivo de este Problema y los datos a utilizar, descartando los
datos innecesarios según el objetivo planteado.
Algunas de las preguntas que conviene realizarse en este momento son:
• ¿Se entiende lo que plantea el problema? ¿Podrían expresarlo
con sus propias palabras?
• ¿Se entiende a qué hay que llegar? ¿Cuál es el objetivo?
ResolucióndeProblemas
Método de Polya
Resolución de Problemas y Algoritmos - 2017
ProblemaUna habitación, con 2 ventanas rectangulares, mide 25m2, cada baldosa mide 0,04m2. ¿Cuántas baldosas se necesitan para cubrir el piso completo de la habitación?
¿Objetivo?
ResolucióndeProblemas
Método de Polya
Resolución de Problemas y Algoritmos - 2017
1. Entenderelproblema.Escribir EL Objetivo de este Problema y los datos a utilizar, descartando los
datos innecesarios según el objetivo planteado.
Algunas de las preguntas que conviene realizarse en este momento son:
• ¿Se pueden distinguir datos? ¿Hay datos desechables? • ¿Hay datos, que creen que sirven pero no saben cómo
utilizarlos? ¿Cuáles?
ResolucióndeProblemas
Método de Polya
Resolución de Problemas y Algoritmos - 2017
ProblemaUna habitación, con 2 ventanas rectangulares, mide 25m2, cada baldosa mide 0,04m2. ¿Cuántas baldosas se necesitan para cubrir el piso completo de la habitación?
¿Datos relevantes?
¿Datos irrelevantes?
ResolucióndeProblemas
Método de Polya
1. Entenderelproblema.
Resolución de Problemas y Algoritmos - 2017
2.De2inirunplan.
En este punto es importante pensar en:
¿Es posible dibujar alguna figura o esquema que nos oriente?
¿Qué relación existe entre el objetivo y el estado inicial planteado en el
problema?
¿Qué cálculos se deben realizar? ¿Identifica algún patrón?
En qué orden deberíamos resolver los cálculos para descifrar la incógnita?
Para elaborar el plan a seguir es necesario utilizar alguna estrategia que los oriente a encontrar
ideas útiles a seguir.
ResolucióndeProblemas
Método de Polya
Resolución de Problemas y Algoritmos - 2017
18
ResolucióndeProblemas
Resolución de Problemas y Algoritmos - 2017
Estrategia: Técnica y conjunto de actividades destinadas a conseguir un objetivo. Por ejemplo: Divide y venceras
• Ensayo-Error
• Buscar un patrón
• Hacer una lista
• Hacer una figura
• Hacer diagramas
• Buscar una fórmula
ProblemaUna habitación, con 2 ventanas rectangulares, mide 25m2, cada baldosa mide 0,04m2. ¿Cuántas baldosas se necesitan para cubrir el piso completo de la habitación?
Definamos un plan
ResolucióndeProblemas
Método de Polya
2.De2inirunplan.
Resolución de Problemas y Algoritmos - 2017
3.Ejecutarelplan
¿Se han empleado todos los datos?
¿Se ha tenido en cuenta todas las nociones del problema?
¿Se logró el objetivo especificado en la primera etapa?
En este punto deben seguir las ideas y pasos
establecidos en la etapa anterior hasta que se
encuentre la solución o
hasta que se encuentren con otra dificultad, en cuyo
caso será necesario volver a pensar...
ResolucióndeProblemas
Método de Polya
Resolución de Problemas y Algoritmos - 2017
4.Mirarhaciaatrás:
En esta etapa es necesario que tengan una visión retrospectiva donde
puedan observar:
¿qué fue lo que se hizo? ¿El razonamiento seguido tuvo en
cuenta todas las restricciones del problema?
¿El resultado obtenido, es correcto? ¿Es posible verificarlo?
¿Es posible extender la solución a un caso más general?
ResolucióndeProblemas
Método de Polya
Resolución de Problemas y Algoritmos - 2017
ProblemaUna habitación, con 2 ventanas rectangulares, mide 25m2, cada baldosa mide 0,04m2. ¿Cuántas baldosas se necesitan para cubrir el piso completo de la habitación?
¿Es general la solución?
¿Y si la habitación mide 30m2?
ResolucióndeProblemas
Método de Polya
Resolución de Problemas y Algoritmos - 2017
ResolucióndeProblemas(Repaso)
✓ Problema en forma de enunciado ✓ Reconocimiento de
datos importantes ✓ Eliminación de datos
innecesarios ✓ Determinación del
objetivo
ResolucióndeProblemas
Método de Polya
Resolución de Problemas y Algoritmos - 2017
Resolución del problema: encontrar una secuencia de acciones expresadas en forma de método o receta.
24
Problema
Problema’ Resolución del problema
Expresarlo
Solución Problema
Resolución de Problemas
Resolución de Problemas y Algoritmos - 2017
25
Todo problema es expresado en forma verbal o escrita a través de un enunciado.
L a A b s t r a c c i ó n d e u n problema describe los aspectos fundamentales del mismo y descarta detalles irrelevantes
Inconveniente: 4 la cantidad de información suministrada.
Necesidad: 4 obviar los detalles irrelevantes.
Técnica: 4la utilización de una ABSTRACCIÓN. Objetivo: 4Construir la abstracción de un problema de la realidad. 4Construir una simplificación de la misma 4Construir un MODELO.
Comprender el problema: Representación Resolución de Problemas
Modelo: Representación de alguna cosa.
Resolución de Problemas y Algoritmos - 2017
26
Utilizaremos abstracción en un sentido de “obtener la esencia” al identificar o percibir el problema.
Comprender el problema: Abstracción Resolución de Problemas
En el nivel superior de abstracción, se establece una solución en términos amplios, usando el lenguaje del entorno natural.
En los niveles inferiores de abstracción se toma una orientación más procedimental. La terminología orientada al problema se acompaña con una terminología orientada a la implementación, en un esfuerzo para establecer una solución.
Por último, en el nivel más bajo de abstracción, se establece la solución de forma que pueda implementarse directamente.
Resolución de Problemas y Algoritmos - 2017
27
¿Por qué unas personas ven unas cosas que otros no ven teniendo adelante el mismo escenario?
Resolución de Problemas
UNSL - Resolución de Problemas y Algoritmos - 2016
Comprender el problema: Abstracción
Los procesos de abstracción y aprehensión
están condicionados en buena medida por
nuestras características personales y
capacidades... Pero también por el ejercicio,
esfuerzo y el uso de métodos adecuados.
Mediante la Resolución del problema se pretende llegar a
28
Problema
Solución
Problema’ Se convierte en
Descomposición
Problema
Resolución de Problemas
Resolución de Problemas y Algoritmos - 2017
29
Existen problemas cuya solución puede ser expresada mediante la utilización de un método, receta o fórmula. Ej.: armar un juguete por partes, hacer una torta.
Características: 4 acciones perfectamente delimitadas. 4 número finito de acciones. 4 orden pre-establecido de las acciones.
Bosquejar una solución
ALGORITMO
Un Algoritmo consiste de un conjunto de acciones (pasos) que, ejecutados de la manera correcta permite obtener un resultado en un tiempo acotado
Un Algoritmo es unívoco, finito, de duración finita, ordenado.
Resolución de Problemas
Resolución de Problemas y Algoritmos - 2017
30
Algoritmo
Un algoritmo es una sucesión de instrucciones o pasos precisos que permiten resolver un problema. Características
ü Consiste en una secuencia de etapas con un punto de inicio. ü Debe ser preciso (no ambiguo). ü Debe ser general ü Debe ser finito en tamaño y tiempo.
Resolución de Problemas
Resolución de Problemas y Algoritmos - 2017
31
Todo proceso de resolución de un problema puede representarse como la transición entre dos estados diferentes: un estado Inicial y un estado Final o Deseado.
Como encarar un problema
O lo que es lo mismo, para resolver un problema se debe establecer cual es el conjunto de tareas que se deben realizar para poder llegar al estado final.
ACCIONES
EI
EF
Conjunto de Acciones que llevan de un estado al otro
Resolución de Problemas
Resolución de Problemas y Algoritmos - 2017
32
Problemas de Tipo Computacional
Definiciones asociadas: Trabajo: problema a resolver. Enunciado: descripción del trabajo a realizar. Procesador: entidad capaz de realizar un trabajo indicado a través de un algoritmo. Ambiente: conjunto de todos los recursos necesarios para la ejecución de un trabajo. Algoritmo: conjunto de acciones (pasos) que debe realizar la entidad procesadora para llegar al fin perseguido.
Resolución de Problemas
Resolución de Problemas y Algoritmos - 2017
33
¿Qué se considera ACCIÓN?
ACCIÓN Es un evento que modifica al ambiente establecido. Restricción Dicha acción debe ser especificada de modo que pueda ser comprendida por el procesador sin mayor información adicional (no ambigua) . Esto se denomina Acción Primitiva. Determinación Existen diferentes técnicas para descomponer un problema en un conjunto de acciones primitivas. Uno de ellos es denominado Refinamiento Sucesivo.
Resolución de Problemas
Resolución de Problemas y Algoritmos - 2017
Como abordar un problema
Actividad: Programar en papel cuadriculado
Primitivas disponibles
34
Resolución de Problemas
Resolución de Problemas y Algoritmos - 2017
35
Etapas en el proceso de resolver un problema: 1- Comprender el problema: lograr una abstracción
4 Descomposición del problema. 2- Bosquejar una solución:
4 Determinar un algoritmo. 4 Codificar ese algoritmo.
3- Volver hacia atrás: perfeccionar la solución
4 Ejecutar el algoritmo bosquejado. 4 Corregir (depurar) el algoritmo.
Resolución de Problemas
Resolución de Problemas y Algoritmos - 2017
36
Determinación Existen diferentes técnicas para descomponer un problema en un conjunto de acciones primitivas. Una de ellas es denominada Refinamiento Sucesivo.
Dado un trabajo T, descripto por medio de acciones no primitivas, tal que transforma el ambiente desde el estado inicial E0 en un estado final Ef, se puede encontrar una descomposición t1,t2,...,tn que constituye una secuencia de acciones primitivas que ejecuta el trabajo T.
Donde: para cualquier ti dado
• si es una acción primitiva para el procesador, se finaliza la descomposición. • si no es acción primitiva para el procesador, ésta se debe descomponer en una nueva secuencia ti,1, ti,2, ...,ti,k.
Resolución de Problemas y Algoritmos - 2017
37
E0
Ef
T
E1 t1
t2
t3
tn
E2
En-1
t3,1
t3,2
t3,3
Refinamiento Sucesivo
Resolución de Problemas
Resolución de Problemas y Algoritmos - 2017
38
Ejemplo Nº 1: Enunciado: sumar los números 124, 59 y 3 usando la calculadora de bolsillo. Procesador: una persona que entienda la tarea descripta y cuente con los elementos necesarios para realizarla. Ambiente: la calculadora de bolsillo. Acciones primitivas: ( la notación “< >” representa una tecla )
4 Oprimir <C> (limpiar pantalla) 4 Oprimir <dig> 4 Oprimir <+> 4 Oprimir <=> (mostrar el resultado)
Refinamiento Sucesivo
Resolución de Problemas
Resolución de Problemas y Algoritmos - 2017
39
Algoritmo: • Versión 1: (nivel 1 de descomposición) • t1 - Limpiar visor. • t2 - Ingresar el número 124. • t3 - Oprimir tecla de suma. • t4 - Ingresar el número 59. • t5 - Oprimir tecla de suma. • t6 - Ingresar el número 3. • t7 - Oprimir tecla igual para obtener resultado.
Refinamiento Sucesivo
Resolución de Problemas
Resolución de Problemas y Algoritmos - 2017
40
Algoritmo: Versión 2: (nivel 2 de descomposición) t1 - Oprimir <C> t2 - Ingresar el nro. 124. t3 - Oprimir <+> t4 - Ingresar el nro. 59. t5 - Oprimir <+> t6 - Oprimir <3> t7 - Oprimir <=>
t21 - Oprimir <1> t22 - Oprimir <2> t23 - Oprimir <4>
t21 - Oprimir <5> t22 - Oprimir <9>
Refinamiento Sucesivo
Resolución de Problemas
Resolución de Problemas y Algoritmos - 2017
41
Versión 3: (Codificación) t1 - Oprimir <C> t21 - Oprimir <1> t22 - Oprimir <2> t23 - Oprimir <4> t3 - Oprimir <+>
Algoritmo: (Otra opción de versión) Versión 2: (nivel 2 de descomposición)
t1 - Limpiar visor. t21 - Ingresar el número 1.
t22 - Ingresar el número 2. t23 - Ingresar el número 4. t3 - Oprimir tecla de suma. t41 - Ingresar el número 5. t42 - Ingresar el número 9. t5 - Oprimir tecla de suma. t6 - Ingresar el número 3. t7 - Oprimir tecla igual para obtener resultado.
t41 - Oprimir <5> t42 - Oprimir <9> t5 - Oprimir <+> t6 - Oprimir <3> t7 - Oprimir <=>
Resolución de Problemas: Refinamiento Sucesivo
Resolución de Problemas y Algoritmos - 2017
42
Procesador: una tortuga con la habilidad de moverse y dibujar sobre el plano. Ambiente: una hoja de papel. Acciones primitivas:
4 DERECHA <grados> 4 IZQUIERDA <grados> 4 ADELANTE <número_de_pasos>
Situación Inicial del Ambiente:
Ejemplo Nº 2: Enunciado: se desea dibujar un farol con pedestal del siguiente tipo.
t papel tortuga
Resolución de Problemas: Refinamiento Sucesivo
Resolución de Problemas y Algoritmos - 2017
Donde t1 se puede descomponer en (versión 2):
43
t1 - Dibujar la base, que es un rectángulo. t2 - Dibujar el poste, que es una línea. t3 - Dibujar el farol, que es un rombo.
t11 - Dibujar el borde superior del rectángulo. t12 - Dibujar el borde derecho del rectángulo. t13 - Dibujar el borde inferior del rectángulo. t14 - Dibujar el borde izquierdo del rectángulo
Algoritmo: Versión 1:
Resolución de Problemas: Refinamiento Sucesivo
Resolución de Problemas y Algoritmos - 2017
44
Donde t11 se puede descomponer en (versión 3): t111 - DERECHA 90 t112 - ADELANTE 40
Donde t12 se puede descomponer en: t121 - DERECHA 90 t122 - ADELANTE 10
Donde t13 se puede descomponer t131 - DERECHA 90 t132 - ADELANTE 40
Acciones primitivas:
4 DERECHA <grados> 4 IZQUIERDA <grados> 4 ADELANTE <número_de_pasos>
Resolución de Problemas y Algoritmos - 2017
45
Donde t14 se puede descomponer en: t141 - DERECHA 90 t142 - ADELANTE 10
t111 - DERECHA 90 t112 - ADELANTE 40 t121 - DERECHA 90 t122 - ADELANTE 10 t131 - DERECHA 90 t132 - ADELANTE 40
t141 - DERECHA 90 t142 - ADELANTE 10
t14- Dibujar el borde izquierdo del rectángulo.
Agrupando las acciones primitivas para la acción t1 obtenemos:
Resolución de Problemas: Refinamiento Sucesivo
Resolución de Problemas y Algoritmos - 2017
46
Donde t2 se puede descomponer en (versión 2):
t21 - Posicionar la tortuga en la mitad de la base. t22 - Dibujar el poste.
Donde t21 se puede descomponer en (versión 3): t211 - DERECHA 90 t212 - ADELANTE 20 t213 - IZQUIERDA 90
t1 - Dibujar la base, que es un rectángulo. t2 - Dibujar el poste, que es una línea. t3 - Dibujar el farol, que es un rombo.
Resolución de Problemas: Refinamiento Sucesivo
Resolución de Problemas y Algoritmos - 2017
47
Donde t3 se puede descomponer en (versión 2):
t31 - Dibujar el borde inf. derecho del rombo. t32 - Dibujar el borde sup. derecho del rombo. t33 - Dibujar el borde sup. izquierdo del rombo. t34 - Dibujar el borde inf. izquierdo del rombo. NOTA: Se deja como tarea la descomposición de cada una de las
acciones t3i en acciones primitivas
.
t1 - Dibujar la base, que es un rectángulo. t2 - Dibujar el poste, que es una línea. t3 - Dibujar el farol, que es un rombo.
Resolución de Problemas: Refinamiento Sucesivo
Resolución de Problemas y Algoritmos - 2017
48
Desarrollando el conjunto total de acciones para t1 y t2 tendremos el siguiente algoritmo:
t111 - DERECHA 90 t112 - ADELANTE 40 t121 - DERECHA 90 t122 - ADELANTE 10 t131 - DERECHA 90 t132 - ADELANTE 40 t141 - DERECHA 90 t142 - ADELANTE 10 t22 - ADELANTE 30
t3 - ......
Resolución de Problemas: Refinamiento Sucesivo
Resolución de Problemas y Algoritmos - 2017
49
Observando, existe una secuencia de cuatro primitivas que se repite 2 veces.
REPETIR <número veces> [ <acciones_ primitivas> ]
Se incorpora una nueva acción primitiva, denominada primitiva de control que permitirá simplificar el algoritmo.
t1 - REPETIR 2 [ DERECHA 90 ADELANTE 40 DERECHA 90 ADELANTE 10 ]
t211 - DERECHA 90 t212 - ADELANTE 20 t213 - IZQUIERDA 90 t22 - ADELANTE 30 t3 - ......
Entonces nuestro algoritmo quedará:
Resolución de Problemas: Refinamiento Sucesivo
Resolución de Problemas y Algoritmos - 2017