viernes, 30 de enero de 2009

Resumen del capitulo 2

FASES EN LA RESOLUCION DE PROBLEMAS
Las fases de resolución de un problema con computadoras son:
Análisis del problema
Diseño de algoritmo
Codificación
Compilación y ejecución
Verificación
Depuración
Diseño de un Algoritmo
se determina como hace el programa la tarea solicitada. Los métodos mas eficaces para el proceso de diseño se basa en el conocido DIVIDE Y VENCERAS un problema complejo se soluciona dividiendo en problemas y subproblemas y a la vez estos subproblemas en otros de nivel mas bajo hasta que pueda ser implementada una solución en la computadora.
Codificación de un Programa
es la escritura en un lenguaje de programación de la representación del algoritmo desarrollada en las etapas presedentes. Dado que el diseño de un algoritmo es independiente del lenguaje de programacion utilizado para su implementacion, el codigo puede ser escrito con igual facilidad en un lenguaje o en otro.
Compílacion y ejecucion de un 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 operacion se realiza con un programa editor. Posteriormente el programa fuente se convierte en un archivo de programa que se guarda (graba) en disco.
Verificacion y depuracion de un programa
Es el proceso de ejecución del programa con una aplia variedad de datos de entrada, llamados datos de test o prueba. que determinaran si el programa tiene errores (bugs).La depuracion es el proceso de encontrar errores del programa y corregir o eliminar dichos errores.Cuando se ejecuta un programa, se pueden producir tres tipos de errores:
1. Errores de compilacion. se producen normalmente por uso incorrecto de las reglas de lenguaje de programacion y suelen ser errores de sintaxis.
2. Errores de ejecucion. Estos errores se prodecen por instrucciones que las computadoras pueden comprender pero no ejecutar.
3. Errores logicos. Se producen en la logica del programa y fuente del error suele ser el diseño del algoritmo.
Documentacion y mantenimiento
La documentación de un problema consta de las descripciones de los pasos a dar en el proceso de resolución de dicho problema. La importancia de la documentación debe ser destacada por su decisiva influencia en el producto final. Programas pobremente documentados son difíciles de leer, mas difíciles de depurar y casi imposibles de mantener y modificar.La documentación de un programa 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ódigo,
Programacion Modular
La programación modular es uno de los métodos de diseño mas flexible y potente para mejorar la productividad de un programa.. Cada uno de estos módulos se analiza, codifica y pone a punto por separado.
Programación Estructurada
Significa escribir un programa de acuerdo a las siguientes reglas:
El programa tiene un diseño modular.
Los módulos son diseñados de modo descendente.
Cada módulo se codifica utilizando las tres estructuras de control básicas: secuencia, selección repetición.
Concepto y características del Algoritmo
El objetivo fundamental es enseñar a resolver problemas mediante una computadora.
Las características fundamentales que debe cumplir todo algoritmo son:
Un algoritmo debe ser preciso e indicar el orden de realización de cada paso.
Un algoritmo debe estar definido. Si se sigue un algoritmo dos veces, se debe obtener el mismo resultado cada vez.
Un algoritmo debe ser finito. Si se sigue un algoritmo, se debe terminar en algún momento; o sea, debe tener un numero finito de pasos.
Escritura de Algoritmos
El sistema para describir (<>) un algoritmo consiste en realizar una descripción paso a paso con un lenguaje natural del citado algoritmo. Un algoritmo es un método o conjunto de reglas para solucionar un problema. En cálculos elementales estas reglas tienen las siguientes propiedades:
deben estar seguidas de alguna secuencia definida de pasos hasta que se obtenga un resultado coherente.
solo puede ejecutarse una operación a la vez.
Representación Grafica de Algoritmos
Para representar un algoritmo se debe utilizar algún método que permita independizar dicho algoritmo del lenguaje de programación elegido. Para conseguir este objetivo se precisa que el algoritmo sea representado grafica o numéricamente, Los métodos usuales para representar un algoritmo son:1. diagrama de flujo.2. diagrama N-S (Nassi- Schneiderman),3. Lenguaje de especificación de algoritmos: pseudocódigo,4. lenguaje español, ingles...5. Formulas
Pseudocódigo
El pseudocodigo es un lenguaje de especificación (descripcion) de algoritmos. El uso de tal lenguaje hace el paso de codificación final relativamente facil. Los lenguajes APL Pascal y Ada se utilizan a veces como lenguajes de especificacion de algoritmos.
Diagrama de flujo
Un diagrama de flujo (flowchart) es una de las tecnicas de representacion de algoritmos mas antigua y a la vez mas utilizada, aunque su empleo ha disminuido considerablemente, sobre todo, desde la aparicion de lenguajes de programacion estructurados. un diagrama de flujo es un diagrama que utiliza los simbolos (cajas) estandar y que tiene los pasos de algoritmo escritos en esas cajas unidas por flechas, denominadas lineas de flujo, que indican la secuencia en que se debe ejecutar.
Diagramas Nessi Schneiderman (Tarea)
diagrama N-S o también conocido como diagrama de Chapin es una técnica de especificación de algoritmos que combina la descripcion textual, propia del pseudocódigo, con la representación gráfica del diagrama de flujo. Es una representación gráfica de un algoritmo para programación estructurada. Desarrollados en 1972 por Isaac Nassi y Ben Shneiderman, estos diagramas también son conocidos como estructogramas debido a que muestran las estructuras de un programa.
Métodos Formales de verificaciones de programas.
Aunque la verificacion formal se sale fuera del ambito, por su importancia se van a tomar dos conceptos clave, asertos (afirmaciones) y precondiciones/postcondiciones invariantes que ayudan a documentar, corregir y clarificar el diseño de modulos y de programas.
Aserciones
Un aserto es una frase sobre una condicion especifica en un cierto punto de un algoritmo o programa.
Precondiciones y postcondiciones
Son afirmaciones sencillas sobre condiciones al principio y al final de los módulos. Una precondicion de un procedimiento es una afirmación lógica sobre sus parámetros de entrada. Una postcondicion de un procedimiento puede ser una afirmación lógica que describe el cambio en el estado del programa producido por la ejecución del procedimiento.

No hay comentarios:

Publicar un comentario