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

25
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 [email protected]

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

Page 1: Diseño de Algoritmos: Tema 1. Introduccióndtorres/cursos/disenioAlgoritmos/Tema1-Introduccio… · Leer el planteamiento del problema en el libro “El Hombre que Calculaba” Malba

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

[email protected]

Page 2: Diseño de Algoritmos: Tema 1. Introduccióndtorres/cursos/disenioAlgoritmos/Tema1-Introduccio… · Leer el planteamiento del problema en el libro “El Hombre que Calculaba” Malba

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

Page 3: Diseño de Algoritmos: Tema 1. Introduccióndtorres/cursos/disenioAlgoritmos/Tema1-Introduccio… · Leer el planteamiento del problema en el libro “El Hombre que Calculaba” Malba

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

Page 4: Diseño de Algoritmos: Tema 1. Introduccióndtorres/cursos/disenioAlgoritmos/Tema1-Introduccio… · Leer el planteamiento del problema en el libro “El Hombre que Calculaba” Malba

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

Page 5: Diseño de Algoritmos: Tema 1. Introduccióndtorres/cursos/disenioAlgoritmos/Tema1-Introduccio… · Leer el planteamiento del problema en el libro “El Hombre que Calculaba” Malba

5

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

Page 6: Diseño de Algoritmos: Tema 1. Introduccióndtorres/cursos/disenioAlgoritmos/Tema1-Introduccio… · Leer el planteamiento del problema en el libro “El Hombre que Calculaba” Malba

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

Page 7: Diseño de Algoritmos: Tema 1. Introduccióndtorres/cursos/disenioAlgoritmos/Tema1-Introduccio… · Leer el planteamiento del problema en el libro “El Hombre que Calculaba” Malba

7

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

Page 8: Diseño de Algoritmos: Tema 1. Introduccióndtorres/cursos/disenioAlgoritmos/Tema1-Introduccio… · Leer el planteamiento del problema en el libro “El Hombre que Calculaba” Malba

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

Page 9: Diseño de Algoritmos: Tema 1. Introduccióndtorres/cursos/disenioAlgoritmos/Tema1-Introduccio… · Leer el planteamiento del problema en el libro “El Hombre que Calculaba” Malba

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

Page 10: Diseño de Algoritmos: Tema 1. Introduccióndtorres/cursos/disenioAlgoritmos/Tema1-Introduccio… · Leer el planteamiento del problema en el libro “El Hombre que Calculaba” Malba

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

Page 11: Diseño de Algoritmos: Tema 1. Introduccióndtorres/cursos/disenioAlgoritmos/Tema1-Introduccio… · Leer el planteamiento del problema en el libro “El Hombre que Calculaba” Malba

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

Page 12: Diseño de Algoritmos: Tema 1. Introduccióndtorres/cursos/disenioAlgoritmos/Tema1-Introduccio… · Leer el planteamiento del problema en el libro “El Hombre que Calculaba” Malba

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

Page 13: Diseño de Algoritmos: Tema 1. Introduccióndtorres/cursos/disenioAlgoritmos/Tema1-Introduccio… · Leer el planteamiento del problema en el libro “El Hombre que Calculaba” Malba

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

Page 14: Diseño de Algoritmos: Tema 1. Introduccióndtorres/cursos/disenioAlgoritmos/Tema1-Introduccio… · Leer el planteamiento del problema en el libro “El Hombre que Calculaba” Malba

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

Page 15: Diseño de Algoritmos: Tema 1. Introduccióndtorres/cursos/disenioAlgoritmos/Tema1-Introduccio… · Leer el planteamiento del problema en el libro “El Hombre que Calculaba” Malba

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

Page 16: Diseño de Algoritmos: Tema 1. Introduccióndtorres/cursos/disenioAlgoritmos/Tema1-Introduccio… · Leer el planteamiento del problema en el libro “El Hombre que Calculaba” Malba

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

Page 17: Diseño de Algoritmos: Tema 1. Introduccióndtorres/cursos/disenioAlgoritmos/Tema1-Introduccio… · Leer el planteamiento del problema en el libro “El Hombre que Calculaba” Malba

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.

Page 18: Diseño de Algoritmos: Tema 1. Introduccióndtorres/cursos/disenioAlgoritmos/Tema1-Introduccio… · Leer el planteamiento del problema en el libro “El Hombre que Calculaba” Malba

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.

Page 19: Diseño de Algoritmos: Tema 1. Introduccióndtorres/cursos/disenioAlgoritmos/Tema1-Introduccio… · Leer el planteamiento del problema en el libro “El Hombre que Calculaba” Malba

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]

Page 20: Diseño de Algoritmos: Tema 1. Introduccióndtorres/cursos/disenioAlgoritmos/Tema1-Introduccio… · Leer el planteamiento del problema en el libro “El Hombre que Calculaba” Malba

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.

Page 21: Diseño de Algoritmos: Tema 1. Introduccióndtorres/cursos/disenioAlgoritmos/Tema1-Introduccio… · Leer el planteamiento del problema en el libro “El Hombre que Calculaba” Malba

2.3 Análisis y modelado de un problema

21

Page 22: Diseño de Algoritmos: Tema 1. Introduccióndtorres/cursos/disenioAlgoritmos/Tema1-Introduccio… · Leer el planteamiento del problema en el libro “El Hombre que Calculaba” Malba

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]

Page 23: Diseño de Algoritmos: Tema 1. Introduccióndtorres/cursos/disenioAlgoritmos/Tema1-Introduccio… · Leer el planteamiento del problema en el libro “El Hombre que Calculaba” Malba

2.4 Diseño del algoritmo

23

Page 24: Diseño de Algoritmos: Tema 1. Introduccióndtorres/cursos/disenioAlgoritmos/Tema1-Introduccio… · Leer el planteamiento del problema en el libro “El Hombre que Calculaba” Malba

2.5 Pruebas de escritorio

24

Page 25: Diseño de Algoritmos: Tema 1. Introduccióndtorres/cursos/disenioAlgoritmos/Tema1-Introduccio… · Leer el planteamiento del problema en el libro “El Hombre que Calculaba” Malba

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