UNIVERSIDAD POLITECNICA SALESIANA FORMAS DE DESCRIBIR UN ALGORITMO ¿Que es un Algoritmo? Un algoritmo es un conjunto limitado de reglas establecidas de forma secuencial que permiten realizar mecánicamente un proceso determinado. Un algoritmo, entonces, no es más que una especie de guía que nos indica una serie de tareas elementales que hemos de realizar a la hora de llevar a cabo un proceso, así como el orden en que estas deben ser realizadas. Cualquier tarea para la que se pueda realizar un algoritmo de este tipo, sea esta mas o menos compleja, es de ser mecanizada, esto es, de ser realizada mediante un ordenador y por tanto, a la hora de emprender dicha tarea, el primer paso será diseñar su algoritmo correspondiente. Análisis de algoritmos El análisis de algoritmos se ha desarrollado para obtener valores que de alguna forma indiquen (o especifiquen) la evolución del gasto de tiempo y memoria en función del tamaño de los valores de entrada. El análisis de los algoritmos se centra en los principios básicos del algoritmo, no en los de la implementación. Para representar los algoritmos tenemos tres maneras que son: • Narrativa • Diagrama de flujo • Pseudocódigo Narrativa Se usa el lenguaje común para describir el algoritmo. Por ejemplo a la hora de prepara la facturación de una empresa 1. Consultar un archivo en el que aparezcan los distintos clientes y las compras que han realizado durante el periodo que se desea facturar. 2. Consultar un segundo fichero en el que aparezcan los códigos de los productos adquiridos y los precios unitarios de cada producto. 3. Par cada cliente, multiplicar las unidades compradas de un cierto producto por el precio unitario del mismo. 4. Sumar los importes parciales correspondientes a cada uno de los productos. 5. Suma r o restar a la cantidad obtenida en el apartado anterior las bonificaciones o penalizaciones que pueda tener cada cliente.
6. Restar de la cantidad anterior las tazas e impuestos
correspondientes. 7. Confeccionar la factura. 8. Enviar la factura al cliente. Este conjunto de tareas elementales que ha de realizarse en una secuencia preestablecida. Construyendo el algoritmo de la facturación de la empresa. Diagrama de Flujo El diagrama de flujo es la representación grafica del algoritmo confeccionado por el programador a la hora de llevar a cabo una tarea. Un algoritmo generalmente es complejo, largo y difícil de mantener en la memoria, razón por la cual a de escribirse, pero en vez de escribirlo en un idioma normal castellano, ingles, francés, se escribe por medio de un idioma grafico que da lugar a un organigrama. Este proceso de confección del organigrama es lo que constituye el autentico trabajo de programación, en el vendrán representadas las entradas y salidas del programa, los cálculos, las comparaciones, la operaciones lógicas y las bifurcaciones lógicas y las bifurcaciones que determinan las secuencias de las operaciones que habrá de realizar el ordenador. Tipos de diagramas de flujos • Formato Vertical: En él el flujo o la secuencia de las operaciones, va de arriba hacia abajo. Es una lista ordenada de las operaciones de un proceso con toda la información que se considere necesaria, según su propósito. • Formato Horizontal: En él el flujo o la secuencia de las operaciones, va de izquierda a derecha. • Formato Panorámico: El proceso entero está representado en una sola carta y puede apreciarse de una sola mirada mucho más rápido que leyendo el texto, lo que facilita su comprensión, aun para personas no familiarizadas. Registra no solo en línea vertical, sino también horizontal, distintas acciones simultáneas y la participación de más de un puesto o departamento que el formato vertical no registra. • Formato Arquitectónico: Describe el itinerario de ruta de una forma o persona sobre el plano arquitectónico del área de trabajo. El primero de los flujogramas es eminentemente descriptivo, mientras que los utilizados son fundamentalmente representativos. •
Símbolos empleados en un diagrama de flujo Nombre Terminal
Símbolo
Función Representa el inicio y fin de un programa. También puede
representar una parada o interrupción programada que sea necesaria realizar en un programa. Entrada / salida
Cualquier tipo de introducción de datos en la memoria desde los periféricos o registro de información procesada en un periférico.
Proceso
Cualquier tipo de operación que pueda originar cambio de valor, formato o posición de la información almacenada en memoria, operaciones aritméticas, de transformaciones, etc.
Decisión
Indica operaciones lógicas o de comparación entre datos (normalmente dos) y en función del resultado de la misma determina (normalmente si y no) cual de los distintos caminos alternativos del programa se debe seguir
Conector Misma Página
Sirve para enlazar dos partes cualesquiera de un diagrama a través de un conector en la salida y otro conector en la entrada. Se refiere a la conexión en la misma pagina del diagrama
Indicador de dirección o línea de flujo
Indica el sentido de la ejecución de las operaciones
Salida
Se utiliza en ocasiones en lugar del símbolo de salida. El dibujo representa un pedazo de hoja. Es usado para mostrar datos o resultados.
Reglas de los diagramas de flujo • Debe de indicar claramente dónde inicia y dónde termina el diagrama. • Cualquier camino del diagrama debe de llevarte siempre a la terminal de fin. • Organizar los símbolos de tal forma que siga visualmente el flujo de arriba hacia abajo y de izquierda a derecha.
• • •
No usar lenguaje de programación dentro de los símbolos. Centrar el diagrama en la página. Las líneas deben ser verticales u horizontales, nunca diagonales.
Ejemplo:
Pseudocódigo Mezcla de lenguaje de programación y español (o ingles o cualquier otro idioma) que se emplea, dentro de la programación estructurada, para realizar el diseño de un programa. En esencial, el Pseudocódigo se puede definir como un lenguaje de especificaciones de algoritmos. En esencial, el Pseudocódigo se puede definir como 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, el pseudocódigo utiliza palabras que indican el proceso a realizar. Ventajas de utilizar un Pseudocódigo 1. Ocupan mucho menos espacio en el desarrollo del problema. 2. Permite representar de forma fácil operaciones repetitivas complejas. 3. Es más sencilla la tarea de pasar de pseudocódigo a un lenguaje de programación formal.
4. Si se siguen las reglas de identación se puede observar claramente los niveles en la estructura del programa. 5. Mejora la claridad de la solución de un problema. Ejemplo: algoritmo rectángulo inicio leer (base) leer (altura) área = base * altura perímetro = 2 * base + 2 * altura escribir (área) escribir (perímetro) fin