El desarrollo de algoritmos es un tema fundamental en el diseño de programas por lo cual se debe tener buenas bases para poder desarrollar de manera fácil y rápida un programa. Por medio de la computadora es posible diseñar soluciones de problemas específicos, a la medida, más aun, si estos problemas involucran operaciones matemáticas complejas y/o repetitivas, o requieren del manejo de un volumen grande de datos. El diseño de soluciones, requiere una metodología que permita de forma gradual llegar a dar solución a un problema, a las cuales se les conoce como programas y no son más que una serie de operaciones que realiza la computadora para llegar a un resultado, con un grupo de datos específicos. Lo anterior nos lleva al razonamiento de que un programa nos sirve para solucionar un problema específico. Para poder realizar programas, además de conocer la metodología mencionada, también debemos de conocer, de manera específica las funciones que puede realizar la computadora y las formas en que se pueden manejar los elementos que hay en la misma.

Conceptos Generales

Computadora: Es un dispositivo electrónico utilizado para procesar información y obtener resultados. Los datos y la información se pueden introducir en la computadora como entrada (input) y a continuación se procesan para producir una salida (output).

 

  
Programa: Es el conjunto de instrucciones escritas de algún lenguaje de programación y que ejecutadas secuencialmente resuelven un problema especifico.



  
Dispositivos de Entrada: Como su nombre lo indica, sirven para introducir datos (información) en la computadora para su proceso.  Los datos se leen de los dispositivos de entrada y se almacenan en la memoria central o interna. Ejemplo: teclado, mouse.

Dispositivos de Salida: Regresan los datos procesados que sirven de información al usuario. Ejemplo: monitor, impresora.

Unidad de Control: Coordina las actividades de la computadora y determina que operaciones se deben realizar y en que orden; así mismo controla todo el proceso de la computadora.

Unidad Aritmético – Lógica: Realiza operaciones aritméticas y lógicas, tales como suma, resta, multiplicación, división y comparaciones.

Memoria: El CPU utiliza la memoria de la computadora para guardar información mientras trabaja con ella; mientras esta información permanezca en memoria, la computadora puede tener acceso a ella en forma directa. Esta memoria construida internamente se llama memoria de acceso aleatorio (RAM).

Lenguaje: Es una serie de símbolos que sirven para transmitir uno o mas mensajes (ideas) entre dos entidades diferentes. A la transmisión de mensajes se le conoce comúnmente como comunicación.

Lenguajes de Programación: Es un conjunto de símbolos, caracteres y reglas que le permiten a las personas comunicarse con la computadora. Los lenguajes de programación tienen un conjunto de instrucciones que nos permiten realizar operaciones de entrada/salida, calculo, manipulación de textos, lógica/comparación y almacenamiento/recuperación.

Algoritmo: serie de pasos organizados que describen el proceso que se debe seguir, para dar solución a un problema específico. Los algoritmos se clasifican en cualitativos (describen los pasos utilizando palabras) y cuantitativos (utilizan cálculos numéricos para definir los pasos del proceso).

Clasificación de los Lenguajes de Programación

Lenguaje Maquina: Son aquellos cuyas instrucciones son directamente entendibles por la computadora y no necesitan traducción posterior para que el CPU pueda comprender y ejecutar el programa. Las instrucciones en lenguaje maquinan se expresan en términos de la unidad de memoria mas pequeña el bit (dígito binario 0 o 1).

Lenguaje de Bajo Nivel (Ensamblador): En este lenguaje las instrucciones se escriben en códigos alfabéticos conocidos como mnemotécnicos para las operaciones y direcciones simbólicas.

Lenguaje de Alto Nivel: Los lenguajes de programación de alto nivel son aquellos en los que las instrucciones o sentencias a la computadora son escritas con palabras similares a los lenguajes humanos (en general en ingles), lo que facilita la escritura y comprensión del programa.

Metodología para la solución de problemas por medio de computadora

1. Definición del Problema

Esta fase está dada por el enunciado del problema, el cual requiere una definición clara y precisa. Es importante que se conozca lo que se desea que la computadora realice.

2. Análisis del Problema

Una vez que se ha comprendido lo que se desea de la computadora, es necesario definir:

    • Los datos de entrada.
    • Los datos de salida (es lo que se desea obtener como resultado de solucionar el problema).
    • Los métodos y fórmulas que se necesitan para procesar los datos.

3. Diseño del Algoritmo

Todo algoritmo debe tener un inicio, debe ser definido, no debe permitir dobles interpretaciones. Debe ser general, es decir, soportar la mayoría de las variantes que se puedan presentar en la definición del problema. Debe ser finito en tamaño y tiempo de ejecución.

4. Codificación

La codificación es la operación de escribir la solución del problema (de acuerdo a la lógica del diagrama de flujo o seudocódigo), en una serie de instrucciones detalladas, en un código reconocible por la computadora, la serie de instrucciones detalladas se le conoce como código fuente, el cual se escribe en un lenguaje de programación o lenguaje de alto nivel.

5. Pruebas y Depuración

Es el proceso de identificar y eliminar errores (de sintaxis, ejecución y lógica).

6. Documentación

Es la guía o comunicación escrita en sus variadas formas, ya sea en enunciados, procedimientos, dibujos o diagramas. A menudo un programa escrito por una persona, es usado por otra. Por ello la documentación sirve para ayudar a comprender o usar un programa o para facilitar futuras modificaciones (mantenimiento). La documentación que no debe faltar en un programa con los comentarios.

7. Mantenimiento

Se lleva a cabo después de terminado el programa, cuando se detecta que es necesario hacer algún cambio, ajuste o complementación al programa para que siga trabajando de manera correcta. Para poder realizar este trabajo se requiere que el programa este correctamente documentado.