Teoría Nº 4 - dirinfo.unsl.edu.ardirinfo.unsl.edu.ar/servicios/abm/assets/uploads/... · lavarse...

62
Fund. de la Informática -Int. a la Computación - Int.a la Programación 1 Teoría Nº 4 Resolución de Problemas Lenguaje de Problemas Datos Segundo Cuatrimestre 2015 En la vida no hay cosas que temer, sólo hay cosas que comprender Marie Curie

Transcript of Teoría Nº 4 - dirinfo.unsl.edu.ardirinfo.unsl.edu.ar/servicios/abm/assets/uploads/... · lavarse...

Page 1: Teoría Nº 4 - dirinfo.unsl.edu.ardirinfo.unsl.edu.ar/servicios/abm/assets/uploads/... · lavarse las manos . Bosquejo de Solución – Abrir la canilla – Poner las manos debajo

Fund. de la Informática -Int. a la Computación - Int.a la Programación 1

Teoría Nº 4

ü Resolución de Problemas

ü Lenguaje de Problemas

ü Datos

Segundo Cuatrimestre 2015

En la vida no hay cosas que temer, sólo hay cosas que comprender

Marie Curie

Page 2: Teoría Nº 4 - dirinfo.unsl.edu.ardirinfo.unsl.edu.ar/servicios/abm/assets/uploads/... · lavarse las manos . Bosquejo de Solución – Abrir la canilla – Poner las manos debajo

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

UNSL - Fund. de la Informática -Introd.a la Computación -Introd.a la Programación (2do Cuatrimestre 2015)

Page 3: Teoría Nº 4 - dirinfo.unsl.edu.ardirinfo.unsl.edu.ar/servicios/abm/assets/uploads/... · lavarse las manos . Bosquejo de Solución – Abrir la canilla – Poner las manos debajo

3

Ejemplo:    Se  tienen  dos  relojes  de  arena.  Uno  dura  4  minutos,  y  el  otro  7.  Se  quieren  medir  9  minutos.  ¿Cómo  se  lo  puede  lograr?  

Resolución de Problemas

Encontrar un método que resuelva el problema

Inicie los dos relojes de arena al mismo tiempo. Cuando se acabe el de 4 minutos, delo vuelta. Cuando se acabe el de 7 minutos, delo vuelta. Luego de 1 minuto, se acabará el de 4 minutos (habrán pasado 8 minutos totales), y el de 7 minutos habrá estado corriendo por 1 minuto. Delo vuelta, y cuando termine, un minuto más tarde, habrán pasado 9 minutos totales

UNSL - Fund. de la Informática -Introd.a la Computación -Introd.a la Programación (2do Cuatrimestre 2015)

Page 4: Teoría Nº 4 - dirinfo.unsl.edu.ardirinfo.unsl.edu.ar/servicios/abm/assets/uploads/... · lavarse las manos . Bosquejo de Solución – Abrir la canilla – Poner las manos debajo

4

Resolución de Problemas

• Piensa un número sin decirlo (Lo llamaremos X)

Ejemplo: Piensa un número y yo lo adivino

¿Resuelve el método encontrado diferentes situaciones?

• Suma a X el valor 5 (Lo llamaremos X1)

• Multiplica a X1 por 2 (Lo llamaremos X2)

• Restale a X2 el valor 4 (Lo llamaremos X3) • Divide a X3 por 2 (Lo llamaremos X4) •  ¿Cuál es el valor de X4?

•  Entonces X es

UNSL - Fund. de la Informática -Introd.a la Computación -Introd.a la Programación (2do Cuatrimestre 2015)

Page 5: Teoría Nº 4 - dirinfo.unsl.edu.ardirinfo.unsl.edu.ar/servicios/abm/assets/uploads/... · lavarse las manos . Bosquejo de Solución – Abrir la canilla – Poner las manos debajo

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

UNSL - Fund. de la Informática -Introd.a la Computación -Introd.a la Programación (2do Cuatrimestre 2015)

Page 6: Teoría Nº 4 - dirinfo.unsl.edu.ardirinfo.unsl.edu.ar/servicios/abm/assets/uploads/... · lavarse las manos . Bosquejo de Solución – Abrir la canilla – Poner las manos debajo

6

Resolver Problemas… ¿Cómo?

Una computadora posee un repertorio muy reducido de instrucciones elementales que es capaz de entender y obedecer. Determinar el proceso de resolución de un problema consiste en establecer la secuencia de dichas instrucciones elementales que llevarán a que la computadora resuelva el problema por nosotros.

La secuencia de instrucciones elementales a ser ejecutadas por una computadora se denomina: Programa

La acción de determinar la secuencia de instrucciones elementales se denomina: Programar

Resolución de Problemas

UNSL - Fund. de la Informática -Introd.a la Computación -Introd.a la Programación (2do Cuatrimestre 2015)

Page 7: Teoría Nº 4 - dirinfo.unsl.edu.ardirinfo.unsl.edu.ar/servicios/abm/assets/uploads/... · lavarse las manos . Bosquejo de Solución – Abrir la canilla – Poner las manos debajo

7

No obstante:

Las computadoras son herramientas con una amplia variedad de aplicaciones. Los problemas a resolver son de una amplia gama, mayormente No Triviales.

La mayor dificultad radica en el propio proceso de resolver el problema (determinar un ALGORITMO) más que en escribir un programa en un lenguaje de programación.

Resolución de Problemas

UNSL - Fund. de la Informática -Introd.a la Computación -Introd.a la Programación (2do Cuatrimestre 2015)

Page 8: Teoría Nº 4 - dirinfo.unsl.edu.ardirinfo.unsl.edu.ar/servicios/abm/assets/uploads/... · lavarse las manos . Bosquejo de Solución – Abrir la canilla – Poner las manos debajo

8

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 abordar 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

UNSL - Fund. de la Informática -Introd.a la Computación -Introd.a la Programación (2do Cuatrimestre 2015)

Page 9: Teoría Nº 4 - dirinfo.unsl.edu.ardirinfo.unsl.edu.ar/servicios/abm/assets/uploads/... · lavarse las manos . Bosquejo de Solución – Abrir la canilla – Poner las manos debajo

9

Como abordar un problema

Resolución de Problemas

UNSL - Fund. de la Informática -Introd.a la Computación -Introd.a la Programación (2do Cuatrimestre 2015)

Actividad: Programar en papel cuadriculado

Primitivas disponibles

Page 10: Teoría Nº 4 - dirinfo.unsl.edu.ardirinfo.unsl.edu.ar/servicios/abm/assets/uploads/... · lavarse las manos . Bosquejo de Solución – Abrir la canilla – Poner las manos debajo

10

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

Resolución de Problemas

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.

UNSL - Fund. de la Informática -Introd.a la Computación -Introd.a la Programación (2do Cuatrimestre 2015)

Page 11: Teoría Nº 4 - dirinfo.unsl.edu.ardirinfo.unsl.edu.ar/servicios/abm/assets/uploads/... · lavarse las manos . Bosquejo de Solución – Abrir la canilla – Poner las manos debajo

Resolución del problema: encontrar una secuencia de acciones expresadas en forma de método o receta.

11

Lenguaje del problema

Problema

Solución

Problema’ Definir

Expresarlo

Solución Problema

Resolución de Problemas

UNSL - Fund. de la Informática -Introd.a la Computación -Introd.a la Programación (2do Cuatrimestre 2015)

Page 12: Teoría Nº 4 - dirinfo.unsl.edu.ardirinfo.unsl.edu.ar/servicios/abm/assets/uploads/... · lavarse las manos . Bosquejo de Solución – Abrir la canilla – Poner las manos debajo

12

Método de George Pólya:

1- Comprender el problema: entender lo que se requiere 4 Cuáles son las partes principales del problema. 4 Determinar la/s incógnita/s. 4 Determinar datos y restricciones. 4 Obtener una representación más simple.

2- Concebir un plan: Bosquejar una solución

4 Qué pasos se deben seguir. 4 Qué cálculos y acciones se deben realizar. 4- Visión Retrospectiva: perfeccionar la solución 4 Reconsiderar el resultado obtenido. 4 Reconsiderar el camino realizado.

Pregunta: ¿Cómo determinar un conjunto válido de acciones que soluciona a un problema?

3- Ejecutar el plan: 4 Comprobar cada uno de los pasos. 4 Énfasis en la habilidad de ejecutar el plan trazado y no en realizar los cálculos en sí. .

Resolución de Problemas

UNSL - Fund. de la Informática -Introd.a la Computación -Introd.a la Programación (2do Cuatrimestre 2015)

Page 13: Teoría Nº 4 - dirinfo.unsl.edu.ardirinfo.unsl.edu.ar/servicios/abm/assets/uploads/... · lavarse las manos . Bosquejo de Solución – Abrir la canilla – Poner las manos debajo

13

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

Modelo: Representación de alguna cosa.

Resolución de Problemas

UNSL - Fund. de la Informática -Introd.a la Computación -Introd.a la Programación (2do Cuatrimestre 2015)

Page 14: Teoría Nº 4 - dirinfo.unsl.edu.ardirinfo.unsl.edu.ar/servicios/abm/assets/uploads/... · lavarse las manos . Bosquejo de Solución – Abrir la canilla – Poner las manos debajo

14

Diversidad de representaciones

Dependiendo de la finalidad Ej: la construcción de un edificio de Departamentos

4 Arquitecto 4 Ing. Civil 4 Decorador 4 Inmobiliaria

Planos. Estr. Gral y Calculos. Bosquejos Afiches

Resolución de Problemas

UNSL - Fund. de la Informática -Introd.a la Computación -Introd.a la Programación (2do Cuatrimestre 2015)

Page 15: Teoría Nº 4 - dirinfo.unsl.edu.ardirinfo.unsl.edu.ar/servicios/abm/assets/uploads/... · lavarse las manos . Bosquejo de Solución – Abrir la canilla – Poner las manos debajo

15

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.

Bosquejar una solución

ALGORITMO

Resolución de Problemas

UNSL - Fund. de la Informática -Introd.a la Computación -Introd.a la Programación (2do Cuatrimestre 2015)

Page 16: Teoría Nº 4 - dirinfo.unsl.edu.ardirinfo.unsl.edu.ar/servicios/abm/assets/uploads/... · lavarse las manos . Bosquejo de Solución – Abrir la canilla – Poner las manos debajo

16

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.

Lenguaje del problema

UNSL - Fund. de la Informática -Introd.a la Computación -Introd.a la Programación (2do Cuatrimestre 2015)

Page 17: Teoría Nº 4 - dirinfo.unsl.edu.ardirinfo.unsl.edu.ar/servicios/abm/assets/uploads/... · lavarse las manos . Bosquejo de Solución – Abrir la canilla – Poner las manos debajo

17

Ejemplo

Modelo: Sean A = a1a2a3, B = b1b2b3 y C = c1c2c3 hacer: A

B C D

+ a1a2a3 b1b2b3 c1c2c3 d1d2d3

+ es equivalente

a

Enunciado: Dados tres números enteros entre 100 y 200, se desea realizar la suma de los mismos. Abstracción (1) Dados A,B y C números enteros entre 100 y 200, se desea realizar su suma. (2) Dados A,B y C ∈ Z con 100 ≤ A,B y C ≤ 200 hacer A + B + C

Resolución de Problemas

UNSL - Fund. de la Informática -Introd.a la Computación -Introd.a la Programación (2do Cuatrimestre 2015)

Page 18: Teoría Nº 4 - dirinfo.unsl.edu.ardirinfo.unsl.edu.ar/servicios/abm/assets/uploads/... · lavarse las manos . Bosquejo de Solución – Abrir la canilla – Poner las manos debajo

18

Volver hacia atrás - Solución mejorada: d3 = a3 + b3 + c3

Si d3 es mayor o igual que 10, d3 = resto de dividir d3 / 10 acarreo = cociente de dividir d3 / 10 d2 = a2 + b2 + c2 + acarreo

Si d2 es mayor o igual que 10, d2 = resto de dividir d2 / 10 acarreo = cociente de dividir d2 / 10

d1 = a1 + b1 + c1+ acarreo

Bosquejo de Solución:

d3 = a3 + b3 + c3

d2 = a2 + b2 + c2

d1 = a1 + b1 + c1

Resolución de Problemas

UNSL - Fund. de la Informática -Introd.a la Computación -Introd.a la Programación (2do Cuatrimestre 2015)

Page 19: Teoría Nº 4 - dirinfo.unsl.edu.ardirinfo.unsl.edu.ar/servicios/abm/assets/uploads/... · lavarse las manos . Bosquejo de Solución – Abrir la canilla – Poner las manos debajo

19

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

UNSL - Fund. de la Informática -Introd.a la Computación -Introd.a la Programación (2do Cuatrimestre 2015)

Page 20: Teoría Nº 4 - dirinfo.unsl.edu.ardirinfo.unsl.edu.ar/servicios/abm/assets/uploads/... · lavarse las manos . Bosquejo de Solución – Abrir la canilla – Poner las manos debajo

20

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

Resolución de Problemas

UNSL - Fund. de la Informática -Introd.a la Computación -Introd.a la Programación (2do Cuatrimestre 2015)

Page 21: Teoría Nº 4 - dirinfo.unsl.edu.ardirinfo.unsl.edu.ar/servicios/abm/assets/uploads/... · lavarse las manos . Bosquejo de Solución – Abrir la canilla – Poner las manos debajo

21

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.

UNSL - Fund. de la Informática -Introd.a la Computación -Introd.a la Programación (2do Cuatrimestre 2015)

Page 22: Teoría Nº 4 - dirinfo.unsl.edu.ardirinfo.unsl.edu.ar/servicios/abm/assets/uploads/... · lavarse las manos . Bosquejo de Solución – Abrir la canilla – Poner las manos debajo

22

E0

Ef

T

E1 t1

t2

t3

tn

E2

En-1

t3,1

t3,2

t3,3

Refinamiento Sucesivo

Resolución de Problemas

UNSL - Fund. de la Informática -Introd.a la Computación -Introd.a la Programación (2do Cuatrimestre 2015)

Page 23: Teoría Nº 4 - dirinfo.unsl.edu.ardirinfo.unsl.edu.ar/servicios/abm/assets/uploads/... · lavarse las manos . Bosquejo de Solución – Abrir la canilla – Poner las manos debajo

Mediante la Resolución del problema se pretende llegar a

23

Lenguaje del problema

Problema

Solución

Problema’ Se convierte en

Descomposición

Solución Problema

Resolución de Problemas

UNSL - Fund. de la Informática -Introd.a la Computación -Introd.a la Programación (2do Cuatrimestre 2015)

Page 24: Teoría Nº 4 - dirinfo.unsl.edu.ardirinfo.unsl.edu.ar/servicios/abm/assets/uploads/... · lavarse las manos . Bosquejo de Solución – Abrir la canilla – Poner las manos debajo

24

Cómo se expresa?

4 diversidad de métodos.

Característica:

4 en un lenguaje comprensible para las personas.

LENGUAJE DEL PROBLEMA

Algoritmo

Lenguaje del problema

UNSL - Fund. de la Informática -Introd.a la Computación -Introd.a la Programación (2do Cuatrimestre 2015)

Page 25: Teoría Nº 4 - dirinfo.unsl.edu.ardirinfo.unsl.edu.ar/servicios/abm/assets/uploads/... · lavarse las manos . Bosquejo de Solución – Abrir la canilla – Poner las manos debajo

25

Enunciado: se desea dibujar un farol con pedestal del siguiente tipo. 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:

t papel tortuga

Lenguaje de Problemas

UNSL - Fund. de la Informática -Introd.a la Computación -Introd.a la Programación (2do Cuatrimestre 2015)

Page 26: Teoría Nº 4 - dirinfo.unsl.edu.ardirinfo.unsl.edu.ar/servicios/abm/assets/uploads/... · lavarse las manos . Bosquejo de Solución – Abrir la canilla – Poner las manos debajo

26

Donde t1 se puede descomponer en (versión 2):

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:

Lenguaje de Problemas

UNSL - Fund. de la Informática -Introd.a la Computación -Introd.a la Programación (2do Cuatrimestre 2015)

Page 27: Teoría Nº 4 - dirinfo.unsl.edu.ardirinfo.unsl.edu.ar/servicios/abm/assets/uploads/... · lavarse las manos . Bosquejo de Solución – Abrir la canilla – Poner las manos debajo

27

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

t11 - Dibujar el borde superior del rectángulo.

Acciones primitivas:

4 DERECHA <grados> 4 IZQUIERDA <grados> 4 ADELANTE <número_de_pasos>

t12 - Dibujar el borde derecho del rectángulo. t13- Dibujar el borde inferior del rectángulo.

Lenguaje de Problemas

UNSL - Fund. de la Informática -Introd.a la Computación -Introd.a la Programación (2do Cuatrimestre 2015)

Page 28: Teoría Nº 4 - dirinfo.unsl.edu.ardirinfo.unsl.edu.ar/servicios/abm/assets/uploads/... · lavarse las manos . Bosquejo de Solución – Abrir la canilla – Poner las manos debajo

28

Lenguaje del problema

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)

UNSL - Fund. de la Informática -Introd.a la Computación -Introd.a la Programación (2do Cuatrimestre 2015)

Page 29: Teoría Nº 4 - dirinfo.unsl.edu.ardirinfo.unsl.edu.ar/servicios/abm/assets/uploads/... · lavarse las manos . Bosquejo de Solución – Abrir la canilla – Poner las manos debajo

29

Ejemplo Nº 1: Sumar los números 124, 59 y 3 usando la calculadora de bolsillo.

Versión 2: (versión 1 refinada) t1 - Limpiar visor. t21 - Colocar el número 1. t22 - Colocar el número 2. t23 - Colocar el número 4. t3 - Oprimir tecla de suma. t41 - Colocar el número 5. t42 - Colocar el número 9. t5 - Oprimir tecla de suma. t6 - Colocar el número 3. t7 - Oprimir tecla igual para obtener resultado.

Algoritmo expresado en lenguaje del problema Versión 1: t1 - Limpiar visor. t2 - Colocar el número 124. t3 - Oprimir tecla de suma. t4 - Colocar el número 59. t5 - Oprimir tecla de suma. t6 - Colocar el número 3. t7 - Obtener obtener resultado.

Lenguaje del problema

UNSL - Fund. de la Informática -Introd.a la Computación -Introd.a la Programación (2do Cuatrimestre 2015)

Page 30: Teoría Nº 4 - dirinfo.unsl.edu.ardirinfo.unsl.edu.ar/servicios/abm/assets/uploads/... · lavarse las manos . Bosquejo de Solución – Abrir la canilla – Poner las manos debajo

30

Ejemplo Nº 2: Dibujar un farol con pedestal.

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 t21 - Posicionar la tortuga en la mitad de la base. t22 - Dibujar el poste.

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.

Versión 2: (versión 1 refinada)

Versión 1: 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.

Lenguaje del problema

UNSL - Fund. de la Informática -Introd.a la Computación -Introd.a la Programación (2do Cuatrimestre 2015)

Page 31: Teoría Nº 4 - dirinfo.unsl.edu.ardirinfo.unsl.edu.ar/servicios/abm/assets/uploads/... · lavarse las manos . Bosquejo de Solución – Abrir la canilla – Poner las manos debajo

31

Versión 3: (versión 2 refinada) t111 - Girar a la derecha 90 grados.

t112 - Avanzar 40 pasos. t121 - Girar a la derecha 90 grados. t122 - Avanzar 10 pasos. t131 - Girar a la derecha 90 grados. t132 - Avanzar 40 pasos. t141 - Girar a la derecha 90 grados. t142 - Avanzar 10 pasos. t211 - Girar a la derecha 90 grados. t212 - Avanzar 20 pasos. t213 - Girar a la izquierda 90 grados. t221 - Avanzar 30 pasos.

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.

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

t21 - Posicionar la tortuga en la mitad de la base. t22 - Dibujar el poste.

Lenguaje del problema

UNSL - Fund. de la Informática -Introd.a la Computación -Introd.a la Programación (2do Cuatrimestre 2015)

Page 32: Teoría Nº 4 - dirinfo.unsl.edu.ardirinfo.unsl.edu.ar/servicios/abm/assets/uploads/... · lavarse las manos . Bosquejo de Solución – Abrir la canilla – Poner las manos debajo

32

t1 - Repetir 2 veces, (t111 - t112 - t121 - t122). t211 - Girar a la derecha 90 grados. t212 - Avanzar 20 pasos. t213 - Girar a la izquierda 90 grados. t22 - Avanzar 30 pasos. 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.

Versión 4:

Lenguaje del problema

UNSL - Fund. de la Informática -Introd.a la Computación -Introd.a la Programación (2do Cuatrimestre 2015)

Page 33: Teoría Nº 4 - dirinfo.unsl.edu.ardirinfo.unsl.edu.ar/servicios/abm/assets/uploads/... · lavarse las manos . Bosquejo de Solución – Abrir la canilla – Poner las manos debajo

33

Diseñar un algoritmo que lea tres números enteros positivos y encuentre si uno de ellos es la suma de los otros dos.

Lenguaje del problema

Ejemplo Nº 3:

Solución Versión 1:

t1 – Pensar 3 números enteros positivos. (A, B, C)

t2 – Determinar si uno de esos valores es la suma de los otros dos.

No obstante: No todos los problemas tienen un único algoritmo que lo resuelve.

UNSL - Fund. de la Informática -Introd.a la Computación -Introd.a la Programación (2do Cuatrimestre 2015)

Page 34: Teoría Nº 4 - dirinfo.unsl.edu.ardirinfo.unsl.edu.ar/servicios/abm/assets/uploads/... · lavarse las manos . Bosquejo de Solución – Abrir la canilla – Poner las manos debajo

34

Ejemplo Nº 4: Dados cuatro números A,B,C y D determinar cual es el mayor de ellos e informarlo. (Algoritmo expresado en lenguaje del problema) Solución 1: Versión 1:

t1 - Si A es mayor que B, C y D, informar A. t2 - Si B es mayor que A, C y D, informar B. t3 - Si C es mayor que A, B y D, informar C. t4 - Si D es mayor que A, B y C, informar D.

Lenguaje del problema

UNSL - Fund. de la Informática -Introd.a la Computación -Introd.a la Programación (2do Cuatrimestre 2015)

Page 35: Teoría Nº 4 - dirinfo.unsl.edu.ardirinfo.unsl.edu.ar/servicios/abm/assets/uploads/... · lavarse las manos . Bosquejo de Solución – Abrir la canilla – Poner las manos debajo

35

Solución 2: Versión 1:

t1 - Determinar el mayor entre A y B. t2 - Determinar el mayor entre el resultado de

(A, B) y C. t3 - Determinar el mayor entre el resultado de ((A, B), C) y D. t4 - Informar el número resultante.

Lenguaje del problema

UNSL - Fund. de la Informática -Introd.a la Computación -Introd.a la Programación (2do Cuatrimestre 2015)

Page 36: Teoría Nº 4 - dirinfo.unsl.edu.ardirinfo.unsl.edu.ar/servicios/abm/assets/uploads/... · lavarse las manos . Bosquejo de Solución – Abrir la canilla – Poner las manos debajo

36

Todas las versiones expresan una solución al problema a través de la especificación de acciones con diferente nivel de detalle y en

un lenguaje cercano a la persona.

Solución 3 Versión 1:

t1 - Determinar el mayor entre A y B. t2 - Determinar el mayor entre C y D. t3 - Determinar el mayor entre el resultado de (A, B) y (C, D). t4 - Informar el número resultante.

Lenguaje del problema

UNSL - Fund. de la Informática -Introd.a la Computación -Introd.a la Programación (2do Cuatrimestre 2015)

Page 37: Teoría Nº 4 - dirinfo.unsl.edu.ardirinfo.unsl.edu.ar/servicios/abm/assets/uploads/... · lavarse las manos . Bosquejo de Solución – Abrir la canilla – Poner las manos debajo

Definiciones asociadas: Enunciado: descripción del trabajo a realizar. Procesador: Computadora Ambiente: los objetos del universo del problema.

37

Algoritmos Computacionales

Cómo son esos objetos? Cuáles son esos objetos?

Objetos capaces de almacenar datos propios de la computadora

los objetos

UNSL - Fund. de la Informática -Introd.a la Computación -Introd.a la Programación (2do Cuatrimestre 2015)

Page 38: Teoría Nº 4 - dirinfo.unsl.edu.ardirinfo.unsl.edu.ar/servicios/abm/assets/uploads/... · lavarse las manos . Bosquejo de Solución – Abrir la canilla – Poner las manos debajo

38

Suponemos que los objetos son contenedores de datos, por ejemplo CAJAS Como puedo pretender trabajar con varios de estos objetos (cajas)

Es necesario, distinguirlos unos de otros, identificarlos unívocamente, o lo que es lo mismo asignarles un Nombre o Identificador.

pepe juan casa estrella Todos ellos van a contener datos propios de una computadora, en principio números o letras.

estrella 123

estrella oso

Datos

UNSL - Fund. de la Informática -Introd.a la Computación -Introd.a la Programación (2do Cuatrimestre 2015)

Page 39: Teoría Nº 4 - dirinfo.unsl.edu.ardirinfo.unsl.edu.ar/servicios/abm/assets/uploads/... · lavarse las manos . Bosquejo de Solución – Abrir la canilla – Poner las manos debajo

39

Restricción: Solamente podrán contener información de un solo tipo. estrella estrella 123 oso

estrella estrella 123 oso

CATEGORIZAR LOS OBJETOS

pepe juan

Objetos que almacenan números

casa

estrella

Objetos que almacenan letras o caracteres

Datos

UNSL - Fund. de la Informática -Introd.a la Computación -Introd.a la Programación (2do Cuatrimestre 2015)

Page 40: Teoría Nº 4 - dirinfo.unsl.edu.ardirinfo.unsl.edu.ar/servicios/abm/assets/uploads/... · lavarse las manos . Bosquejo de Solución – Abrir la canilla – Poner las manos debajo

40

reales

Datos

numérica

caracteres

lógica

enteros

Objetos que almacenan valores lógicos

pepe juan

Objetos que almacenan enteros casa estrella

Objetos que almacenan letras o caracteres

Objetos que almacenan reales jose luis tomas lucas

Datos

UNSL - Fund. de la Informática -Introd.a la Computación -Introd.a la Programación (2do Cuatrimestre 2015)

Page 41: Teoría Nº 4 - dirinfo.unsl.edu.ardirinfo.unsl.edu.ar/servicios/abm/assets/uploads/... · lavarse las manos . Bosquejo de Solución – Abrir la canilla – Poner las manos debajo

41

Debido a que una computadora procesa datos, (datos categorizados en entera, real, carácter o lógica) es altamente probable que ese procesamiento implica que los datos, que se le entregue a la entrada, deban ser modificados para poder entregar un resultado.

La datos almacenados en los objetos (contenedores) puede variar, es decir los objetos van a variar su contenido durante el proceso de resolución de un problema.

VARIABLES DE INFORMACIÓN A los objetos se los denomina:

Datos

UNSL - Fund. de la Informática -Introd.a la Computación -Introd.a la Programación (2do Cuatrimestre 2015)

Page 42: Teoría Nº 4 - dirinfo.unsl.edu.ardirinfo.unsl.edu.ar/servicios/abm/assets/uploads/... · lavarse las manos . Bosquejo de Solución – Abrir la canilla – Poner las manos debajo

42

Variables En  síntesis  

Variable

Atributos Nombre

Tipo de Datos

Funcionalidad

Almacena un dato temporalmente

Es posible cambiar su contenido durante el ciclo de vida de un proceso

UNSL - Fund. de la Informática -Introd.a la Computación -Introd.a la Programación (2do Cuatrimestre 2015)

Page 43: Teoría Nº 4 - dirinfo.unsl.edu.ardirinfo.unsl.edu.ar/servicios/abm/assets/uploads/... · lavarse las manos . Bosquejo de Solución – Abrir la canilla – Poner las manos debajo

43

Ejemplo Nº 1: Enunciado: dados dos números enteros positivos, digamos m y n, encontrar el algoritmo que determine la potencia n-ésima de m. Con n > 1. Procesador: computadora. Acciones primitivas:

4 Dar un valor a un objeto. 4 Calcular la suma de dos números. 4 Calcular el producto de dos números. 4 conjunto repetitivo de acciones expresado:

Mientras <condición> Hacer <acciones-primitivas> Repetir.

Variables

Ambiente: ¿Variables?

UNSL - Fund. de la Informática -Introd.a la Computación -Introd.a la Programación (2do Cuatrimestre 2015)

Page 44: Teoría Nº 4 - dirinfo.unsl.edu.ardirinfo.unsl.edu.ar/servicios/abm/assets/uploads/... · lavarse las manos . Bosquejo de Solución – Abrir la canilla – Poner las manos debajo

44

Análisis del problema:

•  Si se tiene que m representa el valor 4 y n representa el valor 3, entonces se calcula: 43 = 4 x 4 x 4 = 64. •  Si se tiene que m representa el valor 2 y n representa el valor 6, entonces se calcula: 26 = 2 x 2 x 2 x 2 x 2 x 2 = 64.

Generalizando

mn = m x m x … x m

Variables

UNSL - Fund. de la Informática -Introd.a la Computación -Introd.a la Programación (2do Cuatrimestre 2015)

Page 45: Teoría Nº 4 - dirinfo.unsl.edu.ardirinfo.unsl.edu.ar/servicios/abm/assets/uploads/... · lavarse las manos . Bosquejo de Solución – Abrir la canilla – Poner las manos debajo

(mn-1 x m)

(mn-2 x m)

(mn-3 x m)

(m2 x m) (m x m)

n veces se repite m

•  Cuantas veces se realizó la operación? •  Cada operación es igual a la anterior?

Si mn = m x m x … x m

mn =

Variables

UNSL - Fund. de la Informática -Introd.a la Computación -Introd.a la Programación (2do Cuatrimestre 2015)

Page 46: Teoría Nº 4 - dirinfo.unsl.edu.ardirinfo.unsl.edu.ar/servicios/abm/assets/uploads/... · lavarse las manos . Bosquejo de Solución – Abrir la canilla – Poner las manos debajo

46

8 x 82

8 8 x 81

83 = 8 x 8 x 8

Número a multiplicar (base de la potencia)

Cálculo previo a ser reutilizado

Número de veces que se realizó la multiplicación

Realizar: 83

2

83

3 índice de la potencia

Variables

UNSL - Fund. de la Informática -Introd.a la Computación -Introd.a la Programación (2do Cuatrimestre 2015)

Page 47: Teoría Nº 4 - dirinfo.unsl.edu.ardirinfo.unsl.edu.ar/servicios/abm/assets/uploads/... · lavarse las manos . Bosquejo de Solución – Abrir la canilla – Poner las manos debajo

47

Determinación de las variables que contienen información necesaria: 1- objeto conteniendo el entero positivo al cual se le

calcula la potencia (base de la potencia).

2- objeto conteniendo el entero positivo que indica la potencia (exponente de la potencia).

3- objeto que determine cuantas multiplicaciones se deben realizar. 4- objeto que mantenga los cálculos previos para poder

realizar los nuevos cálculos.

Ambiente: 4 variables

Variables

UNSL - Fund. de la Informática -Introd.a la Computación -Introd.a la Programación (2do Cuatrimestre 2015)

Page 48: Teoría Nº 4 - dirinfo.unsl.edu.ardirinfo.unsl.edu.ar/servicios/abm/assets/uploads/... · lavarse las manos . Bosquejo de Solución – Abrir la canilla – Poner las manos debajo

Versión 2: t1 - Determinar nombres y tipos de las variables. t2 - Dar valores iniciales a las variables. t31 - Comenzar con el entero 1. t32 - Para todo entero positivo menor que el valor indicado como índice, multiplicar el número dado por el resultado anterior.

48

Algoritmo: (Solución en Lenguaje de Problemas) Versión 1:

t1 - Determinar nombres y tipos de las variables. t2 - Dar valores iniciales a las variables. t3 - Contando desde 1, multiplico el entero por la potencia anterior, tantas veces como lo indica el índice de la potencia.

Variables

UNSL - Fund. de la Informática -Introd.a la Computación -Introd.a la Programación (2do Cuatrimestre 2015)

Page 49: Teoría Nº 4 - dirinfo.unsl.edu.ardirinfo.unsl.edu.ar/servicios/abm/assets/uploads/... · lavarse las manos . Bosquejo de Solución – Abrir la canilla – Poner las manos debajo

49

Determinar nombres y tipos a las variables.

Dar valores iniciales a las variables.

C

tomar el número y multiplicarlo por el resultado anterior. .

F

entero < índice pot.

Comenzar con el entero 1.

Tomar un nuevo entero.

V F

Diagrama de Flujo

UNSL - Fund. de la Informática -Introd.a la Computación -Introd.a la Programación (2do Cuatrimestre 2015)

Page 50: Teoría Nº 4 - dirinfo.unsl.edu.ardirinfo.unsl.edu.ar/servicios/abm/assets/uploads/... · lavarse las manos . Bosquejo de Solución – Abrir la canilla – Poner las manos debajo

50

1 - Variable con el valor de la base (NUMERO) 2 - Variable con el valor del índice (POTENCIA) 3 - Variable conteniendo el entero que indica las veces que se debe multiplicar (VECES). 4- Variable que que guarda cálculos previos (PREVIO)

Variables

UNSL - Fund. de la Informática -Introd.a la Computación -Introd.a la Programación (2do Cuatrimestre 2015)

Page 51: Teoría Nº 4 - dirinfo.unsl.edu.ardirinfo.unsl.edu.ar/servicios/abm/assets/uploads/... · lavarse las manos . Bosquejo de Solución – Abrir la canilla – Poner las manos debajo

51

Bosquejo del algoritmo: t1 - NUMERO, POTENCIA, PREVIO, VECES: entero t21 - dar a NUMERO el valor m (el que se desee) t22 - dar a POTENCIA el valor n (mayor que 1) t23 - dar a PREVIO el valor m t31 - dar a VECES el valor 1 MIENTRAS el valor de VECES sea menor que el valor de POTENCIA HACER

t321- multiplicar el valor de NUMERO por el valor de PREVIO t322 -dar este nuevo resultado al objeto PREVIO t323 -sumar 1 al valor de VECES t324 -dar este nuevo resultado al objeto VECES

REPETIR

Variables

UNSL - Fund. de la Informática -Introd.a la Computación -Introd.a la Programación (2do Cuatrimestre 2015)

Page 52: Teoría Nº 4 - dirinfo.unsl.edu.ardirinfo.unsl.edu.ar/servicios/abm/assets/uploads/... · lavarse las manos . Bosquejo de Solución – Abrir la canilla – Poner las manos debajo

52

Ejemplo Nº 2: Enunciado: dado un número entero positivo, encontrar el algoritmo que determine el factorial de dicho número. Procesador: computadora. Acciones primitivas:

4 Dar un valor a una variable. 4 Calcular la suma de dos números. 4 Calcular el producto de dos números. 4 conjunto repetitvo de acciones expresado:

Mientras <condición> Hacer <acciones-primitivas> Repetir. Ambiente: ¿Variables?

Variables

UNSL - Fund. de la Informática -Introd.a la Computación -Introd.a la Programación (2do Cuatrimestre 2015)

Page 53: Teoría Nº 4 - dirinfo.unsl.edu.ardirinfo.unsl.edu.ar/servicios/abm/assets/uploads/... · lavarse las manos . Bosquejo de Solución – Abrir la canilla – Poner las manos debajo

53

Análisis del problema:

Si se tiene el nro. 4, se calculará: 1x2x3x4 = 24 = 4! Si se tiene el Nº 5, se calculará: 1x2x3x4x5 =120 = 5! y así siguiendo.

1! = 1 2! = 2 x 1 = 2 x 1! 3! = 3 x 2 x 1 = 3 x 2! .....

n! = n x (n -1) x (n-2) x ... x 1 = n x (n-1)!

Variables

UNSL - Fund. de la Informática -Introd.a la Computación -Introd.a la Programación (2do Cuatrimestre 2015)

Page 54: Teoría Nº 4 - dirinfo.unsl.edu.ardirinfo.unsl.edu.ar/servicios/abm/assets/uploads/... · lavarse las manos . Bosquejo de Solución – Abrir la canilla – Poner las manos debajo

54

n! = n x (n -1) x (n-2) x ... x 1 = n x (n-1)! n = 4

3 x 2!

1

2 x 1!

4! = 4 x 3!

Número a multiplicar

Calculo previo a ser reutilizado

Número a calcular el factorial,

Veces que debo multiplicar

Variables

UNSL - Fund. de la Informática -Introd.a la Computación -Introd.a la Programación (2do Cuatrimestre 2015)

Page 55: Teoría Nº 4 - dirinfo.unsl.edu.ardirinfo.unsl.edu.ar/servicios/abm/assets/uploads/... · lavarse las manos . Bosquejo de Solución – Abrir la canilla – Poner las manos debajo

55

Determinación de las variables: 1- variables conteniendo el entero positivo al cual se le calcula el factorial y que determina las veces que debo multiplicar. 2- variables que determine que valores se irán multiplicando. 3- variables que mantenga los cálculos previos para poder realizar los nuevos cálculos.

Ambiente: 3 variables

Variables

UNSL - Fund. de la Informática -Introd.a la Computación -Introd.a la Programación (2do Cuatrimestre 2015)

Page 56: Teoría Nº 4 - dirinfo.unsl.edu.ardirinfo.unsl.edu.ar/servicios/abm/assets/uploads/... · lavarse las manos . Bosquejo de Solución – Abrir la canilla – Poner las manos debajo

56

Algoritmo: Solución 1: Versión 1: (nivel 1 de descomposición)

t1 - Asignar nombres y tipos a las variables. t2 - Dar valores iniciales a las variables. t3 - Realizar repetidamente el producto de un numero por el factorial de su anterior.

Versión 2: t1 - Asignar nombres y tipos a las variables. t2 - Dar valores iniciales a las variables. t31 - Comenzar con el entero 1. t32 - Para todo entero positivo menor o igual que el valor dado, tomar el entero y multiplicarlo por el resultado anterior.

Ejemplo

UNSL - Fund. de la Informática -Introd.a la Computación -Introd.a la Programación (2do Cuatrimestre 2015)

Page 57: Teoría Nº 4 - dirinfo.unsl.edu.ardirinfo.unsl.edu.ar/servicios/abm/assets/uploads/... · lavarse las manos . Bosquejo de Solución – Abrir la canilla – Poner las manos debajo

57

Solución 2: Versión 1:

t1 - Asignar nombres y tipos a las variables. t2 - Dar valores iniciales a las variables. t3 - Comenzando por 1, multiplico desde 1

todos los enteros positivos menores que el número dado como valor inicial.

Ejemplo

UNSL - Fund. de la Informática -Introd.a la Computación -Introd.a la Programación (2do Cuatrimestre 2015)

Page 58: Teoría Nº 4 - dirinfo.unsl.edu.ardirinfo.unsl.edu.ar/servicios/abm/assets/uploads/... · lavarse las manos . Bosquejo de Solución – Abrir la canilla – Poner las manos debajo

58

Asignar nombres y tipos a las variables.

Dar valores iniciales a las variables.

C

tomar el entero y multiplicarlo por el resultado anterior. .

F

entero <= valor dado

Comenzar con el entero 1.

Tomar un nuevo entero.

V F

Ejemplo

UNSL - Fund. de la Informática -Introd.a la Computación -Introd.a la Programación (2do Cuatrimestre 2015)

Page 59: Teoría Nº 4 - dirinfo.unsl.edu.ardirinfo.unsl.edu.ar/servicios/abm/assets/uploads/... · lavarse las manos . Bosquejo de Solución – Abrir la canilla – Poner las manos debajo

59

Variables: 1 - Variable con el valor dado (NUMERO)

2- Variable que guarda resultados anteriores (FACTORIAL),

3 - Variable que tiene el entero a multiplicar (AGREGO).

Ejemplo - Variables

UNSL - Fund. de la Informática -Introd.a la Computación -Introd.a la Programación (2do Cuatrimestre 2015)

Page 60: Teoría Nº 4 - dirinfo.unsl.edu.ardirinfo.unsl.edu.ar/servicios/abm/assets/uploads/... · lavarse las manos . Bosquejo de Solución – Abrir la canilla – Poner las manos debajo

60

Bosquejo del algoritmo: t1 -NUMERO, FACTORIAL, AGREGO: entero t21 - dar a NUMERO el valor n (el que se desee) t22 -dar a FACTORIAL el valor 1 t31 - dar a AGREGO el valor 1 MIENTRAS el valor de AGREGO sea menor o igual que el valor de NUMERO HACER

t321- multiplicar el valor de AGREGO por el valor de FACTORIAL t322 -dar este nuevo resultado al objeto FACTORIAL t323 -sumar 1 al valor de AGREGO t324 -dar este nuevo resultado al objeto AGREGO

REPETIR

Ejemplo - Variables

UNSL - Fund. de la Informática -Introd.a la Computación -Introd.a la Programación (2do Cuatrimestre 2015)

Page 61: Teoría Nº 4 - dirinfo.unsl.edu.ardirinfo.unsl.edu.ar/servicios/abm/assets/uploads/... · lavarse las manos . Bosquejo de Solución – Abrir la canilla – Poner las manos debajo

61

Acción ejecutada Estado del ambiente después de ejecutada la acciónNUMERO AGREGO FACTORIAL

t1 indeterminado indeterminado indeterminadot2.1 3 indeterminado indeterminadot2.2 3 indeterminado 1t3.1 3 1 1(1º repetición) 1 ≤ 3 verd.t321 3 1 1 1t322 3 1 1t323 3 1 1 2t324 3 2 1(2º repetición) 2 ≤ 3 verd.t321 3 2 1 2t322 3 2 2t323 3 2 2 3t324 3 3 2(3º repetición) 3 ≤ 3 verd.t321 3 3 2 6t322 3 3 6t323 3 3 6 4t324 3 4 6(4º repetición) 4 ≤ 3 falso

fin de repetición y fin del algoritmo

Ejemplo - Ejecución

UNSL - Fund. de la Informática -Introd.a la Computación -Introd.a la Programación (2do Cuatrimestre 2015)

Page 62: Teoría Nº 4 - dirinfo.unsl.edu.ardirinfo.unsl.edu.ar/servicios/abm/assets/uploads/... · lavarse las manos . Bosquejo de Solución – Abrir la canilla – Poner las manos debajo

62

Realizar en pseudocódigo que representa a un algoritmo que calcula para el valor de una temperatura expresada en grados centígrados sus equivalentes en grados Reaumhur, grados Fahrenheit y grados Kelvin. Sabiendo que: • 100º Centígrados=80º Reaumhur=212º Fahrenheit=373º kelvil • 0º Centígrados=0º Reaumhur=32º Fahrenheit=273º kelvi

Ejemplo

UNSL - Fund. de la Informática -Introd.a la Computación -Introd.a la Programación (2do Cuatrimestre 2015)