Una vez establecidos los requerimientos de un programa, iniciamos la fase de diseño. Esta etapa debe buscar la solución informática al problema planteado. Dicha solución determinará cómo se va a resolver el problema.
La fase de resolución del problema incluirá:
Hasta hace algún tiempo la verificación del algoritmo se hacía manualmente, paso a paso, popularmente se le llamaba correr el programa a pie. Actualmente existen herramientas informáticas para verificar el algoritmo escrito en pseudocódigo o en diagrama, por ejemplo, la aplicación PSeInt.
No suele ser fácil encontrar una solución óptima, la programación es una tarea difícil y también es un proceso creativo. Para encontrar dicha solución, el desarrollador puede hacer uso del diseño modular.
Análisis del problema
Si vamos a diseñar un algoritmo para resolver un determinado problema, es fundamental tener completamente estudiado y analizado dicho problema. Ello implica:
El análisis anterior es fundamental para poder establecer una estrategia de solución que sirva como base para el desarrollo del algoritmo.
Ejemplo
Escribir el algoritmo que permita calcular el área de un triángulo.
El problema como tal no está bien definido ya que no están definidas las entradas y salidas del mismo.
Especificaciones de entrada
Especificaciones de salida
Diseño del algoritmo
Dado un problema a resolver, debemos buscar la forma de dividirlo en otros subproblemas más pequeños (este método es conocido como "divide y vencerás"). Cada uno de ellos puede trabajarse de manera aislada; por lo tanto, la complejidad global del problema disminuirá considerablemente. Del mismo modo, si los subproblemas obtenidos siguen siendo demasiado complicados, también puede ser conveniente fragmentarlos. Y así sucesivamente, hasta llegar a subproblemas realmente sencillos.
En el caso del problema anterior requerimos definir tres subproblemas:
1. Entrada de datos
2. Cálculo del área
3. Salida de resultados
Solución:
Problema principal: Calcular el área de un triángulo rectángulo
Subproblemas
Entrada de datos: Para calcular el área de un triángulo rectángulo requerimos las longitudes de sus dos catetos a los que llamaremos base y altura.
Procesamiento: Cálculo aritmético Área = (base x altura)/2
Salida de datos: Se imprime cadena y valores de base, altura y área.
Se llama algoritmo a un grupo finito de pasos organizados de manera lógica y ordenada que permite solucionar un determinado problema.
Para que un algoritmo sea eficaz debe cumplir las siguientes características:
Teorema de la programación estructurada
Cualquier algoritmo puede resolverse mediante el uso de tres estructuras básicas llamadas estructuras de control:
Volviendo al ejemplo inicial: Calcular el área de un triángulo rectángulo, tenemos que los pasos del algoritmo son:
1. Inicio
2. Leer la base y altura
3. Calcular el área = (base x altura)/2
4. Mostrar el resultado: área
5. Fin
Una vez escrito un algoritmo es necesario verificar que el mismo cumple y produce el resultado esperado.
Para ello podemos recurrir a la ejecución paso a paso del mismo para comprobar que se cumple con el objetivo inicial.