martes, 20 de noviembre de 2012

LA RESOLUCION DE PROBLEMAS CON COMPUTADORAS


República Bolivariana de Venezuela
Ministerio del Poder Popular. para la Educación Superior
Universidad Nacional Experimental “Simón Rodríguez” 
Núcleo Valles del Tuy Catedra: Introducción al procesamiento de datos
Sección “D”
Facilitadora: Nolbis San Juan
Participantes: Milanyel Mendez
                     Yudelis Gonzalez



Informe exposición nº 4














La resolución de problemas con computadoras





Aunque el proceso de diseñar programas es un proceso creativo, se pueden considerar una serie de fases o pasos comunes, que deben seguir todas aquellas personas que pretendan realizar un programa. Ya que el Computador es una máquina que no puede trabajar por si 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 esta 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 máquina funcione, estos programas son básicamente, el Sistema Operativo, los Editores de texto, los Compiladores, Intérpretes y los Programas de utilidad. El software de aplicación son los que realizan tareas concretas, nóminas, contabilidad, análisis estadísticos, etc., es decir todos aquellos programas que pueden ser escritos en un Lenguaje de Programación.

La resolución de problemas con computadoras se puede dividir en tres fases:
1) Análisis del problema
2) Diseño del Algoritmo
3) Resolución del Algoritmo en la computadora
El análisis y el diseño del algoritmo requieren la descripción del problema en subproblemas a base de refinamientos sucesivos y una herramienta de programación:
1) Diagrama de Flujo
2) Diagrama N-S
3) Pseudocódigo
Los diagramas de flujo son importantes porque nos facilita la manera de representar visualmente el flujo de datos por medio de un sistema de tratamiento de información, en este realizamos un análisis de los procesos o procedimientos que requerimos para realizar un programa o un objetivo.
Existe un error común que trata por sinónimos los términos 'lenguaje de programación' y 'lenguaje informático'. Los lenguajes informáticos engloban a los lenguajes de programación y a otros más, como por ejemplo HTML (lenguaje para el marcado de páginas web que no es propiamente un lenguaje de programación, sino un conjunto de instrucciones que permiten diseñar el contenido de los documentos).
Permite especificar de manera precisa sobre qué datos debe operar una computadora, cómo deben ser almacenados o transmitidos y qué acciones debe tomar bajo una variada gama de circunstancias. Todo esto, a través de un lenguaje que intenta estar relativamente próximo al lenguaje humano o natural. 

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 se desea realice la computadora, mientras esto no se conozca del todo, no tiene caso continuar con el siguiente paso.
Análisis de la solución
Consiste en establecer una serie de preguntas acerca de lo que establece el problema, para poder determinar si se cuenta con los elementos suficientes para llevar a cabo la solución del mismo, algunas preguntas son:
¿Con qué cuento?
Cuáles son los datos con los que se va a iniciar el proceso, qué tenemos que proporcionarle a la computadora y si los datos con los que cuento son suficientes para dar solución al problema.
¿Qué hago con esos datos?
Una vez que tenemos todos los datos que necesitamos, debemos determinar que hacer con ellos, es decir que fórmula, cálculos, que proceso o transformación deben seguir los datos para convertirse en resultados.
¿Qué se espera obtener?
Que información deseamos obtener con el proceso de datos y de que forma presentarla; en caso de la información obtenida no sea la deseada replantear nuevamente un análisis en los puntos anteriores.
Es recomendable que nos pongamos en el lugar de la computadora y analicemos que es lo que necesitamos que nos ordenen y en que secuencia para producir los resultados esperados.
Diseño de la solución
Una vez definido y analizado el problema, se procede a la creación del algoritmo (Diagrama de flujo ó pseudocódigo), en el cual se da la serie de pasos ordenados que nos proporcione un método explícito para la solución del problema. Es recomendable la realización de pruebas de escritorio al algoritmo diseñado, para determinar su confiabilidad y detectar los errores que se pueden presentar en ciertas situaciones. Estas pruebas consisten en dar valores a la variable e ir probando el algoritmo paso a paso para obtener una solución y si ésta es satisfactoria continuar con el siguiente paso de la metodología; de no ser así y de existir errores deben corregirse y volver a hacer las pruebas de escritorio al algoritmo.
1.2.4 Codificación
Consiste en escribir la solución del problema (de acuerdo al pseudocódigo); en una serie de instrucciones detalladas en un código reconocible por la computadora; es decir en un lenguaje de programación (ya sea de bajo o alto nivel), a esta serie de instrucciones se le conoce como PROGRAMA.

Prueba y Depuración
Prueba es el proceso de identificar los errores que se presenten durante la ejecución del programa; es conveniente que cuando se pruebe un programa se tomen en cuenta los siguientes puntos:
1. - Tratar de iniciar la prueba con una mentalidad saboteadora, casi disfrutando la tarea de encontrar un error.
2. - Sospechar de todos los resultados que arroje la solución, con lo cual se deberán verificar todos.
3. - Considerar todas las situaciones posibles, normales y aún las anormales.
La Depuración consiste en eliminar los errores que se hayan detectado durante la prueba, para dar paso a una solución adecuada y sin errores.
Documentación
Es la guía o comunicación escrita que sirve como ayuda para usar un programa, o facilitar futuras modificaciones.
A menudo un programa escrito por una persona es usado por muchas otras, por ello la documentación es muy importante; ésta debe presentarse en tres formas: EXTERNA, INTERNA y AL USUARIO FINAL.
Documentación Interna
Consiste en los comentarios o mensajes que se agregan al código del programa, que explican las funciones que realizan ciertos procesos, cálculos o fórmulas para el entendimiento del mismo.
Documentación Externa
También conocida como Manual Técnico, está integrada por los siguientes elementos: Descripción del Problema, Nombre del Autor, Diagrama del Flujo y/o Pseudocódigo, Lista de variables y constantes, y Codificación del Programa, esto con la finalidad de permitir su posterior adecuación a los cambios.
Manual del Usuario
Es la documentación que se le proporciona al usuario final, es una guía que indica el usuario como navegar en el programa, presentando todas las pantallas y menús que se va a encontrar y una explicación de los mismos, no contiene información de tipo técnico.
Mantenimiento
Se lleva a cabo después de determinado el programa, cuando se ha estado trabajando un tiempo, y se detecta que es necesario hacer un cambio, ajuste y/o complementación al programa para que siga trabajando de manera correcta. Para realizar esta función, el programa debe estar debida mente documentado, lo cual facilitará la tarea.
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 (con excepción de los programas que contienen comandos de generación de datos aleatorios).
Finito: Tiene un número determinado de pasos y debe producir un resultado en un tiempo finito.
Algunos Ejemplos.
Ver una película. 1. Buscar el videocasette 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 al sofá. 7. Ponerme cómodo 8. Ajustar el volumen. 9. Disfrutar la película
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 fórmulas, diagramas de flujo, y pseudo códigos conocidos como herramientas de programación. Está ú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.
Fases para la Resolución de Problema
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: ¿Qué entradas se requieren? (cantidad y tipo) ¿Cuál es la salida deseada? (cantidad y tipo) ¿Qué método produce la salida deseada?

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ías: la resolución de un problema complejo se realiza dividiendo el problema en subproblemas y a continuación dividir estos en otros de nivel mas 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 mas 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.

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 la representación de un algoritmo, 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 pseudo có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, mas 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ía 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 determinarían si el programa contiene errores o no.


DIAGRAMA DE FLUJO.

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 se 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 y 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. Los símbolos estándar normalizados por ANSI (abreviatura de America National Standard Institute) son muy variados.
Se puede escribir más de un paso del algoritmo en una sola caja rectangular. El uso de flechas significa que la caja no necesita ser escrita debajo de su predecesora. Sin embargo, abusar demasiado de esta flexibilidad conduce a diagramas de flujo complicados e ininteligible
Los diagramas de flujo de datos fueron inventados por Larry Constantine, el desarrollador original del diseño estructurado, basado en el modelo de computación de Martin y Estrin: "flujo gráfico de datos" . Los diagramas de flujo de datos (DFD) son una de las tres perspectivas esenciales de Análisis de Sistemas Estructurados y Diseño por Método SSADM. El patrocinador de un proyecto y los usuarios finales tendrán que ser informados y consultados en todas las etapas de una evolución del sistema. Con un diagrama de flujo de datos, los usuarios van a poder visualizar la forma en que el sistema funcione, lo que el sistema va a lograr, y cómo el sistemase pondrá en práctica.

No hay comentarios:

Publicar un comentario