Fundamentos de Programacion Unidad2

14
UNIDAD II ALGORITMOS M.C. Sergio Garza Carranza Fundamentos de Programación 1

description

trabajo

Transcript of Fundamentos de Programacion Unidad2

  • UNIDAD II

    ALGORITMOS

    M.C. Sergio Garza Carranza Fundamentos de Programacin 1

  • M.C. Sergio Garza Carranza Fundamentos de Programacin 2

    Unidad II. Algoritmos

    Metodologa para la resolucin de problemas a travs de la computadora.

    El proceso de resolucin de un problema con una computadora conduce a la escritura de un programa y a su ejecucin en la misma. Aunque el proceso de disear programas es esencialmente un proceso creativo, se puede 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

    Implementacin

  • M.C. Sergio Garza Carranza Fundamentos de Programacin 3

    Unidad II. Algoritmos

    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.

    Metodologa para la resolucin de problemas a travs de la computadora.

    Para poder definir bien un problema es necesario responder a las siguientes preguntas:

    Qu entradas se requieren? (tipo y cantidad)

    Cul es la salida deseada? (tipo y cantidad)

    Qu mtodo produce la salida deseada?

  • M.C. Sergio Garza Carranza Fundamentos de Programacin 4

    Unidad II. Algoritmos

    Diseo del algoritmo

    En la fase de anlisis, se determina qu har el programa. En la etapa de diseo se

    determina cmo har el programa la tarea solicitada.

    Los mtodos ms eficaces para el proceso de diseo se basan en el conocido divide y vencers. Es decir, la resolucin de un problema complejo se realiza dividiendo el problema en subproblemas y stos a su vez, en otros de nivel ms bajo.

    Este mtodo se conoce tcnicamente como diseo descendente (top-down) o modular.

    Metodologa para la resolucin de problemas a travs de la computadora.

    El proceso de revisin de la secuencia lgica del programa y de enlazar cada una de las partes, se conoce como refinamiento sucesivo o por pasos.

  • M.C. Sergio Garza Carranza Fundamentos de Programacin 5

    Unidad II. Algoritmos

    Diseo del algoritmo

    El proceso que convierte los resultados del anlisis del problema en un diseo modular con refinamientos sucesivos que permitan una posterior traduccin a un lenguaje de programacin se denomina diseo del algoritmo.

    El diseo del algoritmo es independiente del lenguaje de programacin en el que se vaya a codificar posteriormente.

    Las herramientas ms utilizadas para disear algoritmos son:

    Diagramas de flujo

    Pseudocdigo

    Diagramas N-S

    Metodologa para la resolucin de problemas a travs de la computadora.

  • M.C. Sergio Garza Carranza Fundamentos de Programacin 6

    Unidad II. Algoritmos

    Diagramas de flujo

    Un diagrama de flujo (flowchart) es una representacin grfica de un algoritmo. En ella, se muestra la secuencia de pasos del algoritmo representados por una serie de smbolos que tienen un significado particular.

    Estos diagramas utilizan smbolos con significados bien definidos que representan los pasos del algoritmo, y representan el flujo de ejecucin mediante flechas que conectan los puntos de inicio y de trmino.

    Metodologa para la resolucin de problemas a travs de la computadora.

    Su correcta construccin es sumamente importante porque , a partir del mismo se escribe un programa en algn Lenguaje de Programacin. Si el Diagrama de Flujo est completo y correcto, el paso del mismo a un Lenguaje de Programacin es relativamente simple y directo.

  • M.C. Sergio Garza Carranza Fundamentos de Programacin 7

    Unidad II. Algoritmos

    Los smbolos utilizados han sido normalizados por el Instituto Norteamericano de Normalizacin (ANSI), y los ms frecuentemente empleados son los siguientes:

    Metodologa para la resolucin de problemas a travs de la computadora.

    SIMBOLO NOMBRE SIGNIFICADO

    Terminal Indica el inicio o final del diagrama de flujo

    Proceso

    Indica cualquier actividad o proceso, se utiliza

    comnmente para representar una instruccin,

    o cualquier tipo de operacin que origine un

    cambio de valor.

    Entrada / Salida

    Cualquier tipo de introduccin de datos en la

    memoria desde los perifricos o registro de

    informacin procesada en un perifrico.

    Decisin

    Indica operaciones lgicas o de comparacin

    entre datos (normalmente dos) y en funcin del

    resultado de la misma determina (normalmente

    si y no) cual de los distintos caminos

    alternativos del programa se debe seguir

  • M.C. Sergio Garza Carranza Fundamentos de Programacin 8

    Unidad II. Algoritmos Metodologa para la resolucin de problemas a travs de la computadora.

    SIMBOLO NOMBRE SIGNIFICADO

    Entrada manual

    (teclado)

    Indica la introduccin de datos por medio del

    teclado. Se utiliza en ocasiones en lugar del

    smbolo de entrada/salida

    Entrada

    (tarjeta perforada)

    Indica la introduccin de datos por medio de

    tarjetas perforadas. Se utiliza en ocasiones en

    lugar del smbolo de entrada/salida

    Salida

    (impresora)

    Se utiliza en ocasiones en lugar del smbolo de

    salida. El dibujo representa un pedazo de hoja.

    Es usado para mostrar datos o resultados en la

    impresora.

    Salida

    (pantalla)

    Se utiliza en ocasiones en lugar del smbolo de

    salida. El dibujo representa un monitor. Es

    usado para mostrar datos o resultados en la

    pantalla.

    Conector

    (misma pgina)

    Sirve para enlazar dos partes cualesquiera de

    un diagrama a travs de un conector en la

    salida y otro conector en la entrada. Se refiere a

    la conexin en la misma pagina del diagrama

  • M.C. Sergio Garza Carranza Fundamentos de Programacin 9

    Unidad II. Algoritmos Metodologa para la resolucin de problemas a travs de la computadora.

    SIMBOLO NOMBRE SIGNIFICADO

    Conector

    (entre pginas)

    Sirve para enlazar dos partes cualesquiera de

    un diagrama a travs de un conector en la

    salida y otro conector en la entrada. Se refiere a

    la conexin en diferentes pginas del diagrama.

    Flechas de flujo Indican el sentido de la ejecucin de las

    operaciones

    Iteracin ciclo mientras / hasta que

    (while / until)

    Sirve para indicar un proceso repetitivo que se

    ejecuta hasta que o mientras se cumpla una

    condicin

    Iteracin Ciclo desde .hasta

    (forto)

    Sirve para indicar un proceso repetitivo que se

    ejecuta un nmero predeterminado de veces.

    Subrutina Indica el llamado a un proceso predefinido.

  • M.C. Sergio Garza Carranza Fundamentos de Programacin 10

    Unidad II. Algoritmos Metodologa para la resolucin de problemas a travs de la computadora.

    Pseudocdigo

    El pseudocdigo (falso lenguaje) es una descripcin de alto nivel de un algoritmo que emplea una mezcla de lenguaje natural con algunas convenciones sintcticas propias de lenguajes de programacin, como asignaciones, ciclos y condicionales.

    Es utilizado para describir algoritmos en libros y publicaciones cientficas, y como producto intermedio durante el desarrollo de un algoritmo.

    El pseudocdigo est pensado para facilitar a las personas el entendimiento de un algoritmo, y por lo tanto puede omitir detalles irrelevantes que son necesarios en una implementacin.

    leer x

    si x>5 entonces

    imprimir mayor de 5

    si no entonces

    imprimir no mayor de 5

    fin si

    EJEMPLO :

  • M.C. Sergio Garza Carranza Fundamentos de Programacin 11

    Unidad II. Algoritmos Metodologa para la resolucin de problemas a travs de la computadora.

    Diagramas N-S (Nassi Schneiderman)

    El diagrama N-S o tambin conocido como diagrama de Chapin es una tcnica de especificacin de algoritmos que combina la descripcin textual, propia del pseudocdigo, con la representacin grfica del diagrama de flujo.

    El diagrama N-S cuenta con un conjunto limitado de smbolos para representar los pasos del algoritmo, por ello se apoya en expresiones del lenguaje natural; sin embargo, dado que el lenguaje natural es muy extenso y se presta para la ambigedad, solo se utiliza un conjunto de palabras, a las que se denomina palabras reservadas.

    Las palabras reservadas ms utilizadas son:

    Inicio, Fin, Leer, Escribir, Mientras, Repita,

    Hasta, Para, Incrementar, Hacer, Funcin

  • M.C. Sergio Garza Carranza Fundamentos de Programacin 12

    Unidad II. Algoritmos Metodologa para la resolucin de problemas a travs de la computadora.

    EJEMPLO: Algoritmo que determina el mayor y menor de dos nmeros

    Inicio

    leer n1 y n2

    si n1 = n2 entonces

    imprimir son iguales

    si no, entonces

    si n1 > n2 entonces

    imprimir n1, Mayor

    imprimir n2, Menor

    si no, entonces

    imprimir n2, Mayor

    imprimir n1, Menor

    fin si

    fin si

    fin

    Pseudocdigo Diagrama de flujo Diagrama N-S

    Son iguales

    Inicio

    n1, n2

    n1=n2

    n1

  • M.C. Sergio Garza Carranza Fundamentos de Programacin 13

    Unidad II. Algoritmos

    Implementacin

    El proceso de implementacin de un algoritmo consiste en las siguientes etapas:

    Metodologa para la resolucin de problemas a travs de la computadora.

  • M.C. Sergio Garza Carranza Fundamentos de Programacin 14

    Unidad II. Algoritmos Metodologa para la resolucin de problemas a travs de la computadora.

    Resolucin de

    Problemas en la

    Computadora

    Anlisis del

    Problema

    (Qu hacer?)

    Diseo del

    algoritmo

    (Cmo hacerlo?)

    Implementacin

    (Con que?)

    Descripcin del Problema

    Describir claramente lo que debe

    hacer el programa y el resultado

    que se desea

    Especificaciones de Entrada

    Identificar cuales son las

    entradas y sus tipos

    Especificaciones de Salida

    Identificar cuales son las

    Salidas y sus tipos

    Diseo Descendente

    Dividir el problema en partes

    (subproblemas) ms pequeas

    Refinamiento por pasos

    Secuencia lgica de la ejecucin.

    Enlazar cada una de las partes

    Herramientas de Diseo

    Pseudocdigo

    Diagramas de flujo

    Diagramas N-S

    Codificacin

    Escribir el algoritmo en el lenguaje

    de programacin. Se obtiene el

    Programa

    Ejecucin y prueba

    El programa se ejecuta, se

    verifica rigurosamente y se

    eliminan los errores que pudieran

    aparecer

    Depuracin y Mantenimiento

    El programa se actualiza y

    modifica cada vez que sea

    necesario, para cumplir las

    necesidades del cliente.

    R E S U M E N