Vous êtes sur la page 1sur 16

Algoritmo y Lenguajes de Programacin

INSTITUTO TECNOLGICO SUPERIOR DE ALVARADO

Algoritmo y Lenguajes de Programacin

INTEGRANTES DEL EQUIPO:

ANTOLOGA
CARRERA DE INGENIERA INDUSTRIAL
ING. Guadalupe Ramrez Pgina

Algoritmo y Lenguajes de Programacin

INSTITUTO TECNOLGICO SUPERIOR DE ALVARADO

ANTOLOGA DE Algoritmo y Lenguaje de Programacin

CARRERA

INGENIERA INDUSTRIAL

PRESENTA

Adriana Lpez Moreno

MATERIA Categora de los sistemas operativos

ING. Guadalupe Ramrez

Pgina

Algoritmo y Lenguajes de Programacin

H y G. del 2013

Medelln Ver.

Febrero

NDICE
UNIDAD 2 DESARROLLO DE LGICA ALGORTMICA ...................................... 4 INTRODUCCIN .......................................................................................... 4 BIBLIOGRAFA ........................................................................................... 15

ING. Guadalupe Ramrez

Pgina

Algoritmo y Lenguajes de Programacin

Unidad 2 Desarrollo de lgica algortmica

INTRODUCCIN

El proceso de desarrollo de algoritmos y diagramas de flujo es fundamental dentro de la creacin de programas de computadora en la parte de programacin as como la forma en que se plantea un problema, es fundamental para alcanzar una solucin satisfactoria del mismo. Por ello, es necesario conocer y manejar la terminologa que se utiliza dentro de estas herramientas de desarrollo de la programacin.

ING. Guadalupe Ramrez

Pgina

Algoritmo y Lenguajes de Programacin

En este trabajo trataremos sobre la metodologa para el diseo de software donde definiremos los conceptos Top Down, Bottom up, Programacin Modular y Programacin Estructurada.

ING. Guadalupe Ramrez

Pgina

Algoritmo y Lenguajes de Programacin

METODOLOGA PARA LA SOLUCIN DE PROBLEMAS El proceso de resolucin de un problema con una computadora conduce a la escritura de un programa y su ejecucin en la misma. Aunque el proceso de disear programas es esencialmente un proceso creativo, se pueden considerar una serie de fases o pasos comunes, que generalmente deben seguir todos los programadores. Las fases de resolucin de un problema con computadora son: Anlisis del problema Diseo del algoritmo Codificacin Compilacin y ejecucin Verificacin Depuracin Mantenimiento Documentacin. Las dos primeras fases conducen a un diseo detallado escrito en forma de algoritmo. Durante la tercera etapa (codificacin) se implementa el algoritmo en un cdigo escrito en un lenguaje de programacin, reflejando las ideas desarrolladas en las fases de anlisis y diseo. La fase de compilacin y ejecucin traduce y ejecuta el programa. En las fases de verificacin y depuracin el programador busca errores de las etapas anteriores y los elimina. Comprobar que mientras ms tiempo se invierta en la fase de anlisis y diseo menos tiempo se perder en la depuracin del programa. Por ltimo, se debe realizar la documentacin del programa. Un algoritmo es un mtodo para resolver un problema mediante una serie de pasos precisos, definidos y finitos. Anlisis del problema: La primera fase de la resolucin de un problema con computadora es el anlisis del problema. Esta fase requiere una clara definicin, donde se contemple exactamente lo que debe hacer el programa y el resultado o solucin deseada. Dado que se busca una solucin por computadora, se precisan especificaciones detalladas de entrada y salida. Bien un problema es conveniente responder a las siguientes preguntas: Qu entradas e requieren? (tipo y cantidad) Cul es la salida deseada? (tipo y cantidad) Qu mtodo produce la salida deseada?

ING. Guadalupe Ramrez

Pgina

Algoritmo y Lenguajes de Programacin

En la etapa de anlisis del proceso de programacin se determina qu hace el programa. En la etapa de diseo se determina cmo hace el programa la tarea solicitada. Los mtodos ms eficaces para el proceso de diseo en el refrn conocido divide y vencers. Es decir, la resolucin de un problema comple jo se realiza dividiendo el problema en subproblemas y a continuacin subdividir estos sub problemas en otros de nivel ms bajo, hasta que pueda ser implementada una solucin en la computadora. Este mtodo se conoce tcnicamente como diseo descendente (top-Down) o modular. El proceso de dividir el problema en cada etapa y expresar cada paso en forma ms detallada se denomina refinamiento sucesivo. Cada subproblema es resuelto mediante un mdulo (subprograma) que tiene un solo punto de entrada y un solo punto de salida. Cualquier programa bien diseado consta de un programa principal (el mdulo de nivel ms alto) que llama a subprogramas (mdulos de nivel ms bajo) que a su vez pueden llamar a otros subprogramas. Las dos herramientas ms utilizadas para disear algoritmos son: diagramas de flujo y pseudocdigos. Diagramas de flujo Un diagrama de flujo (flowchart) es una representacin grfica de un algoritmo. (Los smbolos utilizados han sido normalizados por el Instituto Norteamericano de Normalizacin (ANSI, por sus siglas en ingls) y los ms frecuentemente empleados se muestran en la siguiente tabla: de programacin Pseudocdigo El pseudocdigo es una herramienta de programacin en que las instrucciones se escriben en palabras similares al ingls o espaol, que facilitan tanto la escritura como la lectura de programas. En esencia, el pseudocdigo se puede definir como un lenguaje de especificaciones de algoritmos. Aunque no existen reglas para escritura del pseudocdigo en espaol, se ha recogido una notacin estndar que es muy empleada en los libros de programacin en espaol. Las palabras reservadas bsicas se representan en letras negritas minsculas. Estas palabras son traduccin libre de palabras reservadas de lenguajes como C, Pascal, etc. Ejemplo 2 El pseudocdigo que resuelve el ejemplo 1 es el siguiente: Previsiones de depreciacin Introducir costo inicial Vida til Valor final de rescate (recuperacin)

ING. Guadalupe Ramrez

Pgina

Algoritmo y Lenguajes de Programacin

Imprimir encabezados Establecer el valor inicial del ao Calcular depreciacin mientras valor ao <= vida til hacer calcular depreciacin acumulada calcular valor actual imprimir una lnea en la tabla incrementar el valor del ao fin de mientras

Codificacin 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 operacin se realiza con un programa editor, posteriormente el programa fuente se convierte en un archivo de programa que se guarda (graba) en disco. El programa fuente debe ser traducido a lenguaje mquina, este proceso se realiza con el compilador y el sistema operativo que se encarga particularmente de la compilacin. Codificacin de un programa Si tras la compilacin se presentan errores (errores de compilacin) en el programa fuente, es preciso volver a editar el programa, corregir los errores y compilar nuevamente. Este proceso se repite hasta que no se producen errores, obtenindose el programa objeto que todava no es ejecutable directamente. Suponiendo que no existen errores en el programa fuente, se debe instruir al sistema operativo para que realice la fase de montaje o enlace (link), es decir, la carga del programa objeto con las libreras del programa de compilador. El proceso de montaje produce un programa ejecutable. Cuando el programa ejecutable se ha creado, se puede ya ejecutar desde el sistema operativo con solo teclear su nombre, desde sistema operativo DOS, o bien haciendo doble clic, desde Windows. Verificacin y depuracin de un programa La verificacin de un programa es el proceso de ejecucin del programa con una amplia variedad de datos de entrada, llamados datos de test o prueba, que determinarn si el programa tiene errores (bugs). Para realizar la verificacin se debe desarrollar una amplia gama de datos de test: valores normales de entrada, valores extremos de entrada que comprueben los lmites del programa y valores de entrada que comprueben aspectos especiales del programa. La depuracin es el proceso de encontrar los errores del programa y corregir o eliminar dichos errores. Verificacin y depuracin de un programa Cuando se ejecuta un programa se pueden producir tres tipos de errores: Errores de compilacin. Se producen normalmente por un uso incorrecto de las reglas del lenguaje de programacin y suelen ser errores de sintaxis. Si existe un error de sintaxis, la computadora ni puede comprender la instruccin, no se obtendr el programa objeto y el compilador imprimir una lista de

ING. Guadalupe Ramrez

Pgina

Algoritmo y Lenguajes de Programacin

todos los errores encontrados durante la compilacin. Errores de ejecucin. Estos errores se producen por instrucciones que la computadora puede comprender pero no ejecutar. Ejemplos tpicos son: divisin entre cero y races cuadradas de nmeros negativos. En estos casos se detiene la ejecucin del programa y se imprime un mensaje de error. Verificacin y depuracin de un programa Errores de lgica. Se producen en la lgica del programa y la fuente del error suele ser el diseo del algoritmo. Estos errores son los ms difciles de detectar, ya que el programa puede funcionar y no producir errores de compilacin ni de ejecucin, y slo puede advertir el error por la obtencin de resultados incorrectos. En este caso se debe volver a la fase de diseo del algoritmo, modificar el algoritmo, cambiar el programa fuente y compilar y ejecutar una vez ms. Documentacin y mantenimiento La documentacin de un problema consta de las descripciones de los pasos a dar en el proceso de resolucin de un problema. La importancia de la documentacin debe ser destacada por su decisiva influencia en el producto final. Programas pobremente documentados son difciles de leer, ms difciles de depurar y casi imposibles de mantener y modificar. La documentacin de un programa puede ser interna y externa. La documentacin interna es la contenida en lneas de comentarios. La documentacin externa incluye anlisis, diagramas de flujo, pseudocdigos, manuales de usuario con instrucciones para ejecutar el programa y para interpretar los resultados .La documentacin es vital cuando se desea corregir posibles errores futuros o bien cambiar el programa. Tales cambios se denominan mantenimiento del programa. Despus de cada cambio la documentacin debe ser actualizada para facilitar cambios posteriores.

ING. Guadalupe Ramrez

Pgina

Algoritmo y Lenguajes de Programacin

METODOLOGA PARA EL DISEO DE SOFTWARE: TOP-DOWN Top-Down y Bottom-up son estrategias de procesamiento de informacin caractersticas de las ciencias de la informacin, especialmente en lo relativo al software. Por extensin se aplican tambin a otras ciencias humanas y cientficas. En el modelo Top-Down se formula un resumen del sistema, sin especificar detalles. Cada parte del sistema se refina diseando con mayor detalle. Cada parte nueva es entonces redefinida, cada vez con mayor detalle, hasta que la especificacin completa es lo suficientemente detallada para validar el modelo. El modelo "Top-Down" se disea con frecuencia con la ayuda de "cajas negras" que hacen ms fcil cumplir requerimientos aunque estas cajas negras no expliquen en detalle los componentes individuales. En el proceso de desarrollo de software, los enfoques Top-Down y Bottom-up juegan un papel crucial. El diseo Top-Down fue promovido en los 1970s por los investigadores de IBM Harlan Mills y Niklaus Wirth. Mills desarroll los conceptos de programacin estructurada para usos prcticos y los prob en un proyecto en 1969 para automatizar el ndice de la morgue del New York Times. El xito administrativo e ingenieril del proyecto hicieron que el enfoque top-Down se esparciera por IBM y por el resto de la industria de los computadores. Niklaus Wirth, que entre sus logros est el desarrollo del lenguaje de programacin Pascal, escribi el artculo Program Development by Stepwise Refinement, que tuvo mucha influencia. Los mtodos Top-Down fueron favorecidos en la ingeniera de software hasta que lleg la programacin orientada a objetos a finales de los 1980s. El enfoque top-Down enfatiza la planificacin y conocimiento completo del sistema. Se entiende que la codificacin no puede comenzar hasta que no se haya alcanzado un nivel de detalle suficiente, al menos en alguna parte del sistema. Esto retrasa las pruebas de las unidades funcionales del sistema hasta que gran parte del diseo se ha completado.

ING. Guadalupe Ramrez

Pgina

10

Algoritmo y Lenguajes de Programacin

BOTTOM-UP En contraste, en el diseo Bottom-up las partes individuales se disean con detalle y luego se enlazan para formar componentes ms grandes, que a su vez se enlazan hasta que se forma el sistema completo. Las estrategias basadas en el flujo de informacin "bottom-up" se antojan potencialmente necesarias y suficientes porque se basan en el conocimiento de todas las variables que pueden afectar los elementos del sistema. Bottom-up hace nfasis en la programacin y pruebas tempranas, que pueden comenzar tan pronto se ha especificado el primer mdulo. Este enfoque tiene el riesgo de programar cosas sin saber cmo se van a conectar al resto del sistema, y esta conexin puede no ser tan fcil como se crey al comienzo. El rehus del cdigo es uno de los mayores beneficios del enfoque bottom-up. El desarrollo de software moderno usualmente combina tanto Top-Down como Bottomup. Aunque un conocimiento completo del sistema se considera usualmente necesario para un buen diseo, haciendo que tericamente sea un enfoque top-Down, la mayora de proyectos de desarrollo de software tratan de usar cdigo existente en algn grado. El uso de mdulos existentes le da al diseo un sabor 'bottom-up'. Algunos enfoques usan un enfoque en el que un sistema parcialmente funcional es diseado y programado completamente, y este sistema se va expandiendo para llenar los requisitos del proyecto PROGRAMACION MODULAR La programacin modular es un paradigma de programacin que consiste en dividir un programa en mdulos o subprogramas con el fin de hacerlo ms legible y manejable. Se presenta histricamente como una evolucin de la programacin estructurada para solucionar problemas de programacin ms grandes y complejos de lo que sta puede resolver. Al aplicar la programacin modular, un problema Complejo debe ser dividido en varios su problemas ms simples, y estos a su vez en otros subproblemas ms simples. Esto debe hacerse hasta obtener subproblemas lo suficientemente simples como para poder ser resueltos fcilmente con algn lenguaje de programacin. sta tcnica se llama refinamiento sucesivo, divide y vencers o anlisis descendente (Top-Down). Un mdulo es cada una de las partes de un programa que resuelve uno de los

ING. Guadalupe Ramrez

Pgina

11

Algoritmo y Lenguajes de Programacin

subproblemas en que se divide el problema complejo original. Cada uno de estos mdulos tiene una tarea bien definida y algunos necesitan de otros para poder operar. En caso de que un mdulo necesite de otro, puede comunicarse con ste mediante una interfaz de comunicacin que tambin debe estar bien definida. Si bien un mdulo puede entenderse como una parte de un programa en cualquiera de sus formas y variados contextos, en la prctica es comn representarlos con procedimientos y funciones. Adicionalmente, tambin pueden considerarse mdulos las libreras que pueden incluirse en un programa o, en programacin orientada a objetos, la implementacin de un tipo de dato abstracto. La programacin estructurada es una forma de escribir programas de ordenador (programacin de computadora) de forma clara. Para ello utiliza nicamente tres estructuras: secuencia, seleccin e iteracin; siendo innecesario y no permitindose el uso de la instruccin o instrucciones de transferencia incondicional (GOTO, EXIT FUNCTION, EXIT SUB o mltiples RETURN). Hoy en da las aplicaciones informticas son mucho ms ambiciosas que las necesidades de programacin Existentes en los aos 1960, principalmente debido a las aplicaciones grficas, por lo que las tcnicas de programacin estructurada no son suficientes. Ello ha llevado al desarrollo de nuevas tcnicas, tales como la programacin orientada a objetos y el desarrollo de entornos de programacin que facilitan la programacin de grandes aplicaciones.

Orgenes de la programacin estructurada A finales de los aos 1960 surgi una nueva forma de programar que no solamente daba lugar a programas fiables y eficientes, sino que adems estaban escritos de manera que facilitaba su comprensin posterior. El teorema del programa estructurado, demostrado por Bhm-Jacopini, demuestra que todo programa puede escribirse utilizando nicamente las tres instrucciones de control siguientes: Secuencia Instruccin condicional. Iteracin (bucle de instrucciones) con condicin al principio. Solamente con estas tres estructuras se pueden escribir todos los programas y aplicaciones posibles. Si bien los lenguajes de programacin tienen un mayor repertorio de estructuras de control, stas pueden ser construidas mediante las tres bsicas.

ING. Guadalupe Ramrez

Pgina

12

Algoritmo y Lenguajes de Programacin

Por ejemplo, en Visual Basic la secuencia de instrucciones consiste en la escritura de una instruccin debajo de otra (tambin se pueden poner en la misma lnea separadas por el smbolo de dos puntos ":" aunque no es recomendable). La instruccin condicional es la instruccin If y la iteracin con condicin al inicio sera la instruccin do-while-loop o while-wend. Ventajas de la programacin estructurada Con La programacin estructurada, elaborar programas de computador sigue siendo una labor que exige esfuerzo, creatividad, habilidad y cuidado. Sin embargo, con este estilo podemos obtener las siguientes ventajas: 1. Los programas son ms fciles de entender, ya que pueden ser ledos de forma secuencial, sin necesidad de hacer seguimiento a saltos de lnea (GOTO) dentro de los bloques de cdigo para entender la lgica. 2. La estructura del programa es clara, puesto que las instrucciones estn ms ligadas o relacionadas entre s. 3. Reduccin del esfuerzo en las pruebas. El seguimiento de los fallos o errores del programa ("debugging") se facilita debido a la estructura ms visible, por lo que los errores se pueden detectar y corregir ms fcilmente. 4. Reduccin de los costes de mantenimiento de los programas. 5. Programas ms sencillos y ms rpidos (ya que es ms fcil su optimizacin). 6. Los bloques de cdigo son auto explicativos, lo que facilita la documentacin. 7. Los GOTO se reservan para construir las instrucciones bsicas. Aunque no se usan de forma directa, por estar prohibida su utilizacin, estn incluidas implcitamente en las instrucciones de seleccin e iteracin. 8. Un programa escrito de acuerdo a estos principios no solamente tendr una mejor estructura sino tambin una excelente presentacin. 9. La programacin estructurada ofrece estos beneficios, pero no se la debe considerar como una panacea ya que el desarrollo de programas es, principalmente, una tarea de dedicacin, esfuerzo y creatividad. Inconvenientes de la programacin estructurada El principal Inconveniente de este mtodo de programacin es que se obtiene un nico bloque de programa, que cuando se hace demasiado grande puede resultar problemtico su manejo; esto se resuelve empleando la programacin modular, definiendo mdulos interdependientes programados y compilados por separado (en realidad esto no es necesario, pero as ha sido histricamente). Un mtodo un poco ms sofisticado es la

ING. Guadalupe Ramrez

Pgina

13

Algoritmo y Lenguajes de Programacin

programacin por capas, en la que los mdulos tienen una estructura jerrquica en la que se pueden definir funciones dentro de funciones o de procedimientos.

Conclusin Como conclusin se pudo identificar cada una de las tcnicas de programacin que en resumen son estrategias de procesamiento de informacin orientadas a las ciencias de la informacin, especialmente en lo relativo al software. Adems se puede concluir que lo ms importante antes de elegir la metodologa que se usara para la implementacin de un software, es determinar el alcance que tendr y luego de ah ver cul es la que ms se acomoda a la aplicacin. As en resumen, se puede mencionar que la metodologa Top Down es el proceso mediante el cual un problema se descompone en una serie de niveles o pasos sucesivos y en donde la metodologa bottom up se refiere a la identificacin de aquellos procesos que necesitan computarizarse con forme vayan apareciendo. La programacin estructural es un mtodo que tiene como principal caracterstica la generacin de un cdigo con un flujo limpio, un diseo claro y una estructura jerrquica, y por ltimo la programacin modular es la que consiste en dividir un programa en mdulos o subprogramas con el fin de hacerlo ms legible y manejable.

ING. Guadalupe Ramrez

Pgina

14

Algoritmo y Lenguajes de Programacin

Bibliografa
Programacin estructurada II (1 ed. 4 imp. edicin). Enseanza Tcnica y Sistemas, S.A. 6 de 2000 http://www.itescam.edu.mxprincipalsylabusfpdbrecursosr44729.PDF http://www.scribd.com/doc/6167605/Logica-de-Programacion-de-La-Upemor http://html.rincondelvago.com/programacion_diseno-de-sistemas.html

ING. Guadalupe Ramrez

Pgina

15

Algoritmo y Lenguajes de Programacin

ING. Guadalupe Ramrez

Pgina

16

Vous aimerez peut-être aussi