Diseño de algoritmos
Elementos
básicos en el diseño de
algoritmos
-
HERRAMIENTAS PARA EL DISEÑO DE
ALGORITMOS
Las dos herramientas más utilizadas para
diseñar algoritmos son el Pseudocódigo y el
Diagrama de flujo.
Es un lenguaje simplificado para describir un algoritmo
utilizando una mezcla de frases en lenguaje común, y
palabras claves que indican el inicio y el fin del algoritmo y
las instrucciones específicas a realizar.
Por ejemplo, el siguiente pseudocódigo
corresponde al algoritmo para calcular el área del
rectángulo: el algoritmo calcula el área (a) de un
rectángulo cualquiera, si se le suministra la longitud de
de la base (b) y la longitud de la altura (h).
Las palabras subrayadas se llaman palabras reservadas,
se deben utilizar sangrías que facilitan la lectura del
algoritmo Las instrucciones en pseudocódigo son
fáciles de codificar en un lenguaje de
programación.
El diagrama de flujo es la representación
gráfica de un algoritmo; para ello se utiliza un conjunto
de símbolos estándares mundialmente utilizados y
desarrollados por organizaciones tales como ANSI (American
National Institute) e ISO (International Standard Organization
para la elaboración de diagramas de flujo;
En el diagrama cada símbolo representa una
acción en concreto; y cada instrucción del
algoritmo se visualiza dentro del símbolo adecuado. Los
símbolos se conectan con flechas para indicar el orden en
que se ejecutan las instrucciones.
Por ejemplo, el siguiente diagrama de flujo corresponde
al algoritmo para calcular el área del
rectángulo
El ovalo rotulado con la palabra Inicio indica el
comienzo del algoritmo, el paralelogramo es el símbolo de
entrada de datos e indica que se lee el valor de la base (b) y el
valor de la altura (h), el rectángulo es el símbolo
de proceso e indica que se realiza un proceso sobre los datos de
entrada para calcular el área (a) multiplicando la base
por la altura, (utilizaremos el * como operador de
multiplicación), el siguiente es el símbolo de
salida y representa un documento e indica que se muestra el valor
del área obtenido, en cualquier dispositivo de salida,
finalmente el ovalo rotulado con la palabra Fin indica que se ha
llegado al fin del algoritmo.
Los símbolos que se utilizaran para dibujar los
diagramas de flujo son los siguientes:
Reglas para la construcción de diagramas de
flujo
-
1. Todo diagrama de flujo debe tener un inicio
y un fin.
-
2. Las líneas de flujo nunca deben
cruzarse, para evitarlo deben utilizarse el símbolo
conector.
-
3. Las líneas de flujo deben terminar
siempre en un símbolo.
-
4. No puede llegar más de una
línea de flujo a un símbolo.
-
5. Todos los símbolos en un diagrama
deben estar conectados mediante una línea de flujo;
todo símbolo debe tener una línea de flujo
entrando y otra saliendo salvo el símbolo que indica
inicio o fin del diagrama.
-
6. Como regla general el flujo del proceso debe
mostrarse de izquierda a derecha y de arriba
abajo.
Se recomienda mantener uniforme el tamaño de los
símbolos, por lo que el texto que se escribe dentro no
debe ser muy extenso, recuérdese que el propio
símbolo indica la operación a realizar. La forma en
que se capturan los datos de entrada o se muestran los datos de
salida se detallarán al codificar el algoritmo en el
lenguaje de programación. Esto mismo se recomienda para la
representación del algoritmo en
pseudocódigo.
Diseño del algoritmo.
Se debe representar la alternativa de solución
seleccionada mediante un algoritmo, el cual puede desarrollarse
utilizando el pseudocódigo o el diagrama de flujo a
preferencia del programador; luego se verifica si el algoritmo
cumple con las características de un algoritmo. Esta
verificación se conoce como prueba de
escritorio.
Leer más:
http://www.monografias.com/trabajos94/diseno-algoritmos-programacion-computadoras/diseno-algoritmos-programacion-computadoras.shtml#ixzz3jU2jLXIc
IMPLEMENTACIÓN DE ALGORITMOS
La implementación es el proceso que toma la especificación del algoritmo y la traduce
a una forma que pueda aplicarse a la solución del problema para el cual fue diseñado.
La implementación puede tomar formas muy diversas: podría significar la construcción
de un circuito eléctrico o de un dispositivo mecánico que cumpla con las condiciones
especificadas. Pero restrinjamos la definición al campo de la informática:
en este sentido, implementar significa traducir el algoritmo a un lenguaje que pueda
ser interpretado por un motor de ejecución.
Para el análisis y estudio de los algoritmos usualmente se utiliza una forma abstracta
de implementación, la cual no utiliza un lenguaje de programación específico, sino
que emplea formas de representar el algoritmo que luego pueden ser directamente
traducidas a un lenguaje en particular. Algunas de estas formas son los diagramas
de flujo, los diagramas de bloques y el seudo código. Este último es “casi”
un lenguaje imperativo, con la salvedad de que no toma en cuenta los tipos de datos
y, además, sus instrucciones pueden estar en idioma español o en cualquier otro,
ya que no serán interpretadas por ninguna computadora.
Un sencillo ejemplo de la implementación en seudo código de nuestro algoritmo
BuscarMaximo sería la siguiente:
Función BuscarMaximo(lista)
Mayor = lista(1)
Contador = 2
Mientras Contador ? longitud(lista) hacer
Si lista(Contador) > Mayor entonces
Mayor = lista(Contador)
Fin Si
Contador = Contador + 1
Fin Mientras
Devolver Mayor
Fin Función
Eficiencia de los algoritmos
La especificación de un algoritmo puede incluir consideraciones sobre su eficiencia,
dado que una implementación incorrecta puede hacer que demore en ejecutarse
mucho más tiempo de lo aceptable. Para ello se utilizan notaciones que expresan la
complejidad de los algoritmos en función del volumen de datos a procesar (ver el
Capítulo 4 para mayor información). Una de estas notaciones es la denominada “la
gran O”, que indica la cantidad de veces que el algoritmo debe repetir su bloque
principal de instrucciones para hacer su trabajo.
El ciclo principal del algoritmo BuscarMaximo –explicado en la página 20– recorre
una vez toda la lista de n elementos para determinar cuál es el mayor. Su bloque
principal (el delimitado entre Mientras y Fin Mientras) se repite tantas veces como
elementos haya en la lista. Por lo tanto, se dice que su complejidad es O(n) o que
tiene complejidad lineal, ya que el tiempo que demora en ejecutarse el algoritmo
aumentará proporcionalmente a la cantidad de elementos que tenga la lista.
http://www.ventics.com/implementacion-de-algoritmos/
Diagrama de flujo
El diagrama de flujo o diagrama de actividades es la representación gráfica del algoritmo o proceso. Se utiliza en disciplinas como programación, economía, procesos industriales y psicología cognitiva.
https://es.wikipedia.org/wiki/Diagrama_de_flujo
Qué es un Diagrama de Flujo – Gestión de Procesos
Un diagrama de flujo
es una representación gráfica de un proceso. Cada paso del proceso es
representado por un símbolo diferente que contiene una breve descripción
de la etapa de proceso. Los símbolos gráficos del flujo del proceso
están unidos entre sí con flechas que indican la dirección de flujo del
proceso.
El diagrama de flujo ofrece
una descripción visual de las actividades implicadas en un proceso
mostrando la relación secuencial ente ellas, facilitando la rápida
comprensión de cada actividad y su relación con las demás, el flujo de
la información y los materiales, las ramas en el proceso, la existencia
de bucles repetitivos, el número de pasos del proceso, las operaciones
de interdepartamentales… Facilita también la selección de indicadores de
proceso
Beneficios del Diagrama de Flujo
- En
primer lugar, facilita la obtención de una visión transparente del
proceso, mejorando su comprensión. El conjunto de actividades,
relaciones e incidencias de un proceso no es fácilmente discernible a
priori. La diagramación hace posible aprehender ese conjunto e ir más
allá, centrándose en aspectos específicos del mismo, apreciando las
interrelaciones que forman parte del proceso así como las que se dan con
otros procesos y subprocesos.
- Permiten
definir los límites de un proceso. A veces estos límites no son tan
evidentes, no estando definidos los distintos proveedores y clientes
(internos y externos) involucrados.
- El
diagrama de flujo facilita la identificación de los clientes, es más
sencillo determinar sus necesidades y ajustar el proceso hacia la
satisfacción de sus necesidades y expectativas.
- Estimula el pensamiento analítico en el momento de estudiar un proceso, haciendo más factible generar alternativas útiles.
- Proporciona
un método de comunicación más eficaz, al introducir un lenguaje común,
si bien es cierto que para ello se hace preciso la capacitación de
aquellas personas que entrarán en contacto con la diagramación.
- Un diagrama de flujo ayuda a establecer el valor agregado de cada una de las actividades que componen el proceso.
- Igualmente,
constituye una excelente referencia para establecer mecanismos de
control y medición de los procesos, así como de los objetivos concretos
para las distintas operaciones llevadas a cabo.
- Facilita el estudio y aplicación de acciones que redunden en la mejora de las variables tiempo y costes de actividad e incidir, por consiguiente, en la mejora de la eficacia y la eficiencia.
- Constituye el punto de comienzo indispensable para acciones de mejora o reingeniería.
Las
actividades de análisis y diagramación de procesos ayudan a la
organización a comprender cómo se están desarrollando sus procesos y
actividades, al tiempo que constituyen el primer paso para mejorar las
prácticas organizacionales.
Diagramar es establecer una
representación visual de los procesos y subprocesos, lo que permite
obtener una información preliminar sobre la amplitud de los mismos, sus
tiempos y los de sus actividades.
http://www.aiteco.com/que-es-un-diagrama-de-flujo/