Diseño de Algoritmos: Tema 1....

Post on 14-Jul-2020

2 views 0 download

Transcript of Diseño de Algoritmos: Tema 1....

Diseño de Algoritmos Tema 1: Introducción

Presenta: David Martínez Torres

Universidad Tecnológica de la Mixteca

Instituto de Computación

Oficina No. 37

dtorres@mixteco.utm.mx

Contenido

1. Planteamiento, análisis y representación de datos para problemas lógicos y matemáticos.

2. Metodología para la solución de problemas por medio de una computadora.

2

3

1. Planteamiento, análisis y representación de datos para problemas lógicos y matemáticos.

Técnicas para la solución de problemas [1] 1. Leer y entender 2. Repasar varias veces el problema y hacer

énfasis en los elementos del mismo 3. Un problema tiene varias soluciones para

resolverlo 4. La tinta más pálida es mejor que la

memoria más retentiva 5. Representar gráficamente un problema

facilita la solución del mismo 6. El orden de los factores no altera el

resultado 7. El cansancio acaba con la idea más simple 8. La carga compartida no es tan pesada

1. Planteamiento, análisis y representación de datos para problemas lógicos y matemáticos.

1. El amigo Pedro tiene doce monedas, pero sabe que una de ellas es falsa, esto es, que tiene un peso mayor que las restantes. Le dicen que use una balanza y que con tres pesadas averigüe cual es la moneda de peso diferente.

En la siguiente diapositiva se presenta un análisis y proceso de solución.

4

5

Aquí se presenta un análisis y proceso de solución del primer ejemplo de problema matemático.

1. Planteamiento, análisis y representación de datos para problemas lógicos y matemáticos.

2. Una Sra. quiere repartir una jarra con 8 litros de leche entre 2 personas a partes iguales, pero solo tiene a parte de la jarra de 8 litros, una jarra de 3 y otra jarra de 5 litros de capacidad. Dice “no importa, trasvasando adecuadamente la leche, puede hacerse la medición.

En la siguiente diapositiva se presenta un análisis y proceso de solución.

6

7

Nuevamente se presenta un análisis y proceso de solución del segundo ejemplo de problema matemático.

1. Planteamiento, análisis y representación de datos para problemas lógicos y matemáticos.

Ahora les solicito que realicen un tipo de análisis y proceso de solución siguiendo las técnicas listadas en la diapositiva 3.

3. Una persona dispone de una barca para atravesar un río desde una orilla a la otra, se le pide que tiene que pasar un lobo, una cabra y un arbusto. El problema es que en cada viaje solo puede pasar a uno de los tres y no puede dejar solos en ninguna de las dos orillas al lobo y la cabra porque se la comería, y tampoco puede dejar solos a la cabra y el arbusto porque se los comería. ¿Cómo podría esa persona resolver el problema?

4. Herencia de camellos. Leer el planteamiento del problema en el libro “El Hombre que Calculaba” Malba Tahan [3].

8

1. Planteamiento, análisis y representación de datos para problemas lógicos y matemáticos.

5. Ayer tenía 16 años y el próximo año tendré 17 años. Si el día de mañana cumplo años, ¿En que día y mes nací?

a) 28 de febrero b) 1 de marzo d)1 de enero e)31 diciembre

6. Una madre es 21 años mayor que su hijo, y en seis años la edad de la madre será cinco veces la del niño. ¿Dónde está el padre?

7. Se le pregunta a un Sr. y este contesta: “Dentro de 20 minutos mi reloj marcará las 10:32”. Si el reloj está adelantado de la hora real 5 minutos, ¿Qué hora fue hace 10 minutos exactamente?

9

1. Planteamiento, análisis y representación de datos para problemas lógicos y matemáticos.

8. Se analiza un problema de futbolistas, donde ninguno tiene la misma cantidad de goles anotados. Se sabe que Claudio tiene dos goles más que Abel; Flavio tiene dos goles más que Roberto, pero uno menos que Abel y Andrés más goles que Roberto, pero menos goles que Abel. ¿Cuántos goles menos que Claudio tiene Andrés?

a) 1 b) 3 c) 5 d) 2 e) 4

9. Un padre tiene 49 años, tiene 32 años más que su hijo. ¿Cuántos años tienen entre los 2?

10. En dos cajas hay 184 lápices. Una contiene 2 veces más que la otra. ¿Cuántos lápices hay en cada caja?

10

1. Planteamiento, análisis y representación de datos para problemas lógicos y matemáticos.

11. Ana, Bertha y Carmen son profesoras de teatro, danza y gimnasia, pero no necesariamente en ese orden.

La profesora de gimnasia es la menor de todas y es amiga de Bertha.

La profesora de danza es menor que la profesora Carmen.

¿Qué proposición es verdadera?

a) Bertha es la profesora de teatro

b) Carmen es menor que la profesora de teatro

c) Ana es la profesora de gimnasia

d) Carmen es la profesora de danza

e) Bertha es la profesora de gimnasia

11

1. Planteamiento, análisis y representación de datos para problemas lógicos y matemáticos.

12. En un edificio de seis pisos viven seis amigas, cada una en un piso diferente: Rosa, Luisa, Pilar, Camila, Gladys y María, y se sabe que:

Rosa vive en el segundo piso

Gladys vive en un piso adyacente al de Pilar y al de Luisa.

Para ir del piso de Gladys al de María hay que bajar tres pisos.

¿Quién vive en el cuarto piso?

13. Carlos tiene 15 años, su mamá 25 años más que el, su papá 5 años menos que la mamá. ¿Cuántos años tienen los tres?

14. Un niño tiene 5 años, dentro de 15 años su padre será 5 veces mayor que el. ¿Cuál es la edad actual de su padre?

12

2. Metodología para la solución de problemas por medio de una computadora.

13

Pasos para resolver un problema, reeditado de [2]

Análisis profundo del

problema

Construccióndel

algoritmo

Verificacióndel

algoritmo

Problema

2. Metodología para la solución de problemas por medio de una computadora.

14

Fases en la resolución de problemas o ciclo de vida del software.

1. Análisis del problema

2. Diseño de la solución (Algoritmo)

Pseudocódigo

Diagrama de flujo.

3. Codificación en lenguaje de alto nivel.

ejemplo C, Java, etc.

4. Compilación

5. Pruebas

2. Metodología para la solución de problemas por medio de una computadora.

15

Ciclo de vida de desarrollo de software, consultar PSP (Personal Software Process)

1. Análisis del problema (recomendable 40- 50% tiempo) [3]

Especificación de requerimientos, prototipos

Estimación del esfuerzo

2. Diseño de la solución (recomendable análisis/2 = 25% tiempo)

Revisión del diseño (tiempo del diseño/2, PSP)

3. Codificación (tiempo del diseño/2 = 12.5 % tiempo)

Revisión de la codificación (tiempo de codificación /2, PSP)

4. Compilación

5. Pruebas (tiempo que se dedica a la codificación = 12.5%)

6. Postmorten

2. Metodología para la solución de problemas por medio de una computadora.

16

Pasos para resolver un problema, reeditado de [2]

Análisis profundo del

problema

Construccióndel

algoritmo

Verificacióndel

algoritmo

Problema

17

2.1 Algoritmo

Un algoritmo es un método para resolver un problema mediante una serie de pasos precisos, definidos y finitos [2].

Un algoritmo es un conjunto de pasos, procedimientos o acciones que nos permiten alcanzar un resultado o resolver un problema [1]

En la vida diaria aplicamos algoritmos de manera inconsciente: al vestirse, al abrir la puerta, al darse un baño, al ir a la escuela, al subir al automóvil, al cambiar la llanta de un automóvil, etc.

2.2 Propiedades de los algoritmos

18

Las propiedades o características que debe cumplir un algoritmo son [1,2]:

1. Preciso: cada paso debe indicar de manera precisa que se debe hacer.

2. Definido: Si se prueba con las mismas entradas debe producir los mismos resultados.

3. Finito: Debe tener un número determinado de pasos; debe producir un resultado en un tiempo finito.

2.3. Análisis y modelado de un problema

19

Datosde

entrada

Procesamientode los datos

Impresiónde

resultados

Algoritmo

Secciones de un algoritmo, reeditado de [2]

2.3 Análisis y modelado de un problema

20

El primer algoritmo presenta una secuencia de pasos coherentes y dependientes.

Coherentes debido que obtiene un valor de la forma correcta como siempre se efectúa una suma.

Dependiente en que no se puede sumar dos números que no se conocen, y obtener el resultado de la suma sin sumar los números.

2.3 Análisis y modelado de un problema

21

2.4 Diseño del algoritmo

22

Diseñodescendente

Refinamientopor pasos

Herramienta deprogramación:

Diseñode un

algoritmo

* diagrama de flujo* pseudocódigo

Secciones de un algoritmo, reeditado de [2]

2.4 Diseño del algoritmo

23

2.5 Pruebas de escritorio

24

Referencias

1. Zapata Ospina, Carlos A. “Fundamentos de programación, Guía de autoenseñanza”. Alfaomega Ra-Ma. 2006

2. Cairó Osvaldo. “Metodología de la programación”. Alfaomega, 3ª edición. 2005.

3. Malba Tahan. “El Hombre que Calculaba”. ISBN: 987-1021-60-7, Editorial: Pluma y Papel.

25