Algoritmo

6,818 views
6,802 views

Published on

Conceptos básicos sobre algoritmos

Published in: Education
0 Comments
7 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
6,818
On SlideShare
0
From Embeds
0
Number of Embeds
12
Actions
Shares
0
Downloads
304
Comments
0
Likes
7
Embeds 0
No embeds

No notes for slide

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>

×