Upload
others
View
3
Download
0
Embed Size (px)
Citation preview
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
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