Método de resolución de problemas utilizando el computador


El Computador es una máquina que no puede trabajar por sí sola, únicamente realiza aquellas ordenes
que el hombre le indique. Esas órdenes tienen que ser realizadas de tal forma que el computador las entienda,
siendo esta la causa por la cual se hace necesario darle instrucciones agrupadas. Esto constituye el software,
el cual es pensado y realizado por el hombre. El software está conformado por el “conjunto de programas que se diseñan para el funcionamiento del computador”. Deben estar escritos en un lenguaje de programación. El Software se divide en dos grandes tipos: software del sistema y software de aplicación El software del Sistema es el conjunto de programas necesarios para que la maquina funcione, estos programas son básicamente, el Sistema Operativo, los Editores de texto, los Compiladores, Interpretes y los Programas de utilidad. El software de aplicación son los que realizan tareas concretas, nominas, contabilidad, analisis estadísticos, etc., es decir todos aquellos programas que pueden ser escritos en un Lenguaje de Programacion.

1 La Resolución de Problemas utilizando la Computadora

Aunque el proceso de diseñar programas es un proceso creativo, se pueden considerar tres pasos que ayudan al programador en este proceso:
·          * Análisis del problema
·          * Diseño del algoritmo
·          * Resolución del algoritmo en la computadora
Las fases de análisis y diseño del algoritmo requieren la descripción del problema en subproblemas y una
herramienta de programación: Diagrama de flujo, Pseudocódigo o Diagrama N-S (diagramas de Nassi-
Schneider). En la tercera fase se implementa este algoritmo en un código escrito en un lenguaje de programación, reflejando las ideas obtenidas en las fases de análisis y diseño.
Antes de conocer las tareas a realizar en cada fase, definiremos el concepto de algoritmo.

1. Definición

1.1. Algoritmo. Un algoritmo es un método para resolver un problema mediante una serie de
pasos precisos, definidos y finitos.
Se deriva de la traducción al latín de la palabra árabe Alkhowarismi, nombre de un matemático y astrónomo árabe que escribió un tratado sobre manipulación de números y ecuaciones en el siglo IX.

Características del Algoritmo

·          Preciso: tiene que indicar el orden de realización en cada paso.
·          Definido: si el algoritmo se prueba dos veces, en estas dos pruebas, se debe obtener el mismo resultado
·          Finito: tiene un número determinado de pasos y debe producir un resultado en un tiempo finito.

Veamos algunos ejemplos.
Ejemplo 1.2. Ver una película. 1. Buscar el videocasete de la película. 2. Si el televisor y la video-casetera se encuentran apagados, encenderlos. 3. Sacar el video del estuche. 4. Introducirlo en la video-casetera. 5. Tomar el control del televisor y la video. 6. Dirigirme a el sofá. 7. Ponerme cómodo 8. Ajustar el volumen. 9. Disfrutar la película
Ejemplo 1.3. Cocinar arroz. 1. Lavar bien el arroz. 2. Buscar un recipiente (caldero) de tamaño adecuado.
3. Agregar el agua necesaria de acuerdo a la cantidad de arroz. 4. Agregar aceite, sal, cebolla, ajoporro. 5. Colocar el recipiente en la cocina. 6. Encender la hornilla. 7. Esperar a que hierva el agua. 8. Agregar el arroz al agua hirviendo. 9. Dejar el recipiente en el fuego hasta que el arroz este blando. 10. Apagar la hornilla. 11. Servir. 12. Comer. ¡¡Buen provecho!!
Estos pequeños algoritmos cumplen con los requisitos descritos arriba, ya que cada paso precisa un orden
y tiene un orden de pasos finitos. Los algoritmos se pueden expresar por formulas, diagramas de flujo, y pseudocódigos conocidos como herramientas de programación. Esta última representación es la más utilizada por su sencillez y parecido a el lenguaje humano. El hecho de que un algoritmo sea una representación paso a paso, implica que está compuesto por instrucciones elementales que no involucran ambigüedades, es decir que no pueden interpretarse de diferentes maneras

2 Fases para la Resolución de Problemas

1. Análisis del Problema. En la fase de análisis en el proceso de programación se determina que hace el
programa. Esta fase requiere una clara definición donde se contemple exactamente lo que debe hacer el
programa y el resultado o solución deseada. Dado que se busca una solución se precisan especificaciones
de entrada y salida. Para poder definir bien un problema es conveniente responder a las siguientes
preguntas: ¿Que entradas se requieren? (cantidad y tipo) ¿Cuál es la salida deseada? (cantidad y
tipo) ¿Qué método produce la salida deseada?

2. Diseño del Algoritmo. En la fase de diseño se determina como hace el programa la tarea solicitada. Los
métodos utilizados para el proceso del diseño se basan en el conocido divide y vencerás: la resolución de
un problema complejo se realiza dividiendo el problema en subproblemas y a continuación dividir estos
en otros de nivel más bajo, hasta que sea implementada una solución en la computadora. Este método se
conoce técnicamente como diseño descendente (top-down) o modular. El programa principal (el módulo
de nivel más alto) llama a subprogramas (módulos) de nivel más bajo, que a su vez pueden llamar
a otros subprogramas. Estos módulos pueden ser planeados, codificados, comprobados y depurados
independientemente y luego combinarlos entre sí. Este proceso implica la ejecución de estos pasos
hasta que el programa se ha terminado. El diseño del algoritmo es independiente del lenguaje de
programación en el que se vaya a codificar posteriormente.

3. Implementación del Algoritmo. Para implementar un algoritmo en la computadora, se debe ejecutar
los siguientes pasos: Codificación y documentación, Compilación y ejecución, Verificación y finalmente
la Depuración.

(a) Codificación y documentación. Es la escritura en un lenguaje de programación de la representación
de un algoritmo, en el caso de este curso se utilizan como lenguajes Octave o Matlab.
La codificación se conoce como programa fuente. La documentación puede ser interna y externa.
La documentación interna es la contenida en líneas de comentarios. La documentación externa
incluye análisis, diagramas de flujo y/o pseudocódigos, manuales de usuarios 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. Estos cambios se denominan
mantenimiento del programa. Además es de buena costumbre para todo buen programador, dejar
comentado su código, para que el futuro programador pueda darle mantenimiento fácilmente a el
programa, o incluso, si es el mismo creador quien debe darle mantenimiento. La importancia de
la documentación debe ser destacada por su influencia en la etapa final, ya que programas pobremente
documentados son difíciles de leer, más difíciles de depurar y casi imposibles de mantener
y modificar.

(b) Compilación y ejecución. Una vez que el algoritmo se ha convertido en un programa fuente, debe
ser traducido a lenguaje máquina. Este proceso se realiza con el compilador y el sistema operativo
que se encarga prácticamente de la compilación. Si al compilar el programa fuente se presentan
errores (errores de compilación), es necesario volver a editar el programa, corregir los errores y
compilar de nuevo. Esto se repite hasta que ya no se presenten más errores, obteniéndose el
programa objeto. Cuando no existen errores en el programa fuente se debe instruir al sistema
operativo para que efectúe la fase de montaje o enlace, del programa fuente con las librerías del
programa del compilador. Este proceso de montaje produce un programa ejecutable. Cuando se
ha creado un programa ejecutable este se puede ya ejecutar desde el sistema operativo con solo
teclear su nombre. Suponiendo que no existen errores durante la ejecución (errores en tiempo de
ejecución), se obtendrá la salida de resultados correctos del programa.

(c) Verificación y depuración. Es el proceso de ejecución del programa con una amplia variedad
de datos de entrada, llamados datos de test o prueba como son: valores normales de entrada,
valores extremos de entrada que comprueben los límites del programa y valores de entrada que
comprueben aspectos especiales del programa. Estos determinaran si el programa contiene errores
o no.

Esta información fué obtenida de http://prof.usb.ve/mvillasa/compcient/resolucion.pdf en nuestra opinión es la explicación mas concisa que hemos conseguido en internet,

les aseguramos que encontraran información de  

mucha utilidad AQUÍ