1 / 71

Módulo 2 ALGORITMOS Y ESTRUCTURA DE DATOS

Módulo 2 ALGORITMOS Y ESTRUCTURA DE DATOS. PROFESOR: SIRACUSA EMILIANO MARTÍN Página Web: www.esiracusa.jimdo.com. Problemas modelos y abstracciones. Buscar la solución a un problema es buscar un MODELO.

kirby
Télécharger la présentation

Módulo 2 ALGORITMOS Y ESTRUCTURA DE DATOS

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Módulo 2ALGORITMOS Y ESTRUCTURA DE DATOS PROFESOR:SIRACUSA EMILIANO MARTÍN Página Web: www.esiracusa.jimdo.com

  2. Problemas modelos y abstracciones Buscar la solución a un problema es buscar un MODELO. Un modelo es una versión simplificada de la realidad con datos relevantes del problema. Los modelos se construyen con ayuda de abstracciones.

  3. Algoritmo Buscar la solución a un problema es buscar un MODELO. Un modelo es una versión simplificada de la realidad con datos relevantes del problema. Los modelos se construyen con ayuda de abstracciones.

  4. Ejemplo: Cocinar un huevo frito: Buscar la sartén. Colocarle aceite. Colocar la sartén en el fuego. Buscar un hueva. Cascar el huevo. Colocar el interior del huevo en la sartén. Cocinar el huevo. Sacar el huevo de la sartén. Retirar la sartén del fuego. Finalizar

  5. Especificación del algoritmo: Sucesión de pasos o instrucciones que representan la resolución de una clase de problemas. Es una entidad estática. Ejecución del algoritmo: Proceso de llevar a cabo los pasos indicados en la especificación. Algoritmo: Secuencia de pasos o especificaciones que cundo se ejecutan, produce resultados y termina luego de una cantidad finita de tiempo.

  6. -Para cada paso del algoritmo, el siguiente está definido sin ambigüedad. -El orden de ejecución se establece en la especificación. -Todo algoritmo tiene un punto inicial y al menos un punto final. -La resolución del problema frecuente mente se divide en distintas secciones y la terminación del proceso depende de la sección que se ha ejecutado

  7. Ejemplo: 0. Observar si hay algún huevo. 0. Si hay por lo menos un huevo entonces realizar las acciones de 1 a 10, sino , pensar en otra comida y finalizar. Ejemplo: Cocinar un huevo frito: Buscar la sartén. Colocarle aceite. Colocar la sartén en el fuego. Buscar un hueva. Cascar el huevo. Colocar el interior del huevo en la sartén. Cocinar el huevo. Sacar el huevo de la sartén. Retirar la sartén del fuego. Finalizar

  8. Buscar la sartén. • Colocarle aceite. 2’ Buscar la botella de aceite de girasol. 2’’Colocar 1/3 cm3 de aceite en la sartén. • Colocar la sartén en el fuego. • Buscar un hueva. • Cascar el huevo. • Colocar el interior del huevo en la sartén. • Cocinar el huevo. • Sacar el huevo de la sartén. • Retirar la sartén del fuego. • Finalizar

  9. Ejemplo: Juan suele ir de campamento amenudeo y como es muy metódico y consume tres rebanadas de pan en su desayuno. Habitualmente trata de minimizar lo que lleva en su mochila. Su parrilla no es muy grande, y por ejemplo solo entran tres rebanadas de pan que siempre consume, las cuales por supuesto siempre se doran de un solo lado. Al desayuno hace tostadas en la parrilla y quiere saber cuanto es el mínimo que tardaría en hacer las tostadas. Como no le gustan ni muy tostadas ni muy blancas, descubrió que necesita 30 segundos para que la tostada este lista de un lado. Tarda 5 segundos en sacarla, y 3 segundos en dar vuelta una rebanada (Si son dos rebanadas puede hacer esta tarea simultáneamente)

  10. Base lunar Alfa • La Base Alfa con dos robots, Pipo y Kuki, y abundantes baterías. En la Base Beta no hay baterías. • Un robots necesita viajar 9 días para llegar de una a la otra base. • Un robot necesita baterías con carga para poder moverse. • Cada robots puede cargar 12 baterías (cada batería dura un día). Los robots pueden dejar alguna de sus baterías (no todas) en suelo lunar, y también recogerlas de el. • Se quiere hacer llegar un mensaje a la Base Beta en menos de 10 días usando los robots, que deben regresar a Alfa. Elabore un plan para que los robots cumplan su tarea.

  11. Kuki Base lunar Alfa Base Alfa Suelo lunar 9 Días Pipo Base Beta

  12. Las acciones conocidas que emplean en la especificación de un algoritmo se llaman acciones primitivas. Para que un algoritmo pueda ser interpretado y ejecutado debe estar expresado por medio de acciones primitivas que puedan ser comprendidas por el interlocutor, persona o máquina que las llevara a cabo. Un algoritmo puede ser transformado en un programa, cuando se traduce a instrucciones ejecutables por una computadora. Un programa está formado por un conjunto de acciones primitivas definidas por el lenguaje de programación que se utilice.

  13. Lenguaje de diseño de algoritmos Objetivos: • Servir de apoyo durante la resolución del problema. • Servir de etapa previa a la traducción a un lenguaje de programación. • Opción de elegir el lenguaje de programación que más se adecue a las primitivas especificadas en el algoritmo. • Permitir la visón global del trabajo aunque lo estén desarrollando distintas personas.

  14. Estructura de un algoritmo Todo algoritmo se encabeza por un nombre elegido por la persona que lo escribe, al que se le precede la palabra algoritmo. Ejemplo Algoritmo Prueba Todo algoritmo esta constituido por dos componentes claramente identificadas: 1- Los datos. 2- Las acciones. Los datos: objetos que intervienen en la resolución del problema. Forman que intervienen en la resolución del problema. Forman el estado inicial y final del problema. Se llaman datos de entrada y de salida respectivamente

  15. Los datos de algoritmo son objetos que representan a un conjunto de valores, tienen un nombre y asumen algún valor durante la ejecución del algoritmo. Ejemplo: A partir del número 3 obtengo el número 3. A partir del número -5 obtengo el -6. Objetos que intervienen en el problema: El dato es un número. Nombre del dato: número, x, num, etc. Conjunto de valores que se representan: enteros. Valores que se asumen: se establece durante la ejecución del algoritmo.

  16. Algoritmopredecesor Datos de entrada: un-numero Datos de salida: otro-numero

  17. Ejemplo1: Determinar el perímetro de un polígono regular, sabiendo la longitud de uno de sus lados y la cantidad de lados.Algoritmoperímetro-polígono-regulaDatos de entrada: lado, cantidad-ladosDatos de salida: perímetro

  18. Ejemplo2: Contar la cantidad de números primos entre un número natural y otro.Algoritmoprimos-entre-naturalesDatos de entrada: numreo1, numero2Datos de salida: cantidad-de-primos

  19. Ejemplo3: Determinar si un año es bisiesto.Algoritmo año-bisiestoDatos de entrada: añoDatos de salida: es-bisiesto

  20. Precondición

  21. Postcondición

  22. Descripción de las acciones Distinguiremos dos tipos de acciones Manipulación de datos: expresiones por medio de las cuales se obtiene valores. Esos valores pueden asignarse a los datos. Estructuras de control: Esquemas por medio de los cuales se establece el orden de ejecución.

  23. Manipulación de datos

  24. Manipulación de datos

  25. Manipulación de datos Asignación: Operación que aplica un valor a un dato. Forma general: nombre del dato expresión Ejemplos: Número 18 X a – b . C + n Vale verdadero Casi a=b

  26. Ejercicio: Escribir un algoritmo que calcule el área de un cuadrado considerando el lado. Datos u objetos: lado, cuadrado, área. Método área =lado . lado Algoritmo área-cuadrado Acciones Dato de entrada: lado [real positivo] Dato de salida: área [real positivo] área lado . lado Fin

  27. Solución Datos u objetos: circulo, radio, área. Método área =pi . radio2 Algoritmo área-circulo Dato de entrada: radio [real positivo] Dato de salida: área [real positivo] Acciones área pi . radio. radio Fin Ejercicio: Escribir un algoritmo que calcule el área de un circulo considerando su radio.

  28. Ejercicio: Escribir un algoritmo que calcule el área de un triángulo considerando la base y la altura. Solución Datos u objetos:,triángulo, área. Método área =base. Altura/2 Algoritmo área-triángulo Dato de entrada: base, altura [real positivo] Dato de salida: área [real positivo] Acciones área base. Altura/2 Fin

  29. Estructuras de control -Secuencia: Secuencias de control implícita que establece que la ejecución del algoritmo se realiza desde la primera acción hacia la última. Este orden puede ser interrumpido por otra estructura de control. -Condicional: Permite indicar las distintas acciones alternativas a ejecutarse que presentan resolución del problema para hallar las soluciones. -Repetición: Permite indicar en una sola estructura las acciones durante la ejecución se deben reiterar.

  30. Secuencia El orden en que se escribe las acciones de un algoritmo, es el orden en el que se van a ser llevadas a cabo. El orden en que nosotros acostumbramos a escribir y a leer un texto es secuencial y es implícito, esto es, la frese anterior no indica expresamente cual es la siguiente que se debe leer, pero sabemos que es la que continua en el texto. En un algoritmo, la secuencia es similar a la de un texto. En esa secuencia puede ser interrumpida por otras estructuras de control.

  31. Solución Ejercicio: Escribir un algoritmo que calcule el perímetro de un cuadrado conociendo su diagonal.

  32. Solución Algoritmo intercambio-datos Dato de entrada: dato1 dato2 Dato de salida: dato1 dato2 dato-auxiliar dato1 dato1 dato2 dato2 dato-auxiliar Fin Ejercicio: Escribir un algoritmo que permita intercambiar los valores numéricos de dos datos.

  33. Estructuras de control Condicionadas Algunas acciones pueden llevarse a cabo para alguna instancia de una clase de programa o bien si cierta condición se satisfacen. El condicional permite que una acción o conjunto de acciones se pueda ejecutar sólo bajo ciertas condiciones. Ejemplo: Si n>0 Entonces n n-1

  34. Estructuras de control Condicionadas Si n>0 entonces n n-1 si no n n+1 Forma de la estructura de control condicional Si EXPRESIÓN BOOLEANA entonces BLOQUE1 si no BLOQUE2

  35. Estructuras de control Condicionadas La expresión booleana debe ser mutuamente excluyente

  36. Estructuras de control Condicionadas La estructura condicional a la izquierda no es equivalente a las tres estructuras de la derecha. Es decir en el caso de la izquierda solo contemplara una de las tres opciones posible mientras que la estructura de la derecha realizará tres evaluaciones sin considerar que sucedió antes y después.

  37. Estructuras de control Condicionadas Acciones si n >= m entonces mayor n sino mayor m Fin

  38. Estructuras de control Condicionadas Ejemplo: Escribir un algoritmo que permita calcular lo que cobrará en persona a la que se le ha reducido el sueldo en in 13% si con anterioridad cobra menos de 500 pesos, en un 15% si cobra menos de 800 pesos y más o igual a 500, y un 18% si cobra más o igual de 800 pesos. Análisis del problema Sueldo< 500 cobrara=sueldo-sueldo . 0,13 800<=Sueldo< 500 cobrara=sueldo-sueldo . 0,15 800<=Sueldo cobrara=sueldo-sueldo . 0,18

  39. Estructuras de control Condicionadas Algoritmo Descuento Datos de entrada: sueldo [real positivo] Datos de salida: sueldo-nuevo [real positivo] Acciones Si Sueldo< 500 sueldo-nuevo=sueldo-sueldo . 0,13 800<=Sueldo< 500 sueldo-nuevo=sueldo-sueldo . 0,15 800<=Sueldo sueldo-nuevo=sueldo-sueldo . 0,18 Fin

  40. Estructuras de control Condicionadas

  41. Estructuras de control Condicionadas

  42. Estructuras de control Condicionadas Anidada Si EXPRESIÓN BOOLEANA entonces BLOQUE1 si no BLOQUE2 Cada uno de los bloque puede ser una estructura condicionada Si EXPRESIÓN BOOLEANA entoncesSi EXPRESIÓN BOOLEANA entonces BLOQUE1 si no BLOQUE2 si no Si EXPRESIÓN BOOLEANA entonces BLOQUE1 si no BLOQUE2

  43. Estructuras de control Condicionadas Anidada Algoritmo Descuento Datos de entrada: sueldo [real positivo] Datos de salida: sueldo-nuevo [real positivo] Acciones Si Sueldo< 500 entonces sueldo-nuevo=sueldo-sueldo . 0,13 si no Si 800<=Sueldo< 500 entonces sueldo-nuevo=sueldo-sueldo . 0,15 Si no sueldo-nuevo=sueldo-sueldo . 0,18 Fin

  44. Estructuras de control Repetitivas La repetición permite que un conjunto de acciones indicadas en la estructura se ejecute más de una vez, de acuerdo a determinadas condiciones.

  45. Número fijo de repeticiones Forma general de la estructura: Repetir n veces acción Interpretación semántica: La acción se repite tantas veces como lo indique el valor de n:0, 1, o más veces. Ejemplo: Repetir 10 veces X x+1 Repetir n+2 veces X x+1

  46. Ejemplo: Escribir un algoritmo que permita sumar todos los números naturales entre dos números dados, incluyendo éstos. Si n=5 y m=13 suma=5+6+7+8+9+10+11+12+13=81 Si n=1 y m=5 suma=1+2+3+4+5=15

  47. Podemos escribir la siguiente sucesión de acciones auxiliar auxiliar+1 suma suma + auxiliar Tantas veces como sea necesario para obtener el resultado final. Usando la estructura de control repetitiva Repetir m-n veces auxiliar auxiliar+1 suma suma + auxiliar

  48. Algoritmo Suma-de-naturales-sucesivos Datos de entrada: n , m [Naturales] Datos de salida: suma [Natural] Acciones auxiliar n suma auxiliar Repetir m-n veces auxiliar auxiliar+1 suma suma + auxiliar Fin

  49. Algoritmo Suma-de-naturales-sucesivos2 Datos de entrada: n , m [Naturales] Datos de salida: suma [Natural] Acciones auxiliar n suma 0 Repetir (m-n)+1 veces suma suma + auxiliar auxiliar auxiliar+1 Fin

  50. Ejercicio: Escribir un algoritmo que permita escribir el factorial de un número. =1 si n=0 n! =1.2.3…n si n>0 Datos de entrada: n Datos de salida: el-factorial Para obtener el factorial debo general los números desde 1 hasta n factor factor+1

More Related