Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Algoritmo

7,546 views

Published on

Conceptos básicos sobre algoritmos

Published in: Education
  • Be the first to comment

Algoritmo

  1. 1. El algoritmo es un modelo Procesador Entradas Salidas Algoritmo Instrucciones
  2. 2. Algoritmo Definición y Características Algoritmo : es una lista ordenada de instrucciones necesarias para llegar a la solución de un problema especifico. En el que se debe especificar: Los datos que se utilizaran. El procedimiento que actuara sobre estos datos. Características de un Algoritmo COMPLETO: Que entregue todos los resultados en todas las circunstancias. PRECISO : Que no entregue resultados ambiguos. SECUENCIADO : Paso a paso. CORRECTO: Que entregue todos los resultados correctos en todas las circunstancias. DATOS: Explícitamente indicados. Solución con un numero finito de pasos. Solución en tiempo finito Simple y claro.
  3. 3. Solución de problemas por computador <ul><li>La solución de un problema mediante el uso de un computador, tiene las siguientes etapas: </li></ul><ul><li>Análisis del problema </li></ul><ul><ul><li>Desarrollo de un algoritmo : </li></ul></ul><ul><ul><ul><li>Diseño del algoritmo </li></ul></ul></ul><ul><ul><ul><li>Verificación del algoritmo </li></ul></ul></ul><ul><ul><li>Desarrollo de un programa: </li></ul></ul><ul><ul><ul><li>Codificación del algoritmo (programación) </li></ul></ul></ul><ul><ul><ul><li>Pruebas </li></ul></ul></ul><ul><ul><li>Utilización del programa </li></ul></ul>
  4. 4. Algoritmo Definición y Características Algoritmo : es una lista ordenada de instrucciones necesarias para llegar a la solución de un problema especifico. En el que se debe especificar: Los datos que se utilizaran. El procedimiento que actuara sobre estos datos. Características de un Algoritmo COMPLETO: Que entregue todos los resultados en todas las circunstancias. PRECISO : Que no entregue resultados ambiguos. SECUENCIADO : Paso a paso. CORRECTO: Que entregue todos los resultados correctos en todas las circunstancias. DATOS: Explícitamente indicados. Solución con un numero finito de pasos. Solución en tiempo finito Simple y claro.
  5. 5. Objetivos <ul><li>Conocer algunas de las herramientas para desarrollar algoritmos. </li></ul><ul><li>Desarrollar algoritmos usando lenguaje común y diagramas de flujo. </li></ul><ul><li>Elaborar diagramas de flujo normalizados. </li></ul><ul><li>Conocer y comprender el concepto de programación estructurada. </li></ul><ul><li>Conocer las tres estructuras en la que se fundamenta la Programación estructurada. </li></ul>
  6. 6. Herramientas Para Elaborar Algoritmos <ul><li>Para el diseño de la solución a un problema planteado en forma de algoritmo se pueden utilizar diversas herramientas (notaciones), como por ejemplo: </li></ul><ul><ul><li>Diagramas </li></ul></ul><ul><ul><ul><li>Diagramas de Flujo (flowchart). </li></ul></ul></ul><ul><ul><ul><li>Diagramas de Chapin. </li></ul></ul></ul><ul><ul><ul><li>Otros … </li></ul></ul></ul><ul><ul><li>Árboles de decisión (Bertini). </li></ul></ul><ul><ul><li>Pseudocódigo estructurado. </li></ul></ul>
  7. 7. Diagramas De Flujo <ul><li>Es la representación grafica del flujo que van a seguir los datos, así como la secuencia lógica de las operaciones para la resolución del problema. </li></ul><ul><li>Esta representación gráfica debe tener las siguientes cualidades: </li></ul><ul><ul><ul><li>Sencillez en su construcción </li></ul></ul></ul><ul><ul><ul><li>Claridad en su comprensión </li></ul></ul></ul><ul><ul><ul><li>Normalización en su diseño </li></ul></ul></ul><ul><ul><ul><li>Flexibilidad en sus modificaciones </li></ul></ul></ul>
  8. 8. Diagrama De Flujo Estructurado <ul><li>Teorema de la estructura. </li></ul><ul><ul><li>Todo diagrama estructurado, cualquiera que sea el trabajo que tenga que realizar, se puede hacer utilizando tres únicas estructuras de control que son la secuencia, alternativa y repetición. </li></ul></ul>
  9. 9. Pseudocódigo Estructurado <ul><li>El Pseudocódigo consiste en una representación más formal, ordenada y específica de los pasos que están en un algoritmo. </li></ul><ul><li>El concepto formal involucra elementos propios de “pseudo” programación, definiendo así un patrón mucho más cercano al producto final que será el código en algún lenguaje de programación. </li></ul><ul><li>Es ordenada porque muestra una secuencia clara y precisa de instrucciones que siguen un orden. Este orden se asemejará mucho al que se usa en un programa. </li></ul>
  10. 10. Pseudocódigo Estructurado <ul><li>Por último, se puede afirmar que es específica porque el pseudo código esta representada a través de una simbología que se pueda traducir en un programa de computador. </li></ul><ul><li>Aunque es muy detallado en su implementación el Pseudocódigo no llega a tener el desglose de mas bajo nivel. </li></ul><ul><li>En definitiva, una forma con la que se puede referenciar al pseudo código sería: “programa en bruto”. </li></ul><ul><li>Esto es así porque si bien un algoritmo en pseudo código representa fielmente al algoritmo original, no es posible ingresarlo al computador tal cual para que sea un programa. </li></ul>
  11. 11. Estructura Secuencial <ul><li>La estructura secuencial es aquella en la que una acción (instrucción) sigue a otra en secuencia. </li></ul><ul><ul><li>Inicio </li></ul></ul><ul><ul><li> Acción 1 </li></ul></ul><ul><ul><li> Acción 2 </li></ul></ul><ul><ul><li> . </li></ul></ul><ul><ul><li> . </li></ul></ul><ul><ul><li> Acción N </li></ul></ul><ul><ul><li>Fin </li></ul></ul>
  12. 12. Variables <ul><li>Es una posición temporal de almacenamiento de datos. </li></ul><ul><ul><li>Nombre </li></ul></ul><ul><ul><li>Tipo </li></ul></ul><ul><ul><li>Contenido </li></ul></ul>
  13. 13. Asignación <ul><li>La asignación consiste, en el paso de valores o resultados a una zona de la memoria. </li></ul><ul><li>Dicha zona será reconocida con el nombre de la variable que recibe el valor. </li></ul>
  14. 14. Clasificación de Asignación <ul><li>Simples: </li></ul><ul><ul><li>Consiste en pasar un valor constate a una variable (a=15) </li></ul></ul><ul><li>Contador: </li></ul><ul><ul><li>Consiste en usarla como un verificador del numero de veces que se realiza un proceso (a=a+1) </li></ul></ul><ul><li>Acumulador: </li></ul><ul><ul><li>Consiste en usarla como un sumador en un proceso (a=a+b) </li></ul></ul><ul><li>Expresión: </li></ul><ul><ul><li>Donde puede recibir el resultado de una operación matemática que involucre muchas variables (a=c+b*2/4). </li></ul></ul>
  15. 15. Entrada (Lectura) <ul><li>La lectura consiste en recibir desde un dispositivo de entrada (por ejemplo el teclado) un valor. </li></ul><ul><li>Esta operación se representa en un pseudo código como sigue: </li></ul><ul><ul><li>Leer( a) </li></ul></ul><ul><ul><ul><ul><li>Leer (a, b) </li></ul></ul></ul></ul><ul><li>Donde “a” y “b” son las variables que recibirán los valores </li></ul>
  16. 16. Salida (Escritura) <ul><li>Consiste en enviar información por un dispositivo de salida (por ejemplo monitor o impresora). </li></ul><ul><li>Este proceso se representa en un Pseudocódigo como sigue: </li></ul><ul><li>Escribir (“El resultado es:” , R)  </li></ul><ul><li>Donde “El resultado es: “” es un mensaje que se desea aparezca de igual forma que como lo escribimos y R es una variable que contiene un valor. </li></ul>
  17. 17. Tipos De Datos <ul><li>Byte: entero positivo entre 0 y 255 </li></ul><ul><li>Integer: entero </li></ul><ul><li>Long: entero largo </li></ul><ul><li>Single: real </li></ul><ul><li>Double: real largo </li></ul><ul><li>String: cadena </li></ul><ul><li>Boolean: lógico, verdadero o falso </li></ul><ul><li>Array: arreglo </li></ul>
  18. 18. Operadores <ul><li>Aritméticos. </li></ul><ul><ul><li>+ : suma. </li></ul></ul><ul><ul><li>- : resta. </li></ul></ul><ul><ul><li>* : multiplicación. </li></ul></ul><ul><ul><li>/ : división. </li></ul></ul><ul><ul><li>^: exponencial. </li></ul></ul><ul><ul><li>mod : módulo de la división </li></ul></ul><ul><li>Lógicos. </li></ul><ul><ul><li>And: Y </li></ul></ul><ul><ul><li>Or: O </li></ul></ul><ul><ul><li>Not: Negación </li></ul></ul>
  19. 19. Operadores Relacionales <ul><li>< ...menor que </li></ul><ul><li>> ...mayor que </li></ul><ul><li><= ...menor o igual que </li></ul><ul><li>>= ...mayor o igual que </li></ul><ul><li>= ...igual que </li></ul><ul><li><> ...distinto a </li></ul>
  20. 20. Estructura Selección <ul><li>La estructura de selección, se ejecuta condicionalmente, es decir, si una cierta condición es verdadera se ejecuta un bloque de instrucciones, si es falsa se ejecuta un bloque diferente de instrucciones. </li></ul>
  21. 21. Selección Simple <ul><li>El formato de la estructura de selección Simple es: </li></ul><ul><li>si <condición> entonces </li></ul><ul><li>instrucción 1 </li></ul><ul><li>instrucción 2 </li></ul><ul><li>................. </li></ul><ul><li>instrucción n </li></ul><ul><li>fin-si. </li></ul>
  22. 22. Selección Doble <ul><li>El formato de la estructura de selección doble es: </li></ul><ul><li>si <condición> entonces </li></ul><ul><li>instrucción 1 </li></ul><ul><li>instrucción 2 </li></ul><ul><li> ................... </li></ul><ul><li>instrucción n </li></ul><ul><li>si-no </li></ul><ul><li>instrucción a </li></ul><ul><li>instrucción b </li></ul><ul><li>................... </li></ul><ul><li>instrucción z </li></ul><ul><li>fin-si </li></ul>
  23. 23. Selección Múltiple <ul><li>Según sea <variable> </li></ul><ul><li>Caso = <condición> </li></ul><ul><li>instrucción o Instrucciones </li></ul><ul><li>… .. </li></ul><ul><li>Caso = <condición> </li></ul><ul><li>instrucción o instrucciones </li></ul><ul><li>…… .. </li></ul><ul><li>Otro caso </li></ul><ul><li>instrucción o instrucciones </li></ul><ul><li>…… . </li></ul><ul><li>fin-según. </li></ul>
  24. 24. Estructuras Cíclicas <ul><li>Se llaman problemas repetitivos o cíclicos a aquellos en cuya solución es necesario utilizar un mismo conjunto de acciones que se puedan ejecutar una cantidad especifica de veces. </li></ul><ul><li>Esta cantidad puede ser fija (previamente determinada por el programador) o puede ser variable (estar en función de algún dato dentro del programa). </li></ul>
  25. 25. Clasificación <ul><li>Los ciclos se clasifican en: </li></ul><ul><ul><li>Numero de Iteraciones Fija </li></ul></ul><ul><ul><ul><li>Desde-hasta </li></ul></ul></ul><ul><ul><li>Numero de Iteraciones Variables </li></ul></ul><ul><ul><ul><li>Mientras </li></ul></ul></ul><ul><ul><ul><li>Hacer-Mientras </li></ul></ul></ul>
  26. 26. Desde-Hasta <ul><li>Son aquellos en que el número de iteraciones se conoce antes de ejecutarse el ciclo. La forma de esta estructura es la siguiente: </li></ul><ul><li>Desde V = Vi hasta Vf, inc hace </li></ul><ul><li>Acción 1 </li></ul><ul><li>Acción 2 </li></ul><ul><li>Acción N </li></ul><ul><li>Fin desde </li></ul><ul><li>Donde </li></ul><ul><li>V. Variable de control del ciclo. </li></ul><ul><li>Vi. Valor inicial. </li></ul><ul><li>Vf. Valor final. </li></ul><ul><li>Inc. Incremento del ciclo, si no se indica se asume 1. </li></ul>
  27. 27. Mientras <ul><li>La forma de esta estructura es la siguiente: </li></ul><ul><li>Mientras <condición> hacer Acción 1 Acción 2 … </li></ul><ul><ul><li>Acción N </li></ul></ul><ul><ul><li>Fin mientras </li></ul></ul>
  28. 28. Hacer-Mientras <ul><li>La forma de esta estructura es la siguiente: </li></ul><ul><li>Hacer </li></ul><ul><li>Acción 1 </li></ul><ul><li>Acción 2 </li></ul><ul><li>. . Acción n Mientras <condición> </li></ul><ul><li> </li></ul>

×