sábado, 25 de febrero de 2017

1.2 Algoritmo

Definiciones por algunos autores:

Podemos encontrar muchas definiciones completas o formales de algoritmo en los textos de algorítmica y programación, todas ellas muy similares:

Secuencia finita de instrucciones, reglas o pasos que describen de forma precisa las operaciones que un ordenador debe realizar para llevar a cabo un tarea en un tiempo mas finito.
[Donald E. Knuth, 1968]

Descripción de un esquema de comportamiento expresado mediante un repertorio finito de acciones y de informaciones elementales, identificadas, bien comprendidas y realizables a priori. Este repertorio se denomina léxico
[Pierre Scholl, 1988].

Un algoritmo es un conjunto finito de pasos definidos, estructurados en el tiempo y formulados con base a un conjunto finito de reglas no ambiguas, que proveen un procedimiento para dar la solución o indicar la falta de esta a un problema en un tiempo determinado.
[Rodolfo Quispe-Otazu, 2004].



Pasos para resolver un algoritmo.

A continuación te muestro 10 pasos o consejos útiles para la resolución de cualquier algoritmo:

  1. Definir el problema.
  2. Analizar el problema.
  3. Diseñar el algoritmo.
  4. Definir la codificación.
  5. Utilización de lenguaje práctico.
  6. Elaboración de algoritmo.
  7. Prueba y depuración.
  8. Documentación.
  9. Mantenimiento.
  10. Actualización e implementación de nuevos conceptos.


1. Definir el Problema:Damos el enunciado del problema, el cual requiere una definición clara y precisa, en otras palabras definimos que pretendemos solucionar, un pequeño ejemplo:

                 ¿Cual es el área del terreno de mi casa?.

2. Analizar el Problema: Debemos comprender lo que se desea desarrollar para luego aplicar alguna posible solución a problema dado, para esto debemos tener en cuenta con que datos de entrada contamos, los métodos con sus respectivas fórmulas que necesitamos para procesar los datos y cuál es la información que deseamos producir (datos de salida), ejemplo:

      Datos de entrada: Largo, Ancho.
      Método: Para este algoritmo realizaremos la medición del Largo por el Ancho       del terreno para luego hacer una operación aritmética de multiplicación.
      Datos de salida: Área del terreno.

3. Diseñar el Algoritmo: En esta nos adentramos en el diseño de los pasos a seguir secuencialmente para alcanzar nuestro objetivo proyectado, adicionalmente podemos aplicar algunas características para desarrollar un buen algoritmo, estos son:

      Tener un punto particular de inicio, ejemplo: Encontrar el Área del terreno       de mi casa.
      Definir bien su estructura la cual no debe permitir dobles                       interpretaciones, ejemplo: Medir el Ancho y el Largo del terreno para             encontrar el Área.
      Debe ser general, es decir, soportar la mayoría de las variantes que se           puedan presentar en la definición del problema, ejemplo: Si los datos             ingresados al realizar la medición no son numéricos entonces volveremos a         revisar los datos registrados.
      Debe ser finito en tamaño y tiempo de ejecución, ejemplo: Al realizar la         operación aritmética con los datos correctamente capturados el resultado         debe ser un numero entero que nos informara el Área de nuestro terreno en         tiempo récord.

4. Definir la Codificación: Es la acción de escribir la solución del problema de acuerdo a la lógica, en esta podemos usar un diagrama de flujo o un pseudocódigo en una serie de instrucciones detalladas.

5. Utilización de lenguaje preciso: En este paso debemos de acertar verazmente en la solución de un problema dado con nuestro algoritmo, utilizando un lenguaje que nos brinde eficiencia y eficacia en su tratamiento como es el uso del Pseudocódigo para la representación clara, precisa y muy económica en la solución al dilema expuesto.

6. Elaboración del algoritmo: En este paso debemos tener ya muy claro nuestra finalidad, los procesos que ya hemos estudiado, lo que pretendemos alcanzar y por fin hacer que nuestro problema ya esté resuelto. Este lo vamos a plasmar en un medio ya sea escrito o gráfico, los cuales nos permitirán ver los resultados después de haber ingresado nuestros datos, haberlos procesado cabalmente sin errores y posteriormente haber resuelto lo que inicialmente habíamos proyectado resolver.

7. Prueba y Depuración: Los errores humanos dentro de la programación y análisis de algoritmos son muchos y aumentan considerablemente con la complejidad del problema. El proceso para identificar y eliminar errores, dando paso a una solución sin errores se le llama depuración. La depuración o prueba resulta una tarea tan creativa como el mismo desarrollo de la solución, por ello se debe considerar con el mismo interés y entusiasmo.

8. Documentación: Es nuestra guía o comunicación escrita es sus variadas formas, ya sea en enunciados, procedimientos, dibujos o diagramas. A menudo un programa escrito por una persona en pseudocódigo, es usado por otra. Por esto la documentación nos sirve para ayudar a comprender o usar un programa o para facilitar futuras modificaciones (mantenimiento). La documentación se divide en tres partes:


  • Documentación Interna: Son los comentarios o mensaje que se añaden al código fuente para hacer mas claro el entendimiento de un proceso.
  • Documentación Externa: Se define en un documento escrito los siguientes puntos:


  1. Descripción del Problema
  2. Nombre del Autor
  3. Algoritmo (diagrama de flujo o pseudocódigo)
  4. Diccionario de Datos
  5. Código Fuente (programa)


  • Manual del Usuario: Describe paso a paso la manera cómo funciona el programa, con el fin de que el usuario obtenga el resultado deseado.

9. Mantenimiento: Lo llevamos a cabo después de haber terminado el algoritmo o programa, detectando si es necesario hacer algún cambio, ajuste o complementación a este para que siga trabajando de manera correcta. Para poder realizar este trabajo se requiere que nuestro algoritmo este correctamente documentado.

10. Actualización e implementación de nuevos conceptos: Referente a los cambios teóricos constantes que se presentan a diario y que nos retan de nuevo a que planteemos una nueva forma de analizar el contexto  en que resolvemos problemas utilizando herramientas de solución algorítmicas, esto siempre y cuando sea concebido en el individuo de una manera autónoma, responsable y compartidora.

No hay comentarios:

Publicar un comentario