unidad_ap_2

Upload: eric-leon

Post on 04-Apr-2018

216 views

Category:

Documents


0 download

TRANSCRIPT

  • 7/29/2019 Unidad_AP_2

    1/83

    INSTITUTO TECNOLGICO DE PACHUCA

    Unidad 2

    ALGORITMOS

    1

  • 7/29/2019 Unidad_AP_2

    2/83

    INSTITUTO TECNOLGICO DE PACHUCA

    INSTITUTO TECNOLGICO DE PACHUCA

    Unidad 2 Algoritmos

    2.1 Anlisis del problema.

    2.2 Representacin de algoritmos.

    2.3 Diseo de algoritmos aplicados a problemas.

    2.4 Diseo de algoritmos de funciones.

    2

  • 7/29/2019 Unidad_AP_2

    3/83

    INSTITUTO TECNOLGICO DE PACHUCA

    INSTITUTO TECNOLGICO DE PACHUCA

    Introduccin

    Durante el transcurso de nuestra vida nosenfrentamos a diversos problemas. Algunosde ellos podemos solucionarlos fcilmente,mientras que otros se complican de tal forma

    que nos afectan de una manera muyprofunda.

    3

  • 7/29/2019 Unidad_AP_2

    4/83

    INSTITUTO TECNOLGICO DE PACHUCA

    INSTITUTO TECNOLGICO DE PACHUCA

    Algunos problemas, por su naturaleza, puedenser resueltos utilizando una computadora.Estos problemas generalmente son de tipoestructurado, es decir, tienen una solucin

    determinada y pueden ser desde muysencillos hasta muy complejos.

    4

  • 7/29/2019 Unidad_AP_2

    5/83

    INSTITUTO TECNOLGICO DE PACHUCA

    INSTITUTO TECNOLGICO DE PACHUCA

    Para resolver problemas estructuradosutilizando la computadora es importante unmtodo. Este mtodo debe ser fcil decomprender y nos debe guiar paso a paso

    hasta la solucin del problema.

    5

  • 7/29/2019 Unidad_AP_2

    6/83

    INSTITUTO TECNOLGICO DE PACHUCA

    INSTITUTO TECNOLGICO DE PACHUCA

    El mtodo propuesto y utilizado en estaunidad es el Mtodo de las 6'D, que estcompuesto por 6 etapas, cada una de lascuales consta de una serie de complejidad del

    problema y las herramientas que se utilicenpara si solucin.

    6

  • 7/29/2019 Unidad_AP_2

    7/83

    INSTITUTO TECNOLGICO DE PACHUCAINSTITUTO TECNOLGICO DE PACHUCA

    Con la finalidad de recordar el mtodo, se ha

    definido que el nombre de cada una de las etapas delmtodo comience con la misma letra, la letra "D". Esdecir, el mtodo tiene seis etapas y el nombre decada una de las etapas comienza con la letra "D", demodo que este se pueda recordar como el Mtodode las 6'D.

    7

  • 7/29/2019 Unidad_AP_2

    8/83

    INSTITUTO TECNOLGICO DE PACHUCAINSTITUTO TECNOLGICO DE PACHUCA 8

  • 7/29/2019 Unidad_AP_2

    9/83

    INSTITUTO TECNOLGICO DE PACHUCAINSTITUTO TECNOLGICO DE PACHUCA

    Etapa 1:

    En esta etapa, en primer lugar, es necesario

    identificar cual es el problema que se desea resolver.Esto que parece algo sumamente sencillo, muchasveces resulta una tarea agotadora ya quegeneralmente existen muchas opiniones de cual es elproblema central. Identificarlo es una de las tareasmas importantes que los analistas deben de afrontar.

    9

  • 7/29/2019 Unidad_AP_2

    10/83

    INSTITUTO TECNOLGICO DE PACHUCAINSTITUTO TECNOLGICO DE PACHUCA

    Identificando el problema es necesario poder

    comprenderlo en su totalidad, es decir comprenderqu es exactamente lo que se desea que se resuelva.Finalmente se deber escribir un enunciado claro,concreto y conciso del problema a resolver.

    10

  • 7/29/2019 Unidad_AP_2

    11/83

    INSTITUTO TECNOLGICO DE PACHUCAINSTITUTO TECNOLGICO DE PACHUCA

    Pasos:

    Identificacin del problema.

    Descripcin general del problema.

    Enunciado claro y preciso del problema.

    El resultado de esta etapa es el ENUNCIADO claro delproblema que se desea solucionar.

    11

  • 7/29/2019 Unidad_AP_2

    12/83

    INSTITUTO TECNOLGICO DE PACHUCAINSTITUTO TECNOLGICO DE PACHUCA

    Etapa 2:

    En esta etapa, es necesario estudiar a fondo el

    problema para poder solucionarlo, saberexactamente en qu consiste y poderdescomponerlo en cada una de sus partes parafacilitar su compresin y posterior solucin. Esta esuna regla que siempre deber ser aplicada se utiliceo no una computadora en la solucin de unproblema.

    12

  • 7/29/2019 Unidad_AP_2

    13/83

    INSTITUTO TECNOLGICO DE PACHUCAINSTITUTO TECNOLGICO DE PACHUCA

    Una vez entendido el problema, se est encondiciones de estudiarlo a fondo y planteardiversas alternativas que permitan solucionarel problema, para finalmente, seleccionar la

    alternativa ms adecuada.

    13

  • 7/29/2019 Unidad_AP_2

    14/83

    INSTITUTO TECNOLGICO DE PACHUCAINSTITUTO TECNOLGICO DE PACHUCA

    PASOS:

    Definir el resultado deseado. Determinar los datos que se deben ingresar o

    generar para obtener el resultado deseado.

    Determinar la forma en que los datos sernprocesados para transformarlos en informacin.

    El resultado obtenido en esta etapa son las ESPECIFICACIONES de loque se debe hacer para solucionar el problema.

    14

  • 7/29/2019 Unidad_AP_2

    15/83

    INSTITUTO TECNOLGICO DE PACHUCAINSTITUTO TECNOLGICO DE PACHUCA

    Etapa 3:

    Definida la solucin, se procede a disear lalgica modelando y desarrollando algoritmos.Para el modelado de la solucin del problemase utiliza el Lenguaje Unificado de Modelado

    (Unified Modeling Language, UML), el cual esuna herramienta usada para describir clases,objetos y sus relaciones.

    15

  • 7/29/2019 Unidad_AP_2

    16/83

    INSTITUTO TECNOLGICO DE PACHUCAINSTITUTO TECNOLGICO DE PACHUCA

    Para el desarrollo del algoritmo se utilizaPseudocdigo o Diagramas de Flujo (DF), loscuales son herramientas utilizadas paradisear los algoritmos de los diferentes

    mtodos de una clase.

    16

  • 7/29/2019 Unidad_AP_2

    17/83

    INSTITUTO TECNOLGICO DE PACHUCAINSTITUTO TECNOLGICO DE PACHUCA

    Finalizando el desarrollo de los algoritmos es

    necesario verificar se se ha incluido solucionespara todas las formas en que se presente elproblema. A este tipo de prueba se le

    denomina "Prueba de escritorio".

    17

  • 7/29/2019 Unidad_AP_2

    18/83

    INSTITUTO TECNOLGICO DE PACHUCAINSTITUTO TECNOLGICO DE PACHUCA

    PASOS:

    Definir un nombre para el proyecto. Definicin de diagramas, relaciones y clases.

    Desarrollo de algoritmos.

    El resultado obtenido en esta etapa son los DIAGRAMAS y losALGORITMOS que especifican cmo se debe hacer parasolucionar el problema.

    18

  • 7/29/2019 Unidad_AP_2

    19/83

    INSTITUTO TECNOLGICO DE PACHUCAINSTITUTO TECNOLGICO DE PACHUCA

    Etapa 4 :

    Una vez previstas todas las posibilidades y

    alternativas que pueden presentarse y quepasen sin inconvenientes por la clase yalgoritmos, se podr proceder a la codificacin

    del problema en algn lenguaje deprogramacin.

    19

  • 7/29/2019 Unidad_AP_2

    20/83

    INSTITUTO TECNOLGICO DE PACHUCAINSTITUTO TECNOLGICO DE PACHUCA

    La codificacin involucra traducir los diagramas, las

    especificaciones de las clases (expresadas ennotacin UML), y los pasos del algoritmo de cadamtodo (Expresado en Diagrama de Flujo opseudocdigo), en sentencias de un lenguaje deprogramacin determinado. Estas sentencias sonalmacenadas en un proyecto (o archivo) lgico, yconstituyen lo que la computadora podr ejecutar.

    20

  • 7/29/2019 Unidad_AP_2

    21/83

    INSTITUTO TECNOLGICO DE PACHUCAINSTITUTO TECNOLGICO DE PACHUCA

    PASOS:

    Codificar el proyecto.

    Desarrollar comentarios internos en los programasde computadoras.

    Desarrollar copias de seguridad de los programas

    de computadoras.El resultado obtenido en esta etapa son los PROGRAMAS y/oCLASES, codificados en una lenguaje de programacin, quepermiten solucionar el problema.

    21

  • 7/29/2019 Unidad_AP_2

    22/83

    INSTITUTO TECNOLGICO DE PACHUCAINSTITUTO TECNOLGICO DE PACHUCA

    Etapa 5 :

    Luego que se codifiquen los programas y/o

    clases, deben ser probados mediante laejecucin de los mismos (esto es conocidocomo corrida del programa). Al realizarse sta,

    pueden surgir diferentes tipos de errores,siendo los errores de lgica y sintaxis los mscomunes.

    22

  • 7/29/2019 Unidad_AP_2

    23/83

    INSTITUTO TECNOLGICO DE PACHUCAINSTITUTO TECNOLGICO DE PACHUCA

    Hay que corregir el programa; anular,

    modificar o crear nuevas sentencias, volver aprobar el programa y continuar con lacorreccin y pruebas hasta conseguir el

    resultado deseado.

    23

  • 7/29/2019 Unidad_AP_2

    24/83

    INSTITUTO TECNOLGICO DE PACHUCAINSTITUTO TECNOLGICO DE PACHUCA

    PASOS:

    Realizar la depuracin y verificar la correctaescritura de los programas.

    Realizar pruebas de sintaxis.

    Realizar pruebas de lgica.El resultado obtenido en esta etapa son las PRUEBAS queregistran el adecuado funcionamiento de la solucin delproblema.

    24

  • 7/29/2019 Unidad_AP_2

    25/83

    INSTITUTO TECNOLGICO DE PACHUCAINSTITUTO TECNOLGICO DE PACHUCA

    Etapa 6:

    En esta etapa se recopila toda la

    documentacin generada en las etapasanteriores, la cual va servir como base para laelaboracin del manual tcnico.

    25

  • 7/29/2019 Unidad_AP_2

    26/83

    INSTITUTO TECNOLGICO DE PACHUCAINSTITUTO TECNOLGICO DE PACHUCA

    Dedicarle tiempo a esta etapa nos ayudar a

    desarrollar buenos hbitos, los cuales sernnecesarios cuando se desarrolle software enforma profesional.

    26

  • 7/29/2019 Unidad_AP_2

    27/83

    INSTITUTO TECNOLGICO DE PACHUCAINSTITUTO TECNOLGICO DE PACHUCA

    El manual tcnico debe incluir como mnimo:

    Descripcin del problema.

    Resultados esperados y datos necesarios para generardichos resultados.

    Diagramas UML, DF y/o Pseudocdigo.

    Pruebas desarrolladas.

    Listado de programas con comentarios internos

    27

  • 7/29/2019 Unidad_AP_2

    28/83

    INSTITUTO TECNOLGICO DE PACHUCAINSTITUTO TECNOLGICO DE PACHUCA

    PASOS:

    Recopilar el material generado en cada una de lasfases anteriores.

    Generar el manual del programa.

    Generar el manual del usuario.El resultado obtenido en esta etapa son los MANUALES quepermiten un adecuado manejo de la solucin desarrollada.

    28

  • 7/29/2019 Unidad_AP_2

    29/83

    INSTITUTO TECNOLGICO DE PACHUCAINSTITUTO TECNOLGICO DE PACHUCA

    2.1 Anlisis de problemas

    La algoritmia es uno de los pilares de la

    programacin y su relevancia se muestran eldesarrollo de cualquier aplicacin, ms all dela mera construccin de programas.

    29

  • 7/29/2019 Unidad_AP_2

    30/83

    INSTITUTO TECNOLGICO DE PACHUCAINSTITUTO TECNOLGICO DE PACHUCA

    La importancia de un algoritmo radica en

    mostrar la manera de llevar a cabo procesos yresolver mecnicamente problemasmatemticos o de otro tipo. Al igual que las

    funciones matemticas, los algoritmos recibenuna entrada y la transforman en una salida,comportndose como una caja negra.

    30

  • 7/29/2019 Unidad_AP_2

    31/83

    INSTITUTO TECNOLGICO DE PACHUCAINSTITUTO TECNOLGICO DE PACHUCA

    Sin embargo, no toda caja negra que convierta

    una entrada en una salida se puede considerarun algoritmo: para que un algoritmo puedaser considerado como tal, debe ser una

    secuencia ordenada, finita y definida(formalizacin de su comportamiento) deinstrucciones.

    31

  • 7/29/2019 Unidad_AP_2

    32/83

    INSTITUTO TECNOLGICO DE PACHUCAINSTITUTO TECNOLGICO DE PACHUCA

    El proceso de desarrollo de un algoritmo requiere :

    Anlisis de proceso, implica que hace el programa, y

    Diseo, implica como se hace o realiza la tarea (problema)solicitado

    En el diseo:

    El todo es la sumatoria de las partes.

    Divide el todo en varias partes.

    32

  • 7/29/2019 Unidad_AP_2

    33/83

    INSTITUTO TECNOLGICO DE PACHUCAINSTITUTO TECNOLGICO DE PACHUCA

    En la resolucin de un problema complejo, se

    divide en varios sub problemas yseguidamente se vuelven a dividir los subproblemas en otros mas sencillos, hasta que

    puedan implementarse en el computador.

    33

  • 7/29/2019 Unidad_AP_2

    34/83

    INSTITUTO TECNOLGICO DE PACHUCAINSTITUTO TECNOLGICO DE PACHUCA

    Esta caracterstica define lo que se entiende como

    diseo descendente( Top-Down / Norte-Sur ) odiseo modular.

    El proceso de ruptura del problema en cada etapa sellama refinamiento sucesivo.

    Cada problema se resuelve mediante un modulo(subprograma) y tiene un solo punto de entrada y unsolo punto de salida.

    34

  • 7/29/2019 Unidad_AP_2

    35/83

    INSTITUTO TECNOLGICO DE PACHUCAINSTITUTO TECNOLGICO DE PACHUCA

    Un programa bien diseado consta de un

    programa principal (modulo de nivel ms alto)que llama a subprogramas (mdulos de nivelmas bajo), que a su vez pueden llamar otros

    sub programas.

    35

  • 7/29/2019 Unidad_AP_2

    36/83

    INSTITUTO TECNOLGICO DE PACHUCAINSTITUTO TECNOLGICO DE PACHUCA

    Los programas que se estructuran de esta

    forma, se dicen que tienen diseo modular yel mtodo de romper el programa en modospequeos se llama programacin modular.

    36

  • 7/29/2019 Unidad_AP_2

    37/83

    INSTITUTO TECNOLGICO DE PACHUCAINSTITUTO TECNOLGICO DE PACHUCA

    Los mdulos pueden ser planificados,

    codificados, compilados y depuradosindependientemente pueden serintercambiados entre s.

    37

  • 7/29/2019 Unidad_AP_2

    38/83

    INSTITUTO TECNOLGICO DE PACHUCAINSTITUTO TECNOLGICO DE PACHUCA

    Este proceso implica la ejecucin de los

    siguientes pasos:1.- Programar un modulo.

    2.- Comprobar un modulo.

    3.- Depurar el modulo.4.- Combinar el modulo con mdulos anteriores.

    38

  • 7/29/2019 Unidad_AP_2

    39/83

    INSTITUTO TECNOLGICO DE PACHUCAINSTITUTO TECNOLGICO DE PACHUCA

    Este proceso convierte el resultado del anlisis

    del problema en un diseo modular conrefinamientos sucesivos que permiten unatraduccin a un lenguaje que se denomina

    diseo del algoritmo.

    39

  • 7/29/2019 Unidad_AP_2

    40/83

    INSTITUTO TECNOLGICO DE PACHUCAINSTITUTO TECNOLGICO DE PACHUCA

    2.1 Representacin de algoritmos

    Elementos y reglas de la representacin grfica

    de los algoritmos El programador de computadoras es una persona

    que resuelve problemas. Es por ello que, para

    llegar a ser un programador eficaz, se necesitaaprender a resolver problemas de un modoriguroso y sistemtico.

    40

  • 7/29/2019 Unidad_AP_2

    41/83

    INSTITUTO TECNOLGICO DE PACHUCAINSTITUTO TECNOLGICO DE PACHUCA

    El eje central de la metodologa para resolver

    estos problemas es el algoritmo. Un algoritmoes un mtodo para resolver un problema.

    41

  • 7/29/2019 Unidad_AP_2

    42/83

    INSTITUTO TECNOLGICO DE PACHUCAINSTITUTO TECNOLGICO DE PACHUCA

    La palabra algoritmo proviene de Mohammed al-

    KhoWrizmi, matemtico persa que vivi durante elsiglo IX y alcanz gran reputacin por el enunciadode las reglas paso a paso para sumar, restar,multiplicar y dividir nmeros decimales. La

    traduccin al latn del apellido en la palabraalgorismus deriv posteriormente en algoritmo.

    42

  • 7/29/2019 Unidad_AP_2

    43/83

    INSTITUTO TECNOLGICO DE PACHUCAINSTITUTO TECNOLGICO DE PACHUCA

    La resolucin de un problema exige el diseo

    de un algoritmo que resuelva el problema,como lo muestra la siguiente figura:

    43

  • 7/29/2019 Unidad_AP_2

    44/83

    INSTITUTO TECNOLGICO DE PACHUCAINSTITUTO TECNOLGICO DE PACHUCA 44

  • 7/29/2019 Unidad_AP_2

    45/83

    INSTITUTO TECNOLGICO DE PACHUCAINSTITUTO TECNOLGICO DE PACHUCA

    Pasos para la resolucin de un problema

    1.- Diseo del algoritmo que describe la secuencia ordenadade pasos -sin ambigedades- que conducen a la solucin deun problema dado.(Anlisis del problema y desarrollo delalgoritmo).

    2.- Expresar el algoritmo como un programa en un lenguajeadecuado. (Fase de codificacin).

    3.- Ejecucin y validacin del programa por la computadora.

    45

  • 7/29/2019 Unidad_AP_2

    46/83

    INSTITUTO TECNOLGICO DE PACHUCAINSTITUTO TECNOLGICO DE PACHUCA

    Caractersticas de los algoritmos , un algoritmo debe:

    1. Ser preciso e indicar el orden de realizacin de cada paso.

    2. Estar definido. Si se sigue un algoritmo dos veces, se debeobtener el mismo resultado cada vez.

    3. Ser finito. Si se sigue un algoritmo, se debe terminar en algnmomento; o sea, debe tener un nmero finito de pasos.

    46

  • 7/29/2019 Unidad_AP_2

    47/83

    INSTITUTO TECNOLGICO DE PACHUCAINSTITUTO TECNOLGICO DE PACHUCA

    El cientfico de computacin Donald Knuth

    ofreci una lista de cinco propiedades, queson ampliamente aceptadas como requisitospara un algoritmo:

    47

  • 7/29/2019 Unidad_AP_2

    48/83

    INSTITUTO TECNOLGICO DE PACHUCAINSTITUTO TECNOLGICO DE PACHUCA

    1. Carcter finito. "Un algoritmo siempre debe

    terminar despus de un nmero finito de pasos". 2. Precisin. "Cada paso de un algoritmo debe

    estar precisamente definido; las operaciones a

    llevar a cabo deben ser especificadas de manerarigurosa y no ambigua para cada caso".

    48

  • 7/29/2019 Unidad_AP_2

    49/83

    INSTITUTO TECNOLGICO DE PACHUCAINSTITUTO TECNOLGICO DE PACHUCA

    3. Entrada. "Un algoritmo tiene cero o ms entradas:

    cantidades que le son dadas antes de que elalgoritmo comience, o dinmicamente mientras elalgoritmo corre. Estas entradas son tomadas deconjuntos especficos de objetos".

    4. Salida. "Un algoritmo tiene una o ms salidas:cantidades que tienen una relacin especfica con lasentradas".

    49

  • 7/29/2019 Unidad_AP_2

    50/83

    INSTITUTO TECNOLGICO DE PACHUCAINSTITUTO TECNOLGICO DE PACHUCA

    5. Eficacia. "Tambin se espera que un algoritmo

    sea eficaz, en el sentido de que todas lasoperaciones a realizar en un algoritmo deben sersuficientemente bsicas como para que en

    principio puedan ser hechas de manera exacta yen un tiempo finito por un hombre usando lpiz ypapel".

    50

  • 7/29/2019 Unidad_AP_2

    51/83

    INSTITUTO TECNOLGICO DE PACHUCAINSTITUTO TECNOLGICO DE PACHUCA

    Knuth admite que, aunque su descripcin

    pueda ser intuitivamente clara, carece de rigorformal, puesto que no est exactamente claroqu significa "precisamente definido", "de

    manera rigurosa y no ambigua", o"suficientemente bsicas", y assucesivamente..

    51

  • 7/29/2019 Unidad_AP_2

    52/83

    INSTITUTO TECNOLGICO DE PACHUCAINSTITUTO TECNOLGICO DE PACHUCA

    A partir del carcter finito y de la salida se

    deduce que ante una misma situacin inicial(o valores de entrada) un algoritmo debeproporcionar siempre el mismo resultado (o

    salida), con excepcin de los algoritmosprobabilistas.

    52

  • 7/29/2019 Unidad_AP_2

    53/83

    INSTITUTO TECNOLGICO DE PACHUCAINSTITUTO TECNOLGICO DE PACHUCA

    Se denomina diseo del algoritmo al proceso

    que convierte los resultados del anlisis delproblema en un diseo modular conrefinamientos sucesivos que permitan una

    posterior traduccin a un lenguaje.

    53

  • 7/29/2019 Unidad_AP_2

    54/83

    INSTITUTO TECNOLGICO DE PACHUCAINSTITUTO TECNOLGICO DE PACHUCA

    Propiedades de un algoritmo:

    Algoritmos deterministas: para los mismos datosde entrada se producen los mismos datos desalida.

    Algoritmos no deterministas: para los mismosdatos de entrada pueden producirse diferentesde salida.

    54

  • 7/29/2019 Unidad_AP_2

    55/83

    INSTITUTO TECNOLGICO DE PACHUCAINSTITUTO TECNOLGICO DE PACHUCA

    El diseo del algoritmo es independiente del

    lenguaje de programacin en el que se vaya acodificar posteriormente. Existen dosherramientas utilizadas conceptualmente para

    disear algoritmos: los diagramas de flujo y elpseudocdigo.

    55

  • 7/29/2019 Unidad_AP_2

    56/83

    INSTITUTO TECNOLGICO DE PACHUCAINSTITUTO TECNOLGICO DE PACHUCA

    Conceptos para la elaboracin deun algoritmo

    Dato.

    Tipo de Dato.

    Identificadores.

    Expresiones.

    56

  • 7/29/2019 Unidad_AP_2

    57/83

    INSTITUTO TECNOLGICO DE PACHUCAINSTITUTO TECNOLGICO DE PACHUCA

    Dato

    En lenguajes de programacin un tipo de dato es un atributo

    de una parte de los datos que indica al ordenador (y/o elprogramador) algo sobre la clase de datos sobre los que se vaa procesar. Esto incluye imponer restricciones en los datos,como qu valores pueden tomar y qu operaciones se puedenrealizar. Tipos de datos comunes son: enteros, nmeros decoma flotante (decimales), cadenas alfanumricas, fechas,horas, colores, coches o cualquier cosa que se nos ocurra.

    57

  • 7/29/2019 Unidad_AP_2

    58/83

    INSTITUTO TECNOLGICO DE PACHUCAINSTITUTO TECNOLGICO DE PACHUCA

    Tipo de Dato

    Un tipo de datos define un conjunto de valores y las

    operaciones sobre estos valores. Casi todos loslenguajes de programacin explcitamente incluyenla notacin del tipo de datos, aunque lenguajesdiferentes pueden usar terminologa diferente.

    58

  • 7/29/2019 Unidad_AP_2

    59/83

    INSTITUTO TECNOLGICO DE PACHUCAINSTITUTO TECNOLGICO DE PACHUCA

    Identificadores

    Los identificadores (IDs) son smbolos lxicos que

    nombran entidades. El concepto es anlogo al de"nombre". Los identificadores se usan ampliamenteen todos los sistemas de procesamiento de lainformacin. Nombrar las entidades hace posible

    referirse a las mismas, lo cual es esencial paracualquier tipo de procesamiento simblico.

    59

  • 7/29/2019 Unidad_AP_2

    60/83

    INSTITUTO TECNOLGICO DE PACHUCAINSTITUTO TECNOLGICO DE PACHUCA

    Expresiones

    Se conocen como expresiones los valores que son

    manipulados dentro de un programa. Estos valores pueden surgir como resultado de

    efectuar operaciones, como valores de retorno de lasfunciones, al extraerlos de las variables, osimplemente pueden ser constantes expresadasdirectamente dentro del cdigo del programa.

    60

  • 7/29/2019 Unidad_AP_2

    61/83

    INSTITUTO TECNOLGICO DE PACHUCAINSTITUTO TECNOLGICO DE PACHUCA

    Diagramas de Flujo

    Un diagrama de flujo (flowchart) es una

    representacin grfica de un algoritmo. Lossmbolos utilizados para la elaboracin dediagramas de flujo han sido normalizados por

    el ANSI, y los ms frecuentes se presentan enla siguiente figura:

    61

  • 7/29/2019 Unidad_AP_2

    62/83

    INSTITUTO TECNOLGICO DE PACHUCAINSTITUTO TECNOLGICO DE PACHUCA 62

  • 7/29/2019 Unidad_AP_2

    63/83

    INSTITUTO TECNOLGICO DE PACHUCAINSTITUTO TECNOLGICO DE PACHUCA

    Reglas para la creacin dediagramas 1. Los Diagramas de flujo deben escribirse de arriba

    hacia abajo, y/o de izquierda a derecha. 2. Los smbolos se unen con lneas, las cuales tienen

    en la punta una flecha que indica la direccin quefluye la informacin del procesos, se deben deutilizar solamente lneas de flujo horizontal overticales (nunca diagonales).

    63

  • 7/29/2019 Unidad_AP_2

    64/83

    INSTITUTO TECNOLGICO DE PACHUCAINSTITUTO TECNOLGICO DE PACHUCA

    3. Se debe evitar el cruce de lneas, para lo cual se

    quisiera separar el flujo del diagrama a un sitiodistinto, se pudiera realizar utilizando los conectores.Se debe tener en cuenta que solo se vana utilizarconectores cuando sea estrictamente necesario.

    4. No deben quedar lneas de flujo sin conectar

    64

  • 7/29/2019 Unidad_AP_2

    65/83

    INSTITUTO TECNOLGICO DE PACHUCAINSTITUTO TECNOLGICO DE PACHUCA

    5. Todo texto escrito dentro de un smbolo debe ser

    legible, preciso, evitando el uso de muchas palabras. 6. Todos los smbolos pueden tener ms de una lnea

    de entrada, a excepcin del smbolo final.

    Solo los smbolos de decisin pueden y deben tenermas de una lnea de flujo de salida.

    65

  • 7/29/2019 Unidad_AP_2

    66/83

    INSTITUTO TECNOLGICO DE PACHUCAINSTITUTO TECNOLGICO DE PACHUCA

    Ejemplo

    66

  • 7/29/2019 Unidad_AP_2

    67/83

    INSTITUTO TECNOLGICO DE PACHUCAINSTITUTO TECNOLGICO DE PACHUCA

    2.3 Diseo de Algoritimos.

    Implementacin de Algoritmos secuenciales

    El pseudocdigo es una herramienta deprogramacin en la que las instrucciones se escribenen palabras similares al ingls o al espaol, quefacilita tanto la escritura como la lectura deprogramas. En esencia, el pseudocdigo se puededefinir como un lenguaje para la especificacin dealgoritmos.

    67

  • 7/29/2019 Unidad_AP_2

    68/83

    INSTITUTO TECNOLGICO DE PACHUCAINSTITUTO TECNOLGICO DE PACHUCA

    El principal objetivo del pseudocdigo es el de

    representar la solucin a un algoritmo de laforma ms detallada posible, y a su vez lo msparecida posible al lenguaje que

    posteriormente se utilizara para la codificacindel mismo.

    68

  • 7/29/2019 Unidad_AP_2

    69/83

    INSTITUTO TECNOLGICO DE PACHUCAINSTITUTO TECNOLGICO DE PACHUCA

    Las principales caractersticas de este lenguaje

    son: Se puede ejecutar en una computadora

    Es una forma de representacin sencilla de utilizar y de manipular.

    Facilita el paso del programa al lenguaje de programacin.

    Es independiente del lenguaje de programacin que se vaya autilizar.

    Es un mtodo que facilita la programacin y solucin al algoritmodel programa.

    69

  • 7/29/2019 Unidad_AP_2

    70/83

    INSTITUTO TECNOLGICO DE PACHUCAINSTITUTO TECNOLGICO DE PACHUCA

    Todo documento en pseudocdigo debe permitir la

    descripcin de: Instrucciones primitivas

    Instrucciones de proceso

    Instrucciones de control Instrucciones compuestas

    Instrucciones de descripcin

    70

  • 7/29/2019 Unidad_AP_2

    71/83

    INSTITUTO TECNOLGICO DE PACHUCAINSTITUTO TECNOLGICO DE PACHUCA

    Estructura a seguir en su realizacin:

    Cabecera: Programa:

    Modulo:

    Tipos de datos: Constantes:

    Variables:

    71

  • 7/29/2019 Unidad_AP_2

    72/83

    INSTITUTO TECNOLGICO DE PACHUCAINSTITUTO TECNOLGICO DE PACHUCA

    Cuerpo:

    Inicio

    Instrucciones

    Fin

    72

  • 7/29/2019 Unidad_AP_2

    73/83

    INSTITUTO TECNOLGICO DE PACHUCAINSTITUTO TECNOLGICO DE PACHUCA

    2.4 Diseo algortmico de funciones

    Formalmente, un algoritmo calcula a una funcin.

    Como cualquier conjunto finito es numerable, ycualquier conjunto no numerable se puede expresaren trminos del conjunto de los nmeros naturales(infinito, pero numerable, de hecho no existe otro

    conjunto ms grande que sea tambin numerable),en esencia, todo algoritmo calcula a funcionesdefinidas en los nmeros naturales.

    73

  • 7/29/2019 Unidad_AP_2

    74/83

    INSTITUTO TECNOLGICO DE PACHUCAINSTITUTO TECNOLGICO DE PACHUCA

    En este punto, una funcin est parcial o

    totalmente definida. Una funcin es parcialcuando hay nmeros naturales que nopertenecen a su dominio (es decir, hay

    nmeros naturales sobre los que no estdefinida la funcin), y una funcin es total encaso contrario.

    74

  • 7/29/2019 Unidad_AP_2

    75/83

    INSTITUTO TECNOLGICO DE PACHUCAINSTITUTO TECNOLGICO DE PACHUCA

    Si una funcin es parcial, el algoritmo que lo

    calcula solo devolver un resultado (es decirgasta un tiempo de clculo finito) para losvalores en los que la funcin est definida, no

    devolviendo resultado (el tiempo de clculo esinfinito) para el resto de valores.

    75

  • 7/29/2019 Unidad_AP_2

    76/83

    INSTITUTO TECNOLGICO DE PACHUCAINSTITUTO TECNOLGICO DE PACHUCA

    Si un algoritmo que calcula a una funcin

    parcial devolviera un resultado para losvalores no definidos de la funcin, entoncesno calculara a esa funcin sino a otra.

    76

  • 7/29/2019 Unidad_AP_2

    77/83

    INSTITUTO TECNOLGICO DE PACHUCAINSTITUTO TECNOLGICO DE PACHUCA

    Del mismo modo, un algoritmo que calcula a una

    funcin total siempre devuelve un resultado paratodo valor, y que al igual que las funcionesparciales, ste debe coincidir exactamente con elvalor que devuelve la funcin a la que calcula; yreiterativamente, en caso contrario, no calcularaa esa funcin sino a otra.

    77

  • 7/29/2019 Unidad_AP_2

    78/83

    INSTITUTO TECNOLGICO DE PACHUCAINSTITUTO TECNOLGICO DE PACHUCA

    As, todo algoritmo (secuencia de pasos finita,

    ordenada y definida) calcula a una funcindefinida sobre los nmeros naturales, sea culsea sta su naturaleza.

    78

  • 7/29/2019 Unidad_AP_2

    79/83

    INSTITUTO TECNOLGICO DE PACHUCAINSTITUTO TECNOLGICO DE PACHUCA

    Toda funcin para la cual exista un algoritmo que lo

    calcule se denomina funcin computable(parcialmente computable o totalmente computabledepende del grado de definicin de la funcin encuestin), pero existen funciones que no pueden ser

    calculadas funcin de Ackermann; a este ltimo tipode funciones se las denomina funciones nocomputables.

    79

  • 7/29/2019 Unidad_AP_2

    80/83

    INSTITUTO TECNOLGICO DE PACHUCAINSTITUTO TECNOLGICO DE PACHUCA

    Para concluir, a los segmentos de cdigo que

    implementan al comportamiento de los objetos seles denomina de diferentes maneras, dependiendodel lenguaje de programacin que se utilice parahacer la implementacin. Por ejemplo, en C++ se les

    conoce como funciones miembro, en Java y C# comomtodos.

    80

  • 7/29/2019 Unidad_AP_2

    81/83

    INSTITUTO TECNOLGICO DE PACHUCAINSTITUTO TECNOLGICO DE PACHUCA

    La implementacin de los mtodos se basa en el

    diseo algortmico, slo que en este caso no se tratade algoritmos que resuelven completamente unproblema dado, sino de algoritmos que realizan unatarea especfica, la cual representa el

    comportamiento que manifestar el objeto, cuandoreciba el mensaje correspondiente.

    81

  • 7/29/2019 Unidad_AP_2

    82/83

    INSTITUTO TECNOLGICO DE PACHUCAINSTITUTO TECNOLGICO DE PACHUCA

    Contacto

    M.C.C Jos Ezequiel Meja Loaisa

    [email protected]: josemejia.ead

    82

    mailto:[email protected]:[email protected]
  • 7/29/2019 Unidad_AP_2

    83/83