martes, 25 de octubre de 2016

4.-Diseño de un algoritmo

Diseño descendente o Top-Down:

También conocida como de arriba-abajo (diseño descendente) y consiste en establecer una serie de niveles de mayor a menor complejidad (arriba-abajo).  Consiste en efectuar una relación entre las etapas de la estructuración de forma que una etapa jerárquica y su inmediato inferior se relacionen mediante entradas y salidas de información. Este diseño consiste en una serie de descomposiciones sucesivas del problema inicial, que recibe el refinamiento progresivo del repertorio de instrucciones que van a formar parte del programa. La utilización de la técnica de diseño Top-Down tiene los siguientes objetivos básicos: Simplificación del problema y de los subprogramas de cada descomposición. Las diferentes partes del problema pueden ser programadas de modo independiente e incluso por diferentes personas. 
El programa final queda estructurado en forma de bloque o módulos lo que hace mas sencilla su lectura y mantenimiento. 

Ejemplo:
Queremos saber como se estructura nuestro planeta con el metodo Top-Down




En este ejemplo podemos apreciar la forma en que desciende desde el punto mas amplio del problema y poco a poco descomponiéndose en pequeñas partes haciendo mas entendible el caso.




Divide y venceras
Divide y Vencerás es una técnica de diseño de algoritmos que consiste en resolver un problema a partir de la solución de subproblemas del mismo tipo, pero de menor tamaño. Si los subproblemas son todavía relativamente grandes se aplicará de nuevo esta técnica hasta alcanzar subproblemas lo suficientemente pequeños para ser solucionados directamente. Ello naturalmente sugiere el uso de la recursión en las implementaciones de estos algoritmos
La primera linea se desprende de un top-dawn en una cadena de subproblemas :


REFINAMIENTO POR PASOS:

El diseño de un algoritmo no se hace de una sola vez, sino que se va resolviendo en una secuencia de pasos (llamados pasos de refinamiento).
En cada paso el problema es refinado agregando detalles significativos, por lo que el método se conoce como: método de los refinamientos sucesivos.
Como es natural, dependiendo de la complejidad del problema se necesitaran diferentes y sucesivos niveles de refinamiento antes de que pueda obtenerse un algoritmo con suficiente nivel de detalle. 


Ejemplo: El problema del cálculo de la circunferencia y superficie de un círculo se puede descomponer en sub problemas más simples: leer datos de entrada, calcular superficie y longitud, y escribir resultados.



Herramientas de representación:

DIAGRAMAS DE FLUJO:


Un diagrama de flujo utiliza símbolos estándar en el que  cada paso del algoritmo se visualiza dentro del símbolo  y en el orden en que estos pasos se ejecutan, se indica conectándolos con flechas llamadas líneas de flujo, ya que indican el flujo lógico del algoritmo.
Ejemplo:



PSEUDOCODIGO:


El pseudocódigo es una herramienta utilizada para el diseño de programas que permite al programador expresar sus pensamientos de una forma clara utilizando su lenguaje natural y mostrando el orden de ejecución de las sentencias del programa sin ninguna ambigüedad.




DIAGRAMAS N-S:

Son una herramienta que favorece la programación estructurada y reúne características gráficas propias de diagramas de flujo y lingüísticas propias de pseudocódigos. Constan de una serie de cajas contiguas que se leerán siempre de arriba-abajo y sus estructuras lógicas son las siguientes:




 Método Warnier: 

El método se basa en el empleo de llaves de distintos tamaños que se relacionan entre sí. La representación del algoritmo se basa en los siguientes puntos:

 • Un programa se representa por un solo diagrama en la cual se engloban todas las operaciones, estas operaciones están colocadas a la derecha de la llave y en la parte izquierda se encuentra el nombre.
 • En la parte superior de la llave principal se coloca inicio. 
• En la parte inferior de la llave principal se coloca fin.

Ejemplo:







Método Jackson:

Se trata de un método de representación de programa en forma de árbol denominado diagrama arborescente de Jackson, un diagrama de Jackson consta de: 
 • Definición detallada de los datos de entrada y salida incluyendo los archivos lógicos utilizados.
 • Representación del proceso o algoritmo. 

La simbología utilizada es la siguiente 








La lectura del árbol se realiza en preorden 


  •  Situarse en la raíz (R) 
  • Recorrer el subarbol izquierdo (I) 
  • Recorrer el subarbol derecho (D) 

Ejemplo:


Método Bertini:

Al igual que Jackson, la representación de programas es en forma de árbol denominado diagrama arborescente de Bertini. 
Un diagrama de Bertini consta de:
 • Definición detallada de los datos de entrada y salida.
 • Representación del proceso o algoritmo. 

Ejemplo:










Método Tabourier:

Se trata de un método de representación de programa en forma de árbol denominado diagrama arborescente de Tabourier, 
un diagrama de Tabourier consta de :
 • Definición detallada de los datos de entrada y salida incluyendo los archivos lógicos utilizados
. • Representación del proceso o algoritmo. 

Ejemplo:





1 comentario: