martes, 25 de octubre de 2016

1.- Resolución de problemas empleando computadoras

Resolución de problemas por computadoras
La principal razón para que las personas aprendan lenguajes de programación es utilizar un ordenador como una herramienta para la resolución de problemas. Tres fases pueden ser identificadas en el proceso de resolución :
 - Fase de Identificación (qué nos plantean)
 - Fase de resolución del problema
 - Fase de implementación (realización) en un lenguaje de programación
 Fase de resolución del problema:

Esta fase incluye, a su vez, el análisis del problema así como el diseño y posterior verificación del algoritmo. 
Definición del problema.- Es el enunciado del problema, el cual debe ser claro y completo. Es fundamental conocer y delimitar por completo el problema, saber que es lo que se desea que realice la computadora, mientras esto no se conozca del todo, no tiene caso continuar con el siguiente paso.

Análisis del problema .- El primer paso para encontrar la solución a un problema es el análisis del mismo. Se debe examinar cuidadosamente el problema a fin de obtener una idea clara sobre lo que se solicita y determinar los datos necesarios para conseguirlo. 

Diseño del algoritmo.- Un algoritmo puede ser definido como la secuencia ordenada de pasos, sin ambigüedades, que conducen a la resolución de un problema dado y expresado en lenguaje natural, por ejemplo el castellano, Todo algoritmo debe ser: 
  •  Preciso: Indicando el orden de realización de cada uno de los pasos. 
  • Definido: Si se sigue el algoritmo varias veces proporcionándole ( consistente ) los mismos datos, se deben obtener siempre los mismos resultados. 
  • Finito: Al seguir el algoritmo, este debe terminar en algún momento, es decir tener un número finito de pasos. 
Para diseñar un algoritmo se debe comenzar por identificar las tareas más importantes para resolver el problema y disponerlas en el orden en el que han de ser ejecutadas. Los pasos en esta primera descripción pueden requerir una revisión adicional antes de que podamos obtener un algoritmo claro, preciso y completo. 
Este método de diseño de algoritmos en etapas, yendo de los conceptos generales a los de detalle, se conoce como método descendente (top-down). 
En un algoritmo se deben de considerar tres partes:
  •  Entrada: Información dada al algoritmo. 
  • Proceso: Operaciones o cálculos necesarios para encontrar la solución del problema. 
  • Salida: Respuestas dadas por el algoritmo o resultados finales de los procesos realizados. Como ejemplo supongamos que desea desarrollar un algoritmo que calcule la superficie de un rectángulo proporcionándole su base y altura. Lo primero que debemos hacer es plantearnos las siguientes preguntas: 

¿Que datos son de entrada? 
¿Cuántos datos se introducirán? 
¿Cuántos son datos de entrada válidos?

 Especificaciones de salida:

¿Cuáles son los datos de salida? 
¿Cuántos datos de salida se producirán? 
¿Qué formato y precisión tendrán los resultados? 

El algoritmo que podemos utilizar es el siguiente: 

Paso 1. Entrada desde el teclado, de los datos de base y altura. 
Paso 2. Cálculo de la superficie, multiplicando la base por la altura. 
Paso 3. Salida por pantalla de base, altura y superficie calculada. 

El lenguaje algorítmico debe ser independiente de cualquier lenguaje de programación particular, pero fácilmente traducible a cada uno de ellos. Alcanzar estos objetivos conducirá al empleo de métodos normalizados para la representación de algoritmos, tales como los diagrama de flujo o pseudocódigo. 

Verificación de algoritmos.-  Una vez que se ha terminado de escribir un algoritmo es necesario comprobar que realiza las tareas para las que se ha diseñado y produce el resultado correcto y esperado. El modo más normal de comprobar un algoritmo es mediante su ejecución manual, usando datos significativos que abarquen todo el posible rango de valores y anotando en una hoja de papel las modificaciones que se den estos datos y en los del resto del algoritmo, en las diferentes fases hasta la obtención de los resultados. Este proceso se conoce como prueba del algoritmo.

Fase de implementación :

Una vez que el algoritmo está diseñado, representado mediante pseudocódigo y verificado se debe pasar a la fase de codificación o traducción del algoritmo a un determinado lenguaje de programación, que deberá ser completada con la ejecución y comprobación del programa en el ordenador
Codificación del algoritmo.- Codificar es escribir el algoritmo representado mediante una herramienta de programación en un lenguaje de programación 
Para realizar la conversión del algoritmo en programa se deben sustituir los símbolos utilizados por las correspondientes palabras reservadas del lenguaje, y las operaciones/instrucciones expresarlas en el lenguaje de programación correspondiente.

Compilación y ejecución del programa.-Una vez que el algoritmo se ha convertido en un programa fuente, es preciso introducirlo en memoria mediante el teclado y almacenarlo posteriormente en un disco. Esta operación se realiza con un programa editor, posteriormente el programa fuente se convierte en un archivo de programa que se guarda en un disco.

El programa fuente debe ser traducido a lenguaje de máquina. Este proceso se realiza con el compilador y el sistema operativo que se encarga prácticamente de la compilación. Si tras la compilación se presentan errores en el programa fuente, es preciso volver a editar el programa, corregir los errores y compilar de nuevo. Este proceso se repite hasta que no se producen errores, obteniéndose entonces el programa objeto. Luego se realizará la fase de montaje del programa objeto con las librerías del programa del compilador. El proceso de montaje produce un programa ejecutable.
Cuando el programa ejecutable se ha creado, se lo puede ejecutar desde el sistema operativo con solo teclear su nombre. Suponiendo que no existan errores durante la ejecución (llamados errores de ejecución), se obtendrá la salida de resultados del programa.

Verificación y depuración del programa.-La verificación de un programa es el proceso de ejecutar el programa con varios datos de entrada llamados datos de prueba, que determinarán si el programa tiene errores.
La depuración es el proceso de encontrar los errores del programa y corregir o eliminar dichos errores.
Documentación y mantenimiento.-
La documentación de un problema consta de las descripciones de los pasos a dar en el proceso de resolución de un problema. Debe ser realizada con mucho cuidado y detalle por la influencia que tiene en el producto final. Programas pobremente documentados son difíciles de leer, más difíciles de depurar y casi imposibles de mantener y modificar.
La documentación de un programa puede ser interna o externa. La documentación interna es la contenida en las líneas de comentarios. La documentación externa incluye análisis, diagramas de flujo y/o pseudocódigo, manuales de usuario con instrucciones para ejecutar el programa y para interpretar los resultados.
La documentación es vital cuando se desea corregir posibles errores futuros o bien cambiar el programa. Tales cambios se denominan MANTENIMIENTO DEL PROGRAMA. Después de cada cambio la documentación debe ser actualizada para facilitar cambios posteriores. Es práctica numerar las sucesivas versiones de los programas 1.0, 1.1, 2.0, 2.1, 2.2, 3.0, etc. (Si los cambios introducidos son importantes se varía el primer dígito Ej. de 1.0 a 2.0; en caso de cambios pequeños sólo se varía el segundo dígito Ej. de 2.0 a 2.1).

No hay comentarios:

Publicar un comentario