• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Algoritmos
 

Algoritmos

on

  • 11,058 views

Definición y elementos de los algoritmos

Definición y elementos de los algoritmos

Statistics

Views

Total Views
11,058
Views on SlideShare
9,867
Embed Views
1,191

Actions

Likes
2
Downloads
232
Comments
0

1 Embed 1,191

http://lasalleplayadelcarmen.wordpress.com 1191

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Algoritmos Algoritmos Presentation Transcript

    • ALGORITMOS Ing. David Arturo Ríos Muñoz Informática II
    • 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.
    •  
    • 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.
    • 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.
    • 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…
    • 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).
    • 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.
    •  
    • Diagrama no determinista
    • Diagrama determinista
    • 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).
    • 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).
    • 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.
    • 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?
    • 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).
    • 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 …
    • 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…
    • EJEMPLO
    • 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
    • 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.
    • 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..
    • 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
    • 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.
    • 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.
    • 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.
    • 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
    • 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.
    • Ejemplo de un algoritmo
    • 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.
    • 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.
    • Ejemplos de diagramas de flujo
    • 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.
    • 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.
    • SIMBOLOGIA DE LOS DIAGRAMAS DE FLUJO
      • PROCESO MANUAL.
      • Entrada/ Salida de datos.
      • Pantalla
      • Impresora
      • Disco.
      • Cinta magnética.
    • 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
    • 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.
    • 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.
    • Caso 1. EJEMPLO INICIO LEER «CALIFICACION CALIFICACION >= 8 IMPRIMIR «APROBADO» FIN IMPRIMIR «REPROBADO» SI NO
    • Caso 2. EJEMPLO INICIO FIN SUMA = 0 N = 0 N = N + 1 SUMA = SUMA + N N = 15 MUESTRA SUMA NO SI
    • 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.
    • 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>
    • 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>)
    • 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>
    • 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.
    • 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.
    • 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.
    • 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)
    • 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
    • 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
    • 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
    • Ejemplos Estructura REPETITIVA
      • Diagrama
      INICIO FIN SUMA = 0 N = 0 N = N + 1 SUMA = SUMA + N N = 15 MUESTRA SUMA NO SI