En programación, un algoritmo establece, de manera genérica e informal, la secuencia de pasos o acciones que resuelve un determinado problema. Los algoritmos constituyen la documetación principal que se necesita para poder iniciar la fase de codificación y, para representarlos, se utiliza, fundamentalmente, dos tipos de notación: pseudocódigo y diagramas de flujo. El diseño de un algoritmo es independiente del lenguaje que después se vaya a utilizar para codificarlo.
Un algoritmo escrito en pseudocódigo siempre se suele organizar en tres secciones: cabecera, declaraciones y cuerpo. En la sección de cabecera se escribe el nombre del algoritmo. En la sección de declaraciones se declaran algunos objetos (variables, constantes,...) que va a utilizar el programa. En el cuerpo están descritas todas las acciones que se tienen que llevar a cabo en el programa, y siempre se escriben entre las palabras inicio y fin.
Para que el mantenimiento de una aplicación informática sea lo más fácil posible, es conveniente disponer de toda su documentación, esto es, de todos los documentos que se han ido generando en todas las etapas anteriores: ERS, algoritmos, códigos fuentes, manuales de usuario, etc. A todo este tipo de documentación se le considera externa. Además, existe otro tipo de documentación llamada interna, los comentarios.
En el ciclo de vida de un programa, una vez que los algoritmos de una aplicación han sido diseñados, ya se puede iniciar la fase de codificación. En esta etapa se tienen que traducir dichos algoritmos a un lenguaje de programación específico; es decir, las acciones definidas en los algoritmos hay que convertirlas a instrucciones.
El pseudocódigo está pensado para facilitar a las personas el entendimiento de un algoritmo, y por lo tanto puede omitir detalles irrelevantes que son necesarios en una implementación. Programadores diferentes suelen utilizar convenciones distintas, que pueden estar basadas en la sintaxis de lenguajes de programación concretos. Sin embargo, el pseudocódigo, en general, es comprensible sin necesidad de conocer o utilizar un entorno de programación específico, y es a la vez suficientemente estructurado para que su implementación se pueda hacer directamente a partir de él.
Así el pseudodocódigo cumple con las funciones antes mencionadas para representar algo abstracto los protocolos son los lenguajes para la programación. Busque fuentes más precisas para tener mayor comprensión del tema.
En informática, el pseudocódigo es un lenguaje de programación algorítmico; es un lenguaje intermedio entre el lenguaje natural y cualquier lenguaje de programación específico, como son: C, FORTRAN, Pascal, etc. No existe una notación formal o estándar de pseudocódigo, sino que, cada programador puede utilizar la suya propia.
En el ciclo de vida de un programa, una vez que los requisitos de un programa han sido establecidos en la fase de análisis, ya se puede iniciar la fase de diseño. En esta etapa se tiene que encontrar una solución informática al problema planteado. Dicha solución determinará cómo se va a resolver el problema.
Un lenguaje de programación se puede definir como un lenguaje artificial que permite escribir las instrucciones de un programa informático.
Sistemas formales
La teoría de autómatas y la teoría de funciones recursivas proveen modelos matemáticos que formalizan el concepto de algoritmo. Los modelos más comunes son la máquina de Turing, máquina de registro y funciones μ-recursivas. Estos modelos son tan precisos como un lenguaje máquina, careciendo de expresiones coloquiales o ambigüedad, sin embargo se mantienen independientes de cualquier computadora y de cualquier implementación.
Implementación
Muchos algoritmos son ideados para implementarse en un programa. Sin embargo, los algoritmos pueden ser implementados en otros medios, como una red neuronal, un circuito eléctrico o un aparato mecánico y eléctrico. Algunos algoritmos inclusive se diseñan especialmente para implementarse usando lápiz y papel. El algoritmo de multiplicación tradicional, el algoritmo de Euclides, la criba de Eratóstenes y muchas formas de resolver la raíz cuadrada son sólo algunos ejemplos.
Metodología para la solución de problemas por medio de computadora
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 realice la computadora; mientras esto no se conozca del todo no tiene mucho caso continuar con la siguiente etapa.
ANÁLISIS DEL PROBLEMA
Una vez que se ha comprendido lo que se desea de la computadora, es necesario definir: Los datos de entrada. Cual es la información que se desea producir (salida) Los métodos y fórmulas que se necesitan para procesar los datos. Una recomendación muy práctica es el de colocarse en el lugar de la computadora y analizar qué es lo que se necesita que se ordene y en qué secuencia para producir los resultados esperados.
Debemos expresar el algoritmo con un lenguaje de programación adecuado
Ejecución y validación del programa por la computadora
Los algoritmos son independientes tanto del lenguaje de programación en que se expresan como de la computadora que los ejecutan.
En la ciencia de la computación y en la programación, los algoritmos son más importantes que los lenguajes de programación o las computadoras
Prueba de escritorio o Depuración
Se denomina prueba de escritorio a la comprobación que se hace de un algoritmo para saber si está bien hecho. Esta prueba consiste en tomar datos específicos como entrada y seguir la secuencia indicada en el algoritmo hasta obtener un resultado, el análisis de estos resultados indicará si el algoritmo está correcto o si por el contrario hay necesidad de corregirlo o hacerle ajustes.
Características de los algoritmos
Un Algoritmo debe de ser preciso e indicar el orden de realización de cada pasoUn algoritmo debe de estar definido.Si se sigue un algoritmo dos veces, se debe obtener el mismo resultado cada vez.
Un algoritmo debe de ser finito. Si se sigue un algoritmo, se debe terminar en algún momento, o sea tener un número finito de pasos
Partes de un Algoritmo
Entrada: Ingredientes y utensilios empleados
Desarrollo: Elaboración de la receta de cocina
Salida: Terminación del platillo
Ejemplo
Un cliente realiza un pedido a una fábrica. La fabrica examina en su banco de datos la ficha del cliente, si el cliente es solvente entonces la empresa acepta el pedido, en caso contrario, rechazará el pedido. Redacta el pedido correspondiente
Solución:
1.Inicio
2.Leer el pedido
3.Examinar la ficha del cliente
4.Si el cliente es solvente, acepta el pedido, en caso contrario, rechazar el pedido
5.Fin
Solución de problemas por Computadora
El proceso de solución de un problema con una computadora conduce a la escritura de un programa y a su ejecución en la misma
Existen una serie de fases comunes que generalmente deben seguir todos los programadores
Fases de Resolución
1.Análisis del problema
2.Diseño del Algoritmo
3.Codificación
4.Compilación y ejecución
5.Prueba
6.Depuración
7.Mantenimiento
8.Documentación
Análisis
El problema se analiza teniendo presente la especificación de los requisitos dados por el cliente de la empresa o por la persona que se encarga el programa
Diseño
Una vez analizado el problema, procedemos a diseñar una solución que conducirá a un algoritmo que resuelva el problema
Codificación (Implementación)
La solución se escribe en la sintaxis del lenguaje de alto nivel (por ejemplo C, C++, C#, Visual Basic, Java, etc.) y se obtiene un programa
Ejecución, Prueba y Depuración
El programa se ejecuta, se comprueba rigurosamente y se eliminan todos los errores que puedan aparecer
Mantenimiento
El programa se actualiza y modifica, cada vez que sea necesario, de modo que se cumplan todas las necesidades de cambio de los usuarios
Documentación
Escritura de las diferentes fases del ciclo de vida del software, esencialmente el análisis, diseño y codificación, unidos a manuales de usuario y de referencia así como normas para el mantenimiento