Programa, algoritmo, lenguaje

De acuerdo con la naturaleza del funcionamiento de las computadoras, se dice que estas siempre ejecutan órdenes en un formato que les resulta inteligible; dichas órdenes se agrupan en programas, conocidos como software, el cual, para su estudio, a su vez, se divide en dos partes: el formato de representación interno de los programas, que constituye el lenguaje máquina o código ejecutable, y el formato de presentación externa, que es un archivo o un conjunto de archivos, que puede o no estar en un formato que puede ser visto/leído por el usuario (es decir, en un formato que respeta las reglas).

Para ejecutar lo que el usuario desea hacer en su computadora, o bien para resolver un problema específico, este pre-cisa buscar un software que realice o ejecute con exactitud la tarea que se ha planteado o elaborar y desarrollar (escribir) un programa que la realice. El trabajo de elaboración de un programa se denomina “programación”. Pero la programación no es solo el trabajo de escritura del código, sino todo un conjunto de tareas que se deben cumplir, a fin de que el código que se escribió resulte correcto y robusto, y cumpla con el objetivo o los objetivos para los que fue creado.

Algoritmo

Un algoritmo constituye una lista bien definida, ordenada y finita de operaciones, que permite encontrar la solución a un problema determinado. Dado un estado inicial y una entrada, es a través de pasos sucesivos y bien definidos que se llega a un estado final, en el que se obtiene una solución (si hay varias) o la solución (si es única).

Ejemplo
Problema: Gestionar la lista de compras que una empresa realiza durante un mes.

Solución 

Para resolver este problema de gestión muy general, se cuenta con las herramientas que se utilizan en otros problemas que ya tienen una resolución en la empresa (por ejemplo, un programa en Java con los datos en una base de datos). Así, para la solución del problema planteado, se proponen dos opciones:

Usar la base de datos de trabajo para guardar, también en esta, la lista de productos que se requiere comprar.

Guardar una lista en entradas que se actualiza cada vez que se captura o se incluye un nuevo producto que la empresa necesita, y que se borra o elimina al momento que el producto ya está abastecido, y en salidas, cada vez que algún empleado necesite una impresión de dicha lista.

Un algoritmo puede ser expresado en:

Lenguaje natural (a veces, este no resulta muy claro, pero es muy útil para problemas simples)
Pseudocódigo
Diagramas de flujo
Programas

Análisis y comprensión de un problema

En el ejemplo que se presentó acerca de la necesidad de una empresa de gestionar la lista de compras que efectúa durante un mes, se realizó, de forma informal y muy esquemática, la presentación de un problema que ocurre comúnmente, y se indicó, de forma muy literal, cómo se puede resolver, aunque sin bastantes detalles. No obstante, también es claro que para la resolución de este problema debemos saber cómo insertar, borrar u ordenar los elementos de una lista. Así, para cada aspecto del problema se debe buscar un algoritmo que lo resuelva; por ejemplo, un algoritmo de inserción, otro para borrar de la lista un elemento y, si la lista no está explícita en la memoria de la computadora, un algoritmo para ordenar los elementos en una forma deseada.

Las etapas de desarrollo de un algoritmo, con base en la lógica, son las siguientes:

1. Definición. En esta etapa se especifica el propósito del algoritmo y se ofrece una definición clara del problema por resolver. Además, aquí también se establece lo que se pretende lograr con su solución.

2. Análisis. En este punto se analiza el problema y sus características, y se determinan las entradas y salidas del problema. De igual modo, también se realiza una investigación sobre si ya se conoce alguna o varias soluciones de este. En el caso de que ya se conozcan varias soluciones, entonces se determina cuál es la más conveniente para el problema que estamos tratando. Si no se conoce ninguna, o no nos satisfacen las soluciones existentes, se propone una nueva.

3. Diseño. Aquí es donde se plasma la solución del problema. Con ese fin, se emplea una herramienta de diseño, que consiste en el diagrama de flujo y el pseudocódigo.

4. Implementación. En este último paso es donde se realiza o se ve concretado el programa y, por ende, se hacen varias pruebas.


Comentarios

Entradas populares