algoritmos.pdf by ramses merel sanchez

Upload: rafael-damaso-santos

Post on 08-Aug-2018

247 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/21/2019 Algoritmos.pdf by ramses merel sanchez

    1/36

    Algoritmos

    2ALGORITMOS

  • 8/21/2019 Algoritmos.pdf by ramses merel sanchez

    2/36

    Tema 2

    2.1 Introduccin

    El objetivo principal de la materia es el de ensear a resolver problemas mediante una

    computadora. Un programador de computadoras antes de nada es un resolvedor de

    problemas.

    Por lo que para llegar a ser un programador eficaz se necesita aprender a resolver

    problemas de un modo riguroso y sistemtico.

    Por esto la materia tiene como nombre Metodologa de la programacin.

    Antes de comenzar con el tema vamos a considerar el significado de la palabra

    ALGORITMO esta palabra se deriva de la traduccin al latn de la palabra rabeALKHWARZMI, nombre de un matemtico y astrnomo rabe que escribi un tratadosobre la manipulacin de nmeros y ecuaciones en el siglo IX, tituladoKITAB AL-JABRWALMUGALABA, la palabra lgebra se deriv por su semejanza sonora deAL-JABR.

    Etimolgicamente la palabra problema deriva del griego PROBALLEIN y significa algolanzado hacia delante. Un problema es un asunto o conjunto de cuestiones que seplantean para ser resueltas, la naturaleza de los problemas varia con el mbito o con el

    contexto donde estn planteados: as existen problemas matemticos, fsicos, filosficos,

    etc.,

    Fig.2 .1 Esquema del desarrollo de algoritmos

    2.2 Definicin

    Un Algoritmo es una secuencia de operaciones detalladas y no ambiguas, que al ejecutarsepaso a paso, conducen a la solucin de un problema. En otras palabras es un conjunto de

    reglas para resolver una cierta clase de problema.

    Algoritmo es un conjunto de instrucciones que especifican la secuencia de operaciones a

    Problema Diseo del

    algoritmo

    Programa de

    computadora

  • 8/21/2019 Algoritmos.pdf by ramses merel sanchez

    3/36

    Algoritmos

    Todo algoritmo es independiente del lenguaje

    2.3 Caractersticas De Los Algoritmos.

    Las propiedades de un algoritmo son las siguientes:

    a) El algoritmo debe ser preciso e indicar el orden de realizacin de cada paso.b) El algoritmo debe ser definido, si se sigue un algoritmo dos veces, se debe obtener el

    mismo resultado cada vez.

    c) El algoritmo debe ser finito, si se sigue un algoritmo se debe terminar en algnmomento; o sea debe tener un nmero finito de pasos.

    El algoritmo debe ser planteado como un sistema de informacin.

    Fig 2 2 Representacin de un algoritmo como un sistema de Informacin

    Entrada Proceso Salida

    Modelo Resultados

    Anlisis

  • 8/21/2019 Algoritmos.pdf by ramses merel sanchez

    4/36

    Tema 2

    2.5 Tipos De Algoritmos

    Cualitativos: Son aquellos en los que se describen los pasos utilizando

    palabras.

    Cuantitativos: Son aquellos en los que se utilizan clculos numricos paradefinir los pasos del proceso.

    2.6 Lenguajes Algoritmicos

    Es una serie de smbolos y reglas que se utilizan para describir de manera explcita un

    proceso.

    2.7 Tipos De Lenguajes Algoritmicos

    Grficos: Es la representacin grfica de las operaciones que realiza unalgoritmo (diagrama de flujo).

    No Grficos: Representa en forma descriptiva las operaciones que deberealizar un algoritmo (pseudocodigo).

    Un algoritmo puede ser expresado de las siguientes formas.

    a) Lenguaje Natural : el uso de trminos del lenguaje natural, es una formade representar un algoritmo.

    b) Lenguaje Simblico: es otra forma de representacin de un algoritmo,que adems permite una introduccin a la programacin estructural.

    c) Lenguaje Grfico : es una forma de escribir una secuencia de pasos enforma de diagrama, en la practica se denomina Diagramas de Flujo.

    Una receta de un plato de cocina se puede expresar en espaol, ingles o francs pero

    cualquiera sea el lenguaje los pasos para la elaboracin del plato se realizarn sin importarel cocinero.

    2.8 Las Tecnicas De Diseo De Algoritmos

  • 8/21/2019 Algoritmos.pdf by ramses merel sanchez

    5/36

    Algoritmos

    resultan inmediatos de resolver, otros son bastante complejos. la investigacin en esta rea

    ha permitido descubrir un conjunto de mtodos y esquemas de diseo hacia los cualespuede orientarse la realizacin de muchos algoritmos. Idear un algoritmo continua siendo

    una labor bastante creativa donde los conocimientos y las experiencias del propio diseador

    tiene un papel fundamental.

    2.8.1 Divide y vencersConsiste en descomponer un problema en subproblemas, resolver independientemente los

    subproblemas para luego combinar sus soluciones y obtener una solucin del problema

    original.

    Esta tcnica puede ser utilizada con xito en problemas como multiplicacin de matrices,

    ordenacin de vectores, etc.

    Ejemplo. Encontrar el ngulo entre dos vectores A(x,y,z) y B(x,y,x).

    A

    = ?

    B

    Determinar la ecuacin del ngulo entre dos vectores. del producto escalar se tiene

    Determinar las operaciones intermedias

    BA

    BA

    COSBABA

    *

    *cos

    )(***

    =

    =

  • 8/21/2019 Algoritmos.pdf by ramses merel sanchez

    6/36

    Tema 2

    Determinar la solucin general.

    2.8.2 Mtodo voraz

    Este mtodo trata de producir algn tipo de mejor resultado a partir de un conjunto deopciones candidatas. Par ello se va procediendo paso a paso realizndose la mejor

    eleccin(utilizando un funcin objetivo que respeta un conjunto de restricciones) de entre

    las posibles. Puede emplearse en problemas de optimizacin, como el conocido de lamochila, en la bsqueda de caminos mnimos sobre grafos, la planificacin en la ejecucin

    de programas en un computador, etc.

    Ejemplo Dar cambio utilizando el menor nmero de billetes.

    Conjunto de billetes =

    {"doscientos","cien","cincuenta","veinte","diez","cinco","dos","uno"};

    Conjunto de cantidades ={200,100,50,20,10,5,2,1};Cambiar (dato, posicin)

    si (dato es distinto de 0) entonces

    cuantos = dato DIV cantidades[posicin];si (cuantos es distinto de 0) entoncesimprimir ("hay , cuantos, billetes de , billetes [ posicin]);

    fin_si

    Cambiar (dato MOD cantidades[posicin], posicin+1);Fin_si

    Fin_cambiar

    inicio

    cambiar(1388,0);fin

    El estilo y calidad de los algoritmos van fuertemente unidos, ante la pregunta Cuales son

    las caractersticas de un buen algoritmo? la respuesta identifica los factores de calidad delos algoritmos.

    )/()/(cos 1 DNARCCOSDNANG ==

  • 8/21/2019 Algoritmos.pdf by ramses merel sanchez

    7/36

    Algoritmos

    problema. Consiste en efectuar una relacin entre las etapas de la estructuracin de forma

    que una etapa jerrquica y su inmediato inferior se relacionen mediante entradas y salidasde informacin.

    Este diseo consiste en una serie de descomposiciones sucesivas del problema inicial, que

    recibe el refinamiento progresivo del repertorio de instrucciones que van a formar parte delprograma.

    La utilizacin de la tcnica de diseo Top-Down tiene los siguientes objetivos bsicos:

    Simplificacin del problema y de los subprogramas de cada descomposicin.

    Las diferentes partes del problema pueden ser programadas de modo independiente eincluso por diferentes personas.

    El programa final queda estructurado en forma de bloque o mdulos lo que hace massencilla su lectura y mantenimiento.

    PRIMER SEGUNDO ULTIMO

    REFINAMIENTO REFINAMIENTO REFINAMIENTO

    Problema

    Inicial

    Sub Problema

    1

    Sub Problema

    Sub problema1.1

    Sub problema1.2

    Sub problemaM.1

    Modulo 1

    Modulo 2

    Modulo 3

    Modulo 4

    Modulo N-3

    Modulo N-2

  • 8/21/2019 Algoritmos.pdf by ramses merel sanchez

    8/36

    Tema 2

    2.8.4 Bottom Up

    El diseo ascendente se refiere a la identificacin de aquellos procesos que necesitan

    computarizarse con forme vayan apareciendo, su anlisis como sistema y su codificacin, o

    bien, la adquisicin de paquetes de software para satisfacer el problema inmediato.

    Cuando la programacin se realiza internamente y haciendo un enfoque ascendente, es

    difcil llegar a integrar los subsistemas al grado tal de que el desempeo global, sea fluido.Los problemas de integracin entre los subsistemas son sumamente costosos y muchos deellos no se solucionan hasta que la programacin alcanza la fecha limite para la integracin

    total del sistema. En esta fecha, ya se cuenta con muy poco tiempo, presupuesto o paciencia

    de los usuarios, como para corregir aquellas delicadas interfaces, que en un principio, seignoran.

    Aunque cada subsistema parece ofrecer lo que se requiere, cuando se contempla al sistema

    como una entidad global, adolece de ciertas limitaciones por haber tomado un enfoqueascendente. Uno de ellos es la duplicacin de esfuerzos para accesar el software y ms aun

    al introducir los datos. Otro es, que se introducen al sistema muchos datos carentes de

    valor. Un tercero y tal vez l mas serio inconveniente del enfoque ascendente, es que losobjetivos globales de la organizacin no fueron considerados y en consecuencia no se

    satisfacen.

    2.9 Metodologa Para La Solucin De Problemas PorMedio De Computadora

    La principal razn para que las personas aprendan lenguajes de programacin es utilizar lacomputadora como una herramienta para la resolucin de problemas. Dos fases pueden ser

    identificadas en el proceso de resolucin de problemas.

    Fase de resolucin del problema.

    Fase de implementacin (realizacin) en un lenguaje de programacin.

  • 8/21/2019 Algoritmos.pdf by ramses merel sanchez

    9/36

    Algoritmos

    Fase de resolucin del Problema Fase de Implementacin

    Fig. 2.4 Solucin de problemas empleando Computadoras

    2.9.1 Definicin del Problema

    Esta fase est dada por el enunciado del problema, el cual requiere una definicin clara yprecisa.

    Tomar en cuenta que la solucin del problema debe estar en funcin de lo que el problema

    requiera y no en funcin de lo que el programador quiera.

    Definicin del

    problema

    Anlisis del

    problema

    Diseo del

    Algoritmo

    Verificacin del

    Algoritmo

    Codificacin del

    Algoritmo

    Ejecucin delprograma

    Verificacin del

    Programa

    Documentacin

    Mantenimiento

  • 8/21/2019 Algoritmos.pdf by ramses merel sanchez

    10/36

    Tema 2

    Al comenzar a abordar un problema hay que tener en cuenta que para la mayora de elloshay muchas maneras de resolver y pueden existir muchas soluciones, se plantean algunos

    criterios o estrategias generales que se deben tomar en cuenta, las cuales son tiles en el

    anlisis del problema.

    Usar toda la informacin til (no superficial) disponible en el enunciado

    del problema. Hacer explcita las reglas y datos que aparezcan implcitos (en muchos

    problemas numricos se pueden utilizar reglas de la aritmtica o lgebra)

    Profundizar en el problema considerado (emplear algn tipo denotacin).

    Dividir el problema complejo en subproblemas ms simples. que sepueden resolver independientemente y despus combinar sus soluciones.

    Otra forma de abordar el problema consiste en trabajar hacia atrs es

    decir parir de la solucin e intentar llegar al estado inicial.

    El propsito del anlisis del problema es ayudar al programador para llegar a una cierta

    comprensin de la naturaleza del problema. Una buena definicin del problema junto conuna descripcin detallada de las especificaciones de entrada y de salida, son los requisitos

    ms importantes para llegar a una solucin eficaz.

    Fig. 2.5 Anlisis del Problema

    Una vez que se ha comprendido lo que se desea de la computadora, es necesario definir:

    Anlisis delproblema

    Definicin del

    problema

    Especificacin de

    datos de Entrada

    Especificacin de

    datos de Salida

  • 8/21/2019 Algoritmos.pdf by ramses merel sanchez

    11/36

    Algoritmos

    Definicin del problema.

    Calcular la superficie de una circunferencia

    Anlisis del problema

    La entrada a este problema es el radio de la circunferencia y de tipo real.

    La salida de este problema es la superficie que tambin es de tipo real.

    2.9.3 Diseo del AlgoritmoUn computador no tiene capacidad para solucionar problemas ms que cuando se le

    proporciona los sucesivos pasos a realizar. Estos pasos indican las instrucciones a ejecutar

    por la mquina y se denomina algoritmo.

    Las caractersticas de un buen algoritmo son:

    Debe tener un punto particular de inicio.

    Debe ser definido, no debe permitir dobles interpretaciones.

    Debe ser general, es decir, soportar la mayora de las variantes que sepuedan presentar en la definicin del problema.

    Debe ser finito en tamao y tiempo de ejecucin.

    Se pueden utilizar cualquier tcnica de diseo de algoritmos, diseo descendente, divide y

    vencers.

    Normalmente los pasos diseados en un primer esbozo del algoritmo son incompletos eindican solo unos pocos pasos, tras esta primera descripcin estos se amplan en una

    descripcin ms detallada con pasos especficos este proceso se denomina refinamiento del

    algoritmo.

    Ejemplo problema calculo de la superficie de una circunferencia.

    Calcular la superficie de un circulo

  • 8/21/2019 Algoritmos.pdf by ramses merel sanchez

    12/36

    Tema 2

    2.9.4 Verificacin del algoritmo

    Una vez que se ha terminado de escribir un algoritmo es necesario comprobar que realiza

    las tareas para las que ha sido diseado y produce el resultado correcto y esperado.

    El modo ms normal de comprobar un algoritmo es mediante la ejecucin manual (prueba

    de escritorio), usando datos significativos que abarquen todo el posible rango de valores yanotando en una hoja de papel las modificaciones que se producen en las diferentes fases

    hasta la obtencin de los resultados,

    2.9.5 Fase de Implementacin

    Una vez que el algoritmo est diseado, representado grficamente mediante unaherramienta y verificado se debe pasar a la fase de codificacin, traducir el algoritmo a undeterminado lenguaje de programacin que deber ser completada con la ejecucin y

    verificacin de resultado en el computador.

    Diseo del algoritmo

    Diseo Descendente

    Divide y vencers

    Refinamiento por

    pasos

    Herramienta de representacin

    Diagramas de flujo Pseudocdigo

    Diagramas Nassi/Shneiderman-S(Chapin)

    Mtodo Warnier

    Mtodo Jackson

    Mtodo Bertini

    Mtodo Tabourier

  • 8/21/2019 Algoritmos.pdf by ramses merel sanchez

    13/36

    Algoritmos

    2.9.7 Prueba y Depuracin

    Los errores humanos dentro de la programacin de computadoras son muchos y aumentan

    considerablemente con la complejidad del problema. El proceso de identificar y eliminar

    errores, para dar paso a una solucin sin errores se le llama depuracin.

    La depuracin o prueba resulta una tarea tan creativa como el mismo desarrollo de la

    solucin, por ello se debe considerar con el mismo inters y entusiasmo.

    Resulta conveniente observar los siguientes principios al realizar una depuracin, ya que de

    este trabajo depende el xito de nuestra solucin.

    2.9.8 Documentacin

    Es la gua o comunicacin escrita es sus variadas formas, ya sea en enunciados,

    procedimientos, dibujos o diagramas.

    A menudo un programa escrito por una persona, es usado por otra. Por ello ladocumentacin sirve para ayudar a comprender o usar un programa o para facilitar futuras

    modificaciones (mantenimiento).

    La documentacin se divide en tres partes:

    Documentacin Interna

    Documentacin Externa

    Manual del Usuario

    Documentacin Interna: Son los comentarios o mensaje que se aaden al cdigo fuentepara hacer mas claro el entendimiento de un proceso.

    Documentacin Externa: Se define en un documento escrito los siguientes puntos:

    Descripcin del Problema

    Nombre del Autor

  • 8/21/2019 Algoritmos.pdf by ramses merel sanchez

    14/36

    Tema 2

    2.9.9 Mantenimiento

    Se lleva acabo despus de terminado el programa, cuando se detecta que es necesario hacer

    algn cambio, ajuste o complementacin al programa para que siga trabajando de manera

    correcta. Para poder realizar este trabajo se requiere que el programa este correctamentedocumentado.

    2.10 Tecnicas Para La Formulacion De Algoritmos

    Para representar una algoritmo se debe utilizar algn mtodo que permita independizar

    dicho algoritmo del lenguaje de programacin elegido. Ello permitir que un algoritmopueda ser codificado inmediatamente en cualquier lenguaje.

    Las herramientas utilizadas comnmente para disear algoritmos son:

    Pseudocodigo

    Diagrama de Flujo.

    Diagramas Nassi/Shneiderman-S (Chapin)

    Mtodo Warnier

    Mtodo Jackson

    Mtodo Bertini

    Mtodo Tabourier

    2.10.1 Pseudocodigo

    Mezcla de lenguaje de programacin y espaol (o ingles o cualquier otro idioma) que seemplea, dentro de la programacin estructurada, para realizar el diseo de un programa. En

    esencial, el pseudocodigo se puede definir como un lenguaje de especificaciones dealgoritmos.

    Es la representacin narrativa de los pasos que debe seguir un algoritmo para dar solucin a

  • 8/21/2019 Algoritmos.pdf by ramses merel sanchez

    15/36

    Algoritmos

    InicioLeer (lado)Alado * lado

    Imprimir( A)

    Fin

    2.10.1.1 Acciones simples

    Las acciones simples, tambin denominadas instrucciones primitivas, son aquellas que elprocesador ejecuta de forma inmediata.

    Asignacin Almacena en una variable el resultado de evaluar unaexpresin

    Variableexpresin

    EntradaToma un dato del dispositivo de entrada

    Leer (Variable)

    SalidaDevuelve un dato al dispositivo de salida

    Imprimir (variable)

    2.10.1.2 Sentencias de control

    Tambin se llaman sentencias estructuradas y controlan el flujo de ejecucin de otras

    instrucciones.

    Secuencia.Se ejecutan instrucciones de I1,I2,...,In en el mismo orden enel que aparece

    I1,I2,...,I3

    Al i E i i l di i b l

  • 8/21/2019 Algoritmos.pdf by ramses merel sanchez

    16/36

    Tema 2

    Opcin Expresin deV1 Hacer I1,I2,...,InV2 Hacer J1,J2,...,In

    V3 Hacer K1,K2,...,Kn

    ...

    VN Hacer L1,L2,...,LnOtro Hacer M1,M2,...,Mn

    Fin_opcin

    Repeticin o bucles. En un bucle hay una o varias acciones que se hande repetir y una condicin que determina el nmero de veces que se

    repiten las instrucciones.

    Mientras

    Mientras condicin hacerI1,I2,...,In

    Fin_mientras

    Repetir

    RepetirI1,I2,...,In

    Hasta condicin

    ParaPara Variable de Valinc a ValFin hacer

    I1,I2,...,In

    Fin_para

    2.10.2 Diagrama De Flujo

    Un diagrama de flujo es la representacin grfica de un algoritmo. Tambin se puede decir

  • 8/21/2019 Algoritmos.pdf by ramses merel sanchez

    17/36

    Algoritmos

    2.10.2.1 CaractersticasToda representacin grfica, de cualquier tipo sea, debe cumplir las siguientes cualidades.

    Sencillez. Un mtodo grfico de diseo de algoritmo debe permitir laconstruccin de estos de manera fcil y sencilla

    Claridad. Cuando un algoritmo es representado por un mtodo grfico

    necesita ser interpretado por otra persona distinta de la que lo dise,debe estar lo suficientemente claro para su un fcil reconocimiento de

    todos los elementos.

    Normalizacin. Tanto los diseadores de programas como los usuariosque necesitan la documentacin de estos deben utilizar las mismasnormas de documentacin.

    Flexibilidad. Todo mtodo grfico de representacin debe permitir, singrandes dificultades, posteriores modificaciones de algunas partes de unalgoritmo y la insercin de alguna nueva.

    2.10.2.2 Descripcin de los bloques utilizados

    Los smbolos utilizados han sido normalizados por el instituto norteamericano denormalizacin (ANSI).

    Terminal. Indica el inicio y el final de nuestro

    diagrama de flujo.

    Indica la entrada y salida de datos.

  • 8/21/2019 Algoritmos.pdf by ramses merel sanchez

    18/36

    Tema 2

    Smbolo de proceso y nos indica la asignacinde un valor en la memoria y/o la ejecucin de

    una operacin aritmtica.

    Smbolo de decisin indica la realizacin de

    una comparacin de valores. No si

    Subrprogramas

    Conector dentro de pagina. Representa lacontinuidad del diagrama dentro de la misma

    pagina.

    Conector de pagina. Representa la continuidaddel diagrama en otra pagina.

    Lneas de flujo o direccin. Indican la

    secuencia en que se realizan las operaciones.

    Smbolo de decisin , con opciones mltiples

    comentarios

  • 8/21/2019 Algoritmos.pdf by ramses merel sanchez

    19/36

    Algoritmos

    Ciclo repetitivo Mientras NO SI

    Ciclo repetitivo Repetir

    No si

    Diferencia entre organigrama y ordinograma (D.F.)

    Organigrama diagramas de flujo del sistema.

  • 8/21/2019 Algoritmos.pdf by ramses merel sanchez

    20/36

    Tema 2

    Ordinogramasdiagramas de flujo del programa

    2.10.2.3 Recomendaciones para el diseo de Diagramasde Flujo

    Se deben se usar solamente lneas de flujo horizontales y/o verticales.

    Se debe evitar el cruce de lneas utilizando los conectores.Se deben usar conectores solo cuando sea necesario.

    No deben quedar lneas de flujo sin conectar.Se deben trazar los smbolos de manera que se puedan leer de arriba hacia abajo y de

    izquierda a derecha.

    Todo texto escrito dentro de un smbolo deber ser escrito claramente, evitando el uso de

    muchas palabras.

    2.10.2.4 Formato de todo tipo de Diagramas de Flujo

    Todo diagrama de flujo, en general, consta de los siguientes pasos.

  • 8/21/2019 Algoritmos.pdf by ramses merel sanchez

    21/36

    Algoritmos

    2.10.2.5 Ventajas De Utilizar Un Pseudocodigo A UnDiagrama De Flujo

    Ocupa menos espacio en una hoja de papelPermite representar en forma fcil operaciones repetitivas complejas

    Es muy fcil pasar de pseudocodigo a un programa en algn lenguaje de programacin.

    Si se siguen las reglas se puede observar claramente los niveles que tiene cada operacin.

    2.10.3 Diagramas Estructurados (Nassi-Schneiderman)

    El diagrama estructurado N-S tambin conocido como diagrama de chapin es como un

    diagrama de flujo en el que se omiten las flechas de unin y las cajas son contiguas. Lasacciones sucesivas se pueden escribir en cajas sucesivas y como en los diagramas de flujo,

    se pueden escribir diferentes acciones en una caja. Un algoritmo se represente en la sig.

    forma:

    2.10.3.1 Acciones simples

    Las acciones simples, tambin denominadas instrucciones primitivas, son aquellas que el

    procesador ejecuta de forma inmediata.

    Asignacin Almacena en una variable el resultado de evaluar unaexpresin

    EntradaToma un dato del dispositivo de entrada

    A = a+3

  • 8/21/2019 Algoritmos.pdf by ramses merel sanchez

    22/36

    Tema 2

    2.10.3.2 Sentencias de controlTambin se llaman sentencias estructuradas y controlan el flujo de ejecucin de otras

    instrucciones.

    Secuencia.Se ejecutan instrucciones de I1,I2,...,In en el mismo orden en

    el que aparece

    Alternativa.En esta instruccin la condicin es booleana

    Repeticin o bucles. En un bucle hay una o varias acciones que se hande repetir y una condicin que determina el nmero de veces que se

    repiten las instrucciones.

    Mientras

    I1

    I2

    ...

    IN

    True False

    condicion

    1 2 3 4 5 86 7

    Condicion

  • 8/21/2019 Algoritmos.pdf by ramses merel sanchez

    23/36

    Algoritmos

    Repetir

    Para

    2.11 Otras Herramientas De La Programacin

    Estructurada

    Tambin existen otros mtodos de representar los algoritmos y son los siguientes.

    2.11.1 Mtodo Warnier

    El mtodo se basa en el empleo de llaves de distintos tamaos que se relacionan entre s.

    La representacin del algoritmo se basa en los siguientes puntos.

    U programa se representa por un solo diagrama en la cual se englobant d l i t i t l d l d h d

    repetir

    Para

  • 8/21/2019 Algoritmos.pdf by ramses merel sanchez

    24/36

    Tema 2

    Asignacin Almacena en una variable el resultado de evaluar unaexpresin

    Variableexpresin

    EntradaToma un dato del dispositivo de entrada

    Leer (Variable)

    SalidaDevuelve un dato al dispositivo de salida

    Imprimir (variable)

    2.11.1.3 Sentencias de control

    Tambin se llaman sentencias estructuradas y controlan el flujo de ejecucin de otras

    instrucciones.

    Secuencia.Se ejecutan instrucciones de I1,I2,...,In en el mismo orden enel que aparece

    I1

    I2...

    I3

    Alternativa.En esta instruccin la condicin es booleana

    Si I1Condicin

    No I2

    Expresin = V1 A

  • 8/21/2019 Algoritmos.pdf by ramses merel sanchez

    25/36

    Algoritmos

    Repeticin o bucles. En un bucle hay una o varias acciones que se hande repetir y una condicin que determina el nmero de veces que serepiten las instrucciones.

    Mientras

    Proceso A

    Mientras condicin

    Repetir

    Proceso A

    Hasta condicin

    Para

    Proceso A

    N veces

    2.11.2 Mtodo Jackson

    Se trata de un mtodo de representacin de programa en forma de rbol denominadodiagrama arborescente de Jackson, un diagrama de Jackson consta de :

    Definicin detallada de los datos de entrada y salida incluyendo losarchivos lgicos utilizados.

    Representacin del proceso o algoritmo.

  • 8/21/2019 Algoritmos.pdf by ramses merel sanchez

    26/36

    Tema 2

    2.11.2.1 Acciones simplesLas acciones simples, tambin denominadas instrucciones primitivas, son aquellas que el

    procesador ejecuta de forma inmediata.

    Asignacin Almacena en una variable el resultado de evaluar una

    expresin

    Variableexpresin

    EntradaToma un dato del dispositivo de entrada

    Leer (Variable)

    SalidaDevuelve un dato al dispositivo de salida

    Imprimir (variable)

    2.11.2.2 Sentencias de control

    Tambin se llaman sentencias estructuradas y controlan el flujo de ejecucin de otrasinstrucciones.

    Secuencia.Se ejecutan instrucciones de I1,I2,...,In en el mismo orden enel que aparece

    Al i E i i l di i b l

    Proceso

    A B C

  • 8/21/2019 Algoritmos.pdf by ramses merel sanchez

    27/36

    Algoritmos

    Repeticin o bucles. En un bucle hay una o varias acciones que se hande repetir y una condicin que determina el nmero de veces que serepiten las instrucciones.

    MientrasEn el bloque condicin se escribe mientras condicin

    RepetirEn el bloque condicin se escribe hasta condicin

    Para

    En el bloque condicin se escribe N veces

    2.11.3 Mtodo Bertini

    Al igual que Jackson, la representacin de programas es en forma de rbol denominado

    diagrama arborescente de Bertini. Un diagrama de Bertini consta de.

    Expresin

    = V1 O

    A

    = V2 O

    B

    = V3 O

    C

    = VN O

    D

    Proceso

    *

    Condicin

    A

  • 8/21/2019 Algoritmos.pdf by ramses merel sanchez

    28/36

    Tema 2

    La lectura del rbol se realiza en postorden

    Situarse en la raz (R)

    Recorrer el subarbol Derecho (D)

    Recorrer el subarbol Izquierdo (I)

    2.11.3.1 Acciones simples

    Las acciones simples, tambin denominadas instrucciones primitivas, son aquellas que el

    procesador ejecuta de forma inmediata.

    Asignacin Almacena en una variable el resultado de evaluar unaexpresin

    Variableexpresin

    EntradaToma un dato del dispositivo de entrada

    Leer (Variable)

    SalidaDevuelve un dato al dispositivo de salida

    Imprimir (variable)

    2.11.3.2 Sentencias de control

    Tambin se llaman sentencias estructuradas y controlan el flujo de ejecucin de otrasinstrucciones.

  • 8/21/2019 Algoritmos.pdf by ramses merel sanchez

    29/36

    Algoritmos

    Alternativa.En esta instruccin la condicin es booleana

    COND COND

    A B

    EXPRESION

    =V1 =V2 =V3 =OTROS

    A B C D

    Repeticin o bucles. En un bucle hay una o varias acciones que se hande repetir y una condicin que determina el nmero de veces que se

    repiten las instrucciones.

    CONDICION

    A

  • 8/21/2019 Algoritmos.pdf by ramses merel sanchez

    30/36

    Tema 2

    Para

    En el bloque condicin se escribe N veces

    2.11.4 Mtodo Tabourier

    Se trata de un mtodo de representacin de programa en forma de rbol denominado

    diagrama arborescente de Tabourier, un diagrama de Tabourier consta de :

    Definicin detallada de los datos de entrada y salida incluyendo losarchivos lgicos utilizados.

    Representacin del proceso o algoritmo.

    La simbologa utilizada es la siguiente

    La lectura del rbol se realiza en preorden

    Situarse en la raz (R)

    Recorrer el subarbol izquierdo (I)

    Recorrer el subarbol derecho (D)

    2.11.4.1 Acciones simples

    Las acciones simples, tambin denominadas instrucciones primitivas, son aquellas que el

    procesador ejecuta de forma inmediata.

    Asignacin Almacena en una variable el resultado de evaluar unaexpresin

  • 8/21/2019 Algoritmos.pdf by ramses merel sanchez

    31/36

    Algoritmos

    2.11.4.2 Sentencias de controlTambin se llaman sentencias estructuradas y controlan el flujo de ejecucin de otras

    instrucciones.

    Secuencia.Se ejecutan instrucciones de I1,I2,...,In en el mismo orden enel que aparece

    Alternativa.En esta instruccin la condicin es booleana

    Condi.

    Expresin

    Boque

    A B C

    Si entonces Sino

    A B

    En caso de

    = V1

    A

    = V2

    B

    = V3

    C

    = VN

    D

  • 8/21/2019 Algoritmos.pdf by ramses merel sanchez

    32/36

    Tema 2

    Mientras

    Condi.

    Repetir

    Condi.

    Para

    Condi.

    2.12 CONVERSIN DE ALGORITMOS

    Mientras

    A

    Repetir

    A

    Para

    A

    Algoritmos

  • 8/21/2019 Algoritmos.pdf by ramses merel sanchez

    33/36

    g

    Dpl. Ing. Carlos Balderrama Vsquez 75

    Instrucciones,acciones

    Pseudocodigo Diagrama de flujo Diagrama N-S

    Estructura del

    Algoritmo

    Algoritmo Identificador

    {Seccin de declaracin devariables}

    inicio

    ....

    fin

    Inicio

    Fin

    Declaracin de

    variables

    Descripcin de variables y tipos en

    la tabla de variables

    Se escriben las variables y tipos

    en la tabla de variables junto con

    el diagrama de flujo

    Escritura de una tabla de variables

    Asignacin VariableExpresin VariableExpresin VariableExpresin

    Entrada de datos Leer(lista de variables)

    Leer

    (lista de variables)

    Leer

    (lista de variables)

    Salida de datos Escribir(lista de variables)

    Escribir

    (lista de variables)

    Escribir

    (lista de variables)

    Algoritmo Identificador

    Fin

    Tema 2

  • 8/21/2019 Algoritmos.pdf by ramses merel sanchez

    34/36

    76 Metodologa de la Programacin I

    Instruccincompuesta

    S1

    S2S3

    ...

    SN

    S1

    S2

    ...

    Sn

    S1

    S2

    ...

    Sn

    Comentarios

    { FASE DESCRIPTIVA DE

    COMENTARIO}

    Selectiva alternativa

    simple Sicondicin entoncesS1

    S2

    ...S3

    Finsi

    Selectiva alternativa

    doble Sicondicin entoncesS1

    S2

    ...S3

    SinoS1S2

    ...

    S3

    Finsi

    True False

    condicion

    True False

    condicion

    Algoritmos

  • 8/21/2019 Algoritmos.pdf by ramses merel sanchez

    35/36

    Dpl. Ing. Carlos Balderrama Vsquez 77

    Selectiva alternativamltiple Segn_sea expresin hacer

    E1 : S1,S2,...Sn

    E2 : S1,S2,...SnE3 : S1,S2,...Sn

    .....

    EN : S1,S2,...Sn

    En_otro_casoEN : S1,S2,...Sn

    Fin_segn_sea

    Repetitiva mientrasMientras condicin

    S1

    S2...

    S3

    Fin_Mientras

    no

    Si

    Mientras

    Repetitiva repetir

    RepetirS1

    S2

    ...S3

    Hasta condicinNo Si

    Repetir

    1 2 3 4 5 86 7

    Condicion

    Tema 2

  • 8/21/2019 Algoritmos.pdf by ramses merel sanchez

    36/36

    78 Metodologa de la Programacin I

    Repetitiva para(desde) Para Var de ValInc Hasta ValFin

    [incrementox] hacerS1S2

    ...

    Sn

    Fin_Para

    Para V de

    inicfin hacer

    V

    Para