ttps://es.slideshare.net/gisseparrav/pasos-para-la-solucin-de-un-problema-porcomputador
Cuando iniciamos a resolver problemas en programación, cometemos generalmente el error de pasar directamente al computador y empezar a escribir el código sin antes haber analizado en lo más mínimo el problema, o bueno lo vamos analizando y directamente vamos escribiendo el código y pues en algunos casos esta práctica funciona, claro está, cuando los problemas son sencillos o cuando eres un programador experimentado, no así con problemas más complejos y más aún cuando estas empezando a programar.
En esta etapa se debe definir y tener claro lo que el programa tiene que hacer junto con las tareas que debe realizar para llevar a cabo la solución, qué datos necesito para realizar la tareas, que formato deben tener los datos de entrada, de donde provienen los datos de entrada, como se obtienen esos datos, cómo interactúan los datos entre sí para obtener el resultado, muy importante tener claro cuál será el resultado que se desea obtener, tampoco dejar de lado las restricciones que puede 2 haber al momento de procesar los datos. Básicamente en este punto o fase se debe recoger todos los requerimientos y especificaciones del problema.
Una vez que tenemos claro el problema, después de haber definido todas las entradas y salidas que va tener el programa, también las tareas a realizar, es hora de diseñar el algoritmo y que irá de acuerdo a todas las especificaciones anteriores y posteriormente será implementado en un lenguaje de programación para ser ejecutado por la computadora.
El algoritmo se lo puede hacer de cualquier forma: Pseudocódigo o Diagrama de Flujo, la idea principal es que sea entendible, y no solo por el que lo diseñó si no por cualquier persona. Algo importante de este diseño es que sea entendible para el programador que lo va implementar
Consiste en dar valores a las variables que hemos definido y que siguen el flujo del programa para comprobar si al final el resultado es el acertado. O hacer un seguimiento manual (utilizando papel y lápiz) de los pasos a seguir que se definieron en el seudocódigo o diagrama de flujo.
Esta prueba es para no perder tiempo escribiendo el programa y luego tener que buscar EN DONDE está el error y como debemos corregirlo. También sirve para optimizar un algoritmo viendo cómo podemos llegar a un determinado resultado con menos pasos.
IMPORTANTE: Casi siempre pasa que NUNCA el programa va a funcionar correctamente la primera vez. SIEMPRE deberemos hacerle ajustes y correcciones. Y eso es parte de la garantía que damos cuando diseñamos un Sistema a medida.
Esta etapa consiste en transcribir o adaptar el algoritmo a un lenguaje de programación, se tendrá que adaptar todos los pasos diseñados en el algoritmo con sentencias y sintaxis propias del lenguaje.
Verificar errores, organizar el código y comentarlo, son buenas prácticas que hacen programas más legibles y facilitan la depuración.
Previamente a la codificación se debe haber definido el programa a utilizar (c,c++, java, Python), tener configurado el entorno de trabajo: IDEs, librerías.
La fase de compilación permitirá detectar errores en tiempo de compilación, ejecución y lógicos, y en el caso de Java se generará uno o varios archivos bytecode que serán ejecutados por la computadora.
En esta fase también es necesario realizar pruebas con una gran cantidad de datos para encontrar posibles errores y corregirlos.
Por último se debe tener una documentación de todos los pasos hasta llegar a la solución del problema, a veces es un poco tedioso esta fase pero también es muy importante ya que muchas veces suceden modificaciones con el pasar del tiempo y estas se hace en algunos casos por otros programadores diferentes a los que lo crearon, y cuando un programa es pobre en documentación este proceso de modificación es totalmente complejo.
También se puede decir que es la 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
Video:
https://www.youtube.com/watch?v=QOy8Ya249AI
Es un conjunto de pasos, procedimientos o acciones que nos permiten alcanzar un resultado o resolver un problema.
Características de los algoritmos.
– Un algoritmo debe ser Preciso e indicar el orden de realización de cada paso.
– Un algoritmo debe ser Definido, es decir, si se sigue un algoritmo dos veces, se debe obtener el mismo resultado.
– Un algoritmo debe ser Finito, es decir, si se sigue el algoritmo se debe terminar el algún momento.
Además debe cumplir con:
Una secuencia de instrucciones claras y finitas
Debe ser correcto y debe resolver el problema planteado en todas sus facetas
Debe ser legible.
Para representar un algoritmo se debe utilizar algún método que permita independizar dicho algoritmo del lenguaje de programación elegido. Ello permitirá que un algoritmo pueda ser codificado indistintamente en cualquier lenguaje. Para conseguir este objetivo se precisa que el algoritmo sea representado gráfica o numéricamente, de modo que las sucesivas acciones no dependan de la sintaxis de ningún lenguaje de programación, sino que la descripción pueda servir fácilmente para su transformación en un programa, es decir, su codificación.
Los métodos usuales para representar un algoritmo son:
PSeudocódigo
Diagrama N-S
Diagramas de FLUJO
Es una herramienta de programación en la que las instrucciones se escriben en palabras similares al inglés o español, que facilitan tanto la escritura como la lectura de programas. En esencia, el pseudocódigo se puede definir como un lenguaje de especificaciones de algoritmos
Algunas palabras utilizadas en el pseudocódigo:
– Inicio
– Fin
– Leer
– Escribir
– Asignar (x ← y+z).
Un diagrama de flujo (flowchart) es una de las técnicas de representación de algoritmo más antigua y a la vez más utilizada, aunque su empleo ha disminuido considerablemente, sobre todo desde la aparición de lenguajes de programación estructurados. Un diagrama de flujo es un diagrama que utiliza los símbolos (cajas) estándar que tiene los pasos del algoritmo escritos en esas cajas unidas por flechas , denominadas líneas de flujo, que indican la secuencia en que se deben ejecutar
1. Los Diagramas de flujo deben escribirse de arriba hacia abajo, y/o de izquierda a derecha.
2. Los símbolos se unen con líneas, las cuales tienen en la punta una flecha que indica la dirección que fluye la información procesos, se deben de utilizar solamente líneas de flujo horizontal o verticales (nunca diagonales).
3. Se debe evitar el cruce de líneas, para lo cual se quisiera separar el flujo del diagrama a un sitio distinto, se pudiera realizar utilizando los conectores. Se debe tener en cuenta que solo se van a utilizar conectores cuando sea estrictamente necesario.
4. No deben quedar líneas de flujo sin conectar
5. Todo texto escrito dentro de un símbolo debe ser legible, preciso, evitando el uso de muchas palabras.
6. Todos los símbolos pueden tener más de una línea de entrada, a excepción del símbolo final.
7. Solo los símbolos de decisión pueden y deben tener más de una línea de flujo de salida.