Uploaded on

Definición y elementos de los algoritmos

Definición y elementos de los algoritmos

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
12,115
On Slideshare
0
From Embeds
0
Number of Embeds
2

Actions

Shares
Downloads
258
Comments
0
Likes
2

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. ALGORITMOS Ing. David Arturo Ríos Muñoz Informática II
  • 2. Definiciones
    • Un conjunto de pasos que nos permite obtener la solución a un problema.
    • Una serie de pasos organizados que describe el proceso que se debe seguir para dar solución a un problema específico.
    • Una secuencia finita de instrucciones realizables, no ambiguas, cuya ejecución conduce a la resolución de un problema.
  • 3.  
  • 4. Origen de Algoritmo
    • Se deriva del nombre latinizado del matemático árabe Mohamed Ibn Al Kow Rizmi. Quien encontró un método para encontrar un máximo común divisor, al igual que Euclides.
  • 5. Ejemplo del algoritmo de Euclides
    • Se tienen las cifras a = 945 y b = 651 entonces:
    • 945/651 = 1 y quedan 294, luego:
    • 651/294 = 2 y quedan 63
    • 294/63 = 4 y quedan 42
    • 62/42 = 1 y quedan 21
    • 42/21 = 2 y quedan 0
    • Entonces el máximo común divisor será 21.
  • 6. Clasificación de métodos
    • Los métodos que utilizan algoritmos para la resolución de algún problema o tarea se conocen como algorítmicos.
    • Los métodos que no utilizan un proceso establecido sino que implican algún juicio o interpretación se conocen como métodos heurísticos.
    • Para la informática, el uso de programas representa el uso de algoritmos para resolver algún problema o tarea en específico.
    • La codificación de estos algoritmos se realiza en algún lenguaje informático como C+, Java, Qbasic, entre otros…
  • 7. Representación de los algoritmos
    • Existen dos maneras de representar un algoritmo:
    • Gráfica: es con símbolos, utilizando algún tipo de diagrama por ejemplo el diagrama de flujo.
    • No gráfica: describiendo las operaciones que se llevarán a cabo, utilizando un pseudocódigo (lenguaje simulado donde se pueden describir las tareas a realizar sin conocer los comandos de un lenguaje especifico).
  • 8. Otra clasificación puede ser:
    • Deterministas: en cada paso del algoritmo se determina, de forma única, el siguiente paso (lineal no muy complejo).
    • No deterministas: deben decidir en cada paso de la ejecución entre varias alternativas y agotarlas todas antes de encontrar la solución.
    • Ejemplos: la diferencia en el arreglo de un hombre y una mujer.
  • 9.  
  • 10. Diagrama no determinista
  • 11. Diagrama determinista
  • 12. CARACTERISTICAS DE LOS ALGORITMOS
    • Finito. Qué se acaba después de un número finito de pasos.
    • Definido. Definirse en forma precisa para cada paso, si se sigue dos veces se obtiene el mismo resultado.
    • Preciso. Todas sus operaciones deben ser lo suficientemente claras (no ambiguas).
  • 13. Partes de un algoritmo
    • Entrada. Cantidades dadas antes de empezar que representan al mundo real.
    • Proceso. Descripción de las operaciones que se llevarán a cabo con las entradas anteriores.
    • Salida. Producto obtenido después del algoritmo (dato o producto final).
  • 14. Características de calidad de un algoritmo.
    • Corrección. Que siempre lleve a un resultado correcto.
    • Funcionalidad. Que funcione para lo que fue hecho.
    • Eficiencia. Que utilice la menor cantidad de recursos.
    • Claridad. Puede estar documentado para comprender mejor su funcionamiento.
  • 15. Actividad individual
    • Contesta las siguientes preguntas:
    • ¿Cuál es la definición formal de algoritmo?
    • ¿Cuándo podemos decir que un algoritmo funciona?
    • ¿Qué relación tiene un algoritmo claro con uno eficiente?
    • ¿Cuál es la función del proceso de salida de un algoritmo?
    • ¿Por qué un algoritmo debe ser claro?
  • 16. Ejercicio en parejas
    • Elabora un algoritmo de la vida escolar cotidiana donde se incluyan al menos la tres partes que lo integran (entrada, proceso y salida).
  • 17. DEFINICION BASICA
    • Problema.- Asunto o conjunto de cuestiones que se plantean para ser resueltas.
    • Son situaciones nuevas que requieren que la gente responda con comportamientos nuevos, y varían de acuerdo al contexto en el que se plantean: ejemplo, problemas matemáticos, químicos, filosóficos, etcétera …
  • 18. Elementos de un problema:
    • Situación inicial
    • Situación final u objetivo a alcanzar.
    • Restricciones o pautas respecto a métodos, actividades, tipos de operaciones, etc…
  • 19. EJEMPLO
  • 20. PASOS PARA LA SOLUCION DE PROBLEMAS
    • No existe una metodología universal pero generalmente se utilizan las siguientes fases.
    • Definición del problema. Es el enunciado del problema, con el cual se delimita (¿qué se desea realizar?).
    • Análisis del problema. Se realiza una lista de los requisitos o restricciones que posee el problema para su mejor delimitación.
      • NOTA: Para definir el problema es necesario desarrollar un enunciado definitivo del problema por resolver e incluir un a definición de la situación actual, las restricciones y las metas que se lograrán.
    • Diseño del algoritmo. Se busca desarrollar de manera teórica los pasos que seguiremos par resolver dicho problema
  • 21. PASOS PARA LA SOLUCION DE PROBLEMAS
    • Codificación. Se traducen las instrucciones o pasos de la etapa anterior (en informática se utiliza un lenguaje de alto nivel para obtener un programa).
    • Prueba y depuración. Se lleva a cabo los pasos del codificado y se comprueba que se llegue a la solución esperada, de detectan errores y se van corrigiendo, además de busques la eficiencia.
    • Documentación: En informática es el desarrollo de manuales para los usuarios del programa.
    • Mantenimiento. Es la actualización y modificación del programa para resolver necesidades nuevas del usuario.
  • 22. MÉTODOS DE SOLUCIÓN DE PROBLEMAS
    • Para el desarrollo de nuevos algoritmos se tienen los siguientes métodos:
    • METODO DE FUERZA BRUTA.
    • No es un esquema algorítmico sino más bien una solución directa poco reflexionada. Puede dar una aproximación a la solución final y se basa primordialmente en el método de prueba y error.
    • DIVIDE Y VENCERÁS
    • Consiste en descomponer el problema en subproblemas que se resuelven independientemente para después combinar las soluciones o resolver el problema original. Se puede aplicar con éxito a problemas matemáticos como multiplicación de matrices, algebra, etc..
  • 23. MÉTODOS DE SOLUCIÓN DE PROBLEMAS
    • MÉTODO VORAZ
    • Trata de producir un mejor resultados a partir de un conjunto de opciones. Se procede paso a paso realizando la mejor elección entre las posibles. Se emplea en la optimización, por lo que parte de una solución que puede mejorarse.
    • El algoritmo se orienta a la selección de la mejor solución con base a ciertas candidatas a solución.
    • Ejemplo: desglosar una cantidad en el menor número de monedas posible
  • 24. MÉTODOS DE SOLUCIÓN DE PROBLEMAS
    • PROGRAMACIÓN DINAMICA.
      • Permite resolver un problema mediante una secuencia de decisiones, menos directo que el método voraz.
      • Solamente al final se sabe la mejor decisión de todas.
      • Inventada por el matemático Richard Bellman en 1953.
      • Se utiliza una tabla para ir identificando los resultados de cada alternativa y se basa en ecuaciones.
  • 25. MÉTODOS DE SOLUCIÓN DE PROBLEMAS
    • ALGORITOMOS VUELTA ATRÁS O BACKTRACKING.
        • No siguen reglas para la búsqueda de una solución, simplemente efectúan una búsqueda sistemática, probar todo lo posible hasta encontrar una solución.
        • Se llaman de vuelta atrás porque en caso de no encontrar una solución en alguna subtarea, se regresa a la tarea original y comienza con otra subtarea o alternativa.
        • Se asemejan al recorrido dentro de un diagrama de árbol.
  • 26. DIAGRAMAS
    • Una forma de representar los algoritmos es mediante el uso de diagramas, principalmente diagramas de flujo.
    • Definición. Diagrama es una representación gráfica que muestra las relaciones entre diferentes partes de un conjunto o sistema.
  • 27. Funciones de un diagrama
    • Muestran gráficamente las acciones que se realizaran de acuerdo con el programa.
    • Ayudan a pensar claramente.
    • Ayudan a detectar errores.
    • Facilitan cambios en el programa.
    • EXISTEN DIFERENTES TIPOS DE
    • PROGRAMAS
  • 28. Diagramas de entrada-proceso-salida (IPO)
    • Siglas en inglés (input-process-output)
    • Es simple, donde se presenta una entrada desde el usuario, un dispositivo, o un programa, se procesa la información y se obtiene un resultado.
    • Su funcionamiento es realmente claro y presenta las siguientes etapas:
      • Entrada. Es la información que se obtiene para resolver el problema.
      • Proceso. Involucra todo aquello que se hace para manipular o alterar los datos de entrada. Son los pasos necesarios para obtener el resultado de salida, ocupa generalmente la mayor parte del programa.
      • Salida. Es la meta de la solución del problema.
  • 29. Ejemplo de un algoritmo
  • 30. DIAGRAMA HIPO (Hierarchy-Input-Process-Output)
    • Fueron desarrollados por la IBM como esquemas de representación para un desarrollo jerárquico de arriba abajo.
    • Contiene una tabla visual de contenidos, un conjunto de diagramas generales y otro de detalles.
  • 31. DIAGRAMA DE FLUJO
    • Son representaciones gráficas de los pasos a seguir para lograr un resultado.
    • Se utilizan para representar algoritmos pequeños, ya que requieren espacio y tiempo para su elaboración.
    • Debe ilustrar gráficamente los pasos o procesos a seguir .
    • Se constituye principalmente de la siguiente manera: inicia, recibe datos, realiza el procesamiento, muestra resultados y finaliza.
  • 32. Ejemplos de diagramas de flujo
  • 33. SIMBOLOGIA DE LOS DIAGRAMAS DE FLUJO
    • PROCESO. Se utiliza para representar operaciones de proceso. Son símbolos de entrada y salida.
    • Usualmente se colocan dentro de el instrucciones aritméticas y movimiento de datos.
    • TERMINAL. Represente el comienzo (Inicio) y el final (fin) de un programa o algoritmo.
    • DECISION. Tiene una entrada y por lo menos dos salidas o transferencias, indica operaciones de lógica o comparación y las salidas por lo general indican un sí o un no para una instrucción condicional.
  • 34. SIMBOLOGIA DE LOS DIAGRAMAS DE FLUJO
    • CONECTOR. Indican una salida a otra parte del diagrama o indican una entrada hacia cierta parte del diagrama, sirven para evitar confusiones con las líneas de flujo.
    • PROCESO PREDETERMINADO. Indican una parte del programa que se repite, se escribe una sola vez y luego se integra donde se requiera.
    • ANOTACION. Se emplean para añadir comentarios y se dibujan a un lado de los símbolos u operaciones a comentar.
  • 35. SIMBOLOGIA DE LOS DIAGRAMAS DE FLUJO
    • PROCESO MANUAL.
    • Entrada/ Salida de datos.
    • Pantalla
    • Impresora
    • Disco.
    • Cinta magnética.
  • 36. SIMBOLOGIA DE LOS DIAGRAMAS DE FLUJO SIMBOLO OPERACIÓN SIMBOLO OPERACIÓN + Sumar ≥ Mayor o igual que - Menos ≤ Menor o igual que * Multiplicación ≠ <> Diferente de / División Si ± Más o menos No = Equivalente True > Mayor que False < Menor que
  • 37. ETAPAS EN CONSTRUCCION DE DIAGRAMAS DE FLUJO
    • Todo diagrama debe tener un inicio y un fin.
    • Las líneas de conexión deben ser rectas verticales y horizontales (ni inclinadas ni cruzadas)
    • Todas las líneas deben estar conectadas por un símbolo.
    • La notación utilizada es independiente al lenguaje de programación.
    • Debe construirse de arriba abajo y de izquierda a derecha.
    • Si se requiere más de una hoja se deben utilizar conectores fuera de página.
    • No puede legar más de una línea en un símbolo.
  • 38. Ejemplos
    • Diseñar un algoritmo que dando como dato la calificación de un alumno en un examen escriba «Aprobado» si su calificación es mayor que 8 y «Reprobado» en caso contrario.
    • Diagrama de flujo que encuentre la suma de los primeros 15 números naturales.
  • 39. Caso 1. EJEMPLO INICIO LEER «CALIFICACION CALIFICACION >= 8 IMPRIMIR «APROBADO» FIN IMPRIMIR «REPROBADO» SI NO
  • 40. Caso 2. EJEMPLO INICIO FIN SUMA = 0 N = 0 N = N + 1 SUMA = SUMA + N N = 15 MUESTRA SUMA NO SI
  • 41. PSEUDOCODIGO
    • Es un lenguaje de especificaciones de algoritmos.
    • Es la representación narrativa de los pasos que debe seguir un algoritmo para dar solución a un problema determinado.
    • Utiliza palabras que indican el proceso a realizar.
    • El pseudocódigo siempre comienza con la palabra inicio y termina con la palabra fin.
  • 42. Componentes del pseudocódigo
    • ASIGNACIÓN DE DATOS. Consiste en el paso de valores o resultados de una zona de memoria (variable) a otra.
      • Simple. Dar un valor constante a una variable.
      • Contador. Se utiliza como un verificador de número de veces que se realiza el algoritmo.
      • Acumulador. Se usa como un sumador en el proceso.
      • De trabajo. Puede recibir resultados de operaciones matemáticas.
      • FORMATO
      • <nombre de variable> ← <expresión>
  • 43. Componentes del pseudocódigo
    • ESCRITURA O SALIDA DE DATOS. Consiste en mandar por un dispositivo de salida un resultado o mensaje («mensaje«, valor).
      • FORMATO
      • salida: (<lista de expresiones>)
  • 44. Componentes del pseudocódigo
    • LECTURA DE DATOS. Consiste en recibir desde un dispositivo de entrada un valor o un dato, que se almacena en una variable.
      • FORMATO
      • LEA <variable>
  • 45. Ventajas del pseudocódigo frente al diagrama de flujo
    • Ocupa menos espacio en una hoja de papel.
    • Permite representar en forma fácil operaciones repetitivas complejas.
    • Es muy fácil de pasar del pseudocódigo a un lenguaje de programación.
    • Si se da seguimiento a las reglas se pueden observar los niveles que tiene cada operación.
  • 46. ESTRUCTURAS DE CONTROL DE LOS ALGORITMOS.
    • Son un grupo de formas de trabajo que permiten realizar ciertos procesos para llegar a la solución del problema.
      • Existen tres grupos o estructuras de los algoritmo:
      • Secuencial.
      • Alternativa.
      • Repetitiva.
  • 47. 1. Secuencial.
    • Es una estructura con una entrada y una salida, con una serie de acciones con ejecución lineal y un orden.
      • Las reglas o acciones del algoritmo deben cumplir las siguientes propiedades:
      • Deben ser seguidas de una secuencia definida de pasos.
      • Sólo puede ejecutarse una operación a la vez.
  • 48. 2. Alternativa.
    • Es una estructura con una entrada y dos o más salidas.
    • Se realiza una acción elegida entre varias de acuerdo a una condición.
    • Puede ser simple o compuesta.
      • Se clasifica en:
      • ESTRUCTURA DE DOS SALIDAS.
      • ESTURTURA DE TRES O MÁS SALIDAS.
    • Utiliza palabras de control como si, no, entonces o if, then, else)
  • 49. 3. Repetititva
    • Es una estructura con una entrada y una salida en la cual se repite una acción un número determinado o indeterminado de veces.
    • Se condiciona al cumplimiento de una condición.
    • Estas estructuras pueden ser:
      • Estructura para (for). Una acción se repite un número fijo de veces.
      • Estructura mientras (while). Se repite una acción mientras se cumpa una condición que controla el ciclo o bucle. LA CONDICIÓN SE EVALÚA SIMPRE ANTES DE CADA REPETICIÓN.
      • Estructura Hasta (until). Se repite la acción hasta que se cumpla una condición
  • 50. Ejemplos Estructura Secuencial
    • Pseudocódigo
    • INICIO
    • LEA <CAL1> <CAL2> <CAL3>
    • SUMA ← CAL1 + CAL2 + CAL3
    • PROM ← SUMA/3
    • SALIDA: «TU PROMEDIO ES:» PROM
    • FIN
    • Diagrama
    INICIO LEA <CAL1><CAL2><CAL3> SUMA ← CAL1 + CAL2 +CAL3 PROM ← SUMA/3 IMPRIMIR «TU PROMEDIO ES» PROM FIN
  • 51. Ejemplos Estructura Alternativa
    • Pseudocódigo
    • INICIO
    • LEA <CAL>
    • SI CAL>=8
    • ENTONCES
    • SALIDA: «APROBADO»
    • SI_NO
    • SALIDA: «REPROBADO»
    • FIN
    • Diagrama
    INICIO LEER «CAL» CALI >= 8 IMPRIMIR «APROBADO» FIN IMPRIMIR «REPROBADO» SI NO
  • 52. Ejemplos Estructura REPETITIVA
    • Diagrama
    INICIO FIN SUMA = 0 N = 0 N = N + 1 SUMA = SUMA + N N = 15 MUESTRA SUMA NO SI