Your SlideShare is downloading. ×
0
Algoritmos
Algoritmos
Algoritmos
Algoritmos
Algoritmos
Algoritmos
Algoritmos
Algoritmos
Algoritmos
Algoritmos
Algoritmos
Algoritmos
Algoritmos
Algoritmos
Algoritmos
Algoritmos
Algoritmos
Algoritmos
Algoritmos
Algoritmos
Algoritmos
Algoritmos
Algoritmos
Algoritmos
Algoritmos
Algoritmos
Algoritmos
Algoritmos
Algoritmos
Algoritmos
Algoritmos
Algoritmos
Algoritmos
Algoritmos
Algoritmos
Algoritmos
Algoritmos
Algoritmos
Algoritmos
Algoritmos
Algoritmos
Algoritmos
Algoritmos
Algoritmos
Algoritmos
Algoritmos
Algoritmos
Algoritmos
Algoritmos
Algoritmos
Algoritmos
Algoritmos
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Algoritmos

13,726

Published on

Definición y elementos de los algoritmos

Definición y elementos de los algoritmos

0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
13,726
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
284
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

×