24
Estructuras de datos (Prof. Edgardo A. Franco) 1 Tema 01: Algoritmia y diagramas de flujo M. en C. Edgardo Adrián Franco Martínez http://www.eafranco.com [email protected] @edfrancom edgardoadrianfrancom

Clase 03 y 04: Algoritmia y diagramas de flujo · 2020. 7. 5. · Diagrama de flujo •Existen distintas formas gráficas de representar un algoritmo, el diagrama de flujo fue una

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

  • Estructuras de datos (Prof. Edgardo A. Franco)

    1

    Tema 01: Algoritmia y diagramas de flujo

    M. en C. Edgardo Adrián Franco Martínez http://[email protected]

    @edfrancom edgardoadrianfrancom

    http://www.eafranco.com/mailto:[email protected]

  • Contenido• Algoritmia

    • ¿Qué es un algoritmo?

    • Capacidades de una computadora

    • Métodos algorítmicos

    • Diagrama de flujo

    • Símbolos utilizados en los diagramas de flujo

    • Reglas para la construcción de diagramas de flujo

    • Ejemplos

    2

    Alg

    ori

    tmia

    y p

    rogr

    amac

    ión

    est

    ruct

    ura

    da

    01

    : Alg

    ori

    tmia

    y d

    iagr

    amas

    de

    flu

    joP

    rof.

    Edga

    rdo

    Ad

    rián

    Fra

    nco

    Mar

    tín

    ez

  • Algoritmia• Área de estudio cuyo objeto de estudio son los

    algoritmos.

    • En computación un algoritmo permite modelar la seriede pasos necesarios a realizar para poder resolver unaparte o la totalidad de un problema computacional.

    • Al hablar de un problema computacional se hacereferencia a la necesidad de dada cierta informaciónalcanzar un resultado buscado sabiendo que existe una oun conjunto de soluciones capaces de ser encontradasutilizando las capacidades de procesamiento de unacomputadora. 3

    Alg

    ori

    tmia

    y p

    rogr

    amac

    ión

    est

    ruct

    ura

    da

    01

    : Alg

    ori

    tmia

    y d

    iagr

    amas

    de

    flu

    joP

    rof.

    Edga

    rdo

    Ad

    rián

    Fra

    nco

    Mar

    tín

    ez

  • ¿Qué es un algoritmo?• Es un conjunto ordenado y finito de operaciones que

    permite hallar la solución de un problema.

    • Podemos decir que un algoritmo es una "receta", ya que sise sigue de manera correcta encuentran un resultado en untiempo acotado.

    • P.g. escribe un algoritmo para agradar a tu maestro deprogramación.

    4

    Alg

    ori

    tmia

    y p

    rogr

    amac

    ión

    est

    ruct

    ura

    da

    01

    : Alg

    ori

    tmia

    y d

    iagr

    amas

    de

    flu

    joP

    rof.

    Edga

    rdo

    Ad

    rián

    Fra

    nco

    Mar

    tín

    ez

  • ¿Qué es un algoritmo computacional?

    • Es un conjunto ordenado y finito de operacionesinherentes a un cómputo que permite hallar la solución deun problema.

    5

    Alg

    ori

    tmia

    y p

    rogr

    amac

    ión

    est

    ruct

    ura

    da

    01

    : Alg

    ori

    tmia

    y d

    iagr

    amas

    de

    flu

    joP

    rof.

    Edga

    rdo

    Ad

    rián

    Fra

    nco

    Mar

    tín

    ez

  • ¿Cuáles son las capacidades de una computadora?

    Al pensar en la idea de crear algoritmos a ser ejecutadosmediante una computadora es necesario entender cuales son lascapacidades de una computadora de manera general:

    1. Procesar instrucciones en secuencia (Las instrucciones se colocansecuencialmente en la memoria y se ejecutan en ese orden)

    2. Recibir o mostrar datos (Una computadora cuenta dispositivos parala entrada y salida de información capaz de ser colocada en la memoriapara leerlos o tomarlos y mostrarlos)

    3. Saltar a otras instrucciones (Continuar una secuencia de instrucciones enotra dirección de memoria no continua)

    4. Almacenar, editar o eliminar datos en la memoria (Guardar,editar, mover y eliminar valores en una o más direcciones de memoria)

    5. Operar con números almacenados en la memoria (Unacomputadora cuenta con la posibilidad de realizar operaciones numéricas enbase 2 con las variables colocadas en la memoria)

    6

    Alg

    ori

    tmia

    y p

    rogr

    amac

    ión

    est

    ruct

    ura

    da

    01

    : Alg

    ori

    tmia

    y d

    iagr

    amas

    de

    flu

    joP

    rof.

    Edga

    rdo

    Ad

    rián

    Fra

    nco

    Mar

    tín

    ez

  • 1. Procesar instrucciones en secuencia (Las instrucciones se colocansecuencialmente en la memoria y se ejecutan en ese orden)

    2. Recibir o mostrar datos (Una computadora cuenta dispositivos para laentrada y salida de información capaz de ser colocada en la memoria paraleerlos o tomarlos y mostrarlos)

    7

    Alg

    ori

    tmia

    y p

    rogr

    amac

    ión

    est

    ruct

    ura

    da

    01

    : Alg

    ori

    tmia

    y d

    iagr

    amas

    de

    flu

    joP

    rof.

    Edga

    rdo

    Ad

    rián

    Fra

    nco

    Mar

    tín

    ez

    0X10A Leer base()0X10B Leer altura()0X10C area=base*altura 0X10D perimetro=base*2+altura*20X10E Mostrar area0X10F Mostrar base

    Secuencia contigua de instrucciones en la memoria

  • 3. Saltar a otras instrucciones (Continuar una secuencia deinstrucciones en otra dirección de memoria no continua)

    8

    Alg

    ori

    tmia

    y p

    rogr

    amac

    ión

    est

    ruct

    ura

    da

    01

    : Alg

    ori

    tmia

    y d

    iagr

    amas

    de

    flu

    joP

    rof.

    Edga

    rdo

    Ad

    rián

    Fra

    nco

    Mar

    tín

    ez

    0X10A Leer base()0X10B Leer altura()0X10C area=base*altura 0X10D perimetro=base*2+altura*20X10E Mostrar area0X10F Mostrar base0X110 Salta 0X10A

  • 4. Almacenar, editar o eliminar datos en la memoria (Guardar,editar, mover y eliminar valores en una o más direcciones de memoria)

    5. Operar con números almacenados en la memoria (Unacomputadora cuenta con la posibilidad de realizar operaciones numéricas enbase 2 con las variables colocadas en la memoria)

    9

    Alg

    ori

    tmia

    y p

    rogr

    amac

    ión

    est

    ruct

    ura

    da

    01

    : Alg

    ori

    tmia

    y d

    iagr

    amas

    de

    flu

    joP

    rof.

    Edga

    rdo

    Ad

    rián

    Fra

    nco

    Mar

    tín

    ez

    0X10A Leer base() ~ 0x200 = Entrada0X10B Leer altura() ~ 0x203 = Entrada0X10C area=base*altura ~ 0x206 = 0x200 * 0x2030X10D perimetro=base*2+altura*2 ~ 0x208 = 0x002

    ~ 0x20A = 0x200 * 0x208~ 0x20B = 0x200 * 0x203~ 0x20C = 0x20A + 0x20B

    0X10E Mostrar área ~ Salida = 0x2060X10F Mostrar base ~ Salida = 0x206 0X110 Salta 0X10A

  • Definición formal de algoritmo“Es un conjunto de instrucciones o reglas bien definidas,

    ordenadas y finitas que permite realizar una actividad mediante pasos no ambiguos y efectivos que no generen dudas

    a quien lo ejecute”.

    ⚫ Dados un estado inicial y una entrada, siguiendo los pasossucesivos se llega a un estado final y se obtiene unasolución.

    10

    Alg

    ori

    tmia

    y p

    rogr

    amac

    ión

    est

    ruct

    ura

    da

    01

    : Alg

    ori

    tmia

    y d

    iagr

    amas

    de

    flu

    joP

    rof.

    Edga

    rdo

    Ad

    rián

    Fra

    nco

    Mar

    tín

    ez

  • Diagrama de flujo• Existen distintas formas gráficas

    de representar un algoritmo, eldiagrama de flujo fue una de lasprimeras empleadas.

    • Un diagrama de flujo se utilizasímbolos con significados biendefinidos que representan lospasos del algoritmo, yrepresentan el flujo de ejecuciónmediante flechas que conectanlos puntos de inicio y detérmino.

    11

    Alg

    ori

    tmia

    y p

    rogr

    amac

    ión

    est

    ruct

    ura

    da

    01

    : Alg

    ori

    tmia

    y d

    iagr

    amas

    de

    flu

    joP

    rof.

    Edga

    rdo

    Ad

    rián

    Fra

    nco

    Mar

    tín

    ez

  • Diagrama de flujo• Es la representación gráfica de un algoritmo

    • Muestra los pasos o procesos a seguir para alcanzarla solución de un problema

    • Utilizan símbolos (cajas) estándar y tienen los pasosdel algoritmo escritos en estas cajas unidas porflechas

    • La secuencia del algoritmo esta determinado por elflujo de la flechas

    12

    Alg

    ori

    tmia

    y p

    rogr

    amac

    ión

    est

    ruct

    ura

    da

    01

    : Alg

    ori

    tmia

    y d

    iagr

    amas

    de

    flu

    joP

    rof.

    Edga

    rdo

    Ad

    rián

    Fra

    nco

    Mar

    tín

    ez

  • Símbolos utilizados en los diagramas de flujo

    13

    Alg

    ori

    tmia

    y p

    rogr

    amac

    ión

    est

    ruct

    ura

    da

    01

    : Alg

    ori

    tmia

    y d

    iagr

    amas

    de

    flu

    joP

    rof.

    Edga

    rdo

    Ad

    rián

    Fra

    nco

    Mar

    tín

    ez

    Flujo del

    diagrama

    Decisión múltiple

    Inicio y Fin

    Lectura/Entrada

    de datos

    Proceso

    Decisión

    Almacenamiento/

    Salida de datos

    Conector

  • Operadores típicamente utilizados

    14

    + Sumar

    - Menos

    * Multiplicación

    / División

    = Equivalencia

    > Mayor que

    < Menor que

    ≥ Mayor o igual que

    ≤ Menor o igual que

    o !=Diferente de

    ← o → o = Asignación

    «La definición de datos se da por supuesta, principalmente para variables sencillas»

    Alg

    ori

    tmia

    y p

    rogr

    amac

    ión

    est

    ruct

    ura

    da

    01

    : Alg

    ori

    tmia

    y d

    iagr

    amas

    de

    flu

    joP

    rof.

    Edga

    rdo

    Ad

    rián

    Fra

    nco

    Mar

    tín

    ez

  • Reglas para la construcción de diagramas de flujo1. Todo diagrama de flujo debe tener un inicio y un fin

    2. Las líneas utilizadas para indicar la dirección del flujo deldiagrama deber ser rectas: verticales u horizontales

    3. Todas las líneas utilizadas para indicar la dirección del flujodel diagrama deben estar conectadas mediante algúnsímbolo

    4. El diagrama de flujo debe construirse de arriba hacia abajoy de izquierda a derecha

    5. La notación utilizada en el diagrama de flujo debe serindependiente del lenguaje de programación

    6. Si la construcción del diagrama de flujo requiere más deuna hoja se deben utilizar los conectores adecuados

    15

    Alg

    ori

    tmia

    y p

    rogr

    amac

    ión

    est

    ruct

    ura

    da

    01

    : Alg

    ori

    tmia

    y d

    iagr

    amas

    de

    flu

    joP

    rof.

    Edga

    rdo

    Ad

    rián

    Fra

    nco

    Mar

    tín

    ez

  • 16

    Alg

    ori

    tmia

    y p

    rogr

    amac

    ión

    est

    ruct

    ura

    da

    01

    : Alg

    ori

    tmia

    y d

    iagr

    amas

    de

    flu

    joP

    rof.

    Edga

    rdo

    Ad

    rián

    Fra

    nco

    Mar

    tín

    ez

  • • Describa un algoritmo mediante un diagrama deflujo para calcular el área de un triangulo.

    • Se recibe como entrada la base y la altura.

    17

    Alg

    ori

    tmia

    y p

    rogr

    amac

    ión

    est

    ruct

    ura

    da

    01

    : Alg

    ori

    tmia

    y d

    iagr

    amas

    de

    flu

    joP

    rof.

    Edga

    rdo

    Ad

    rián

    Fra

    nco

    Mar

    tín

    ez

    Ejemplo 01: Área de un triángulo

  • Ejemplo 01: Área de un triángulo

    18

    Inicio

    base, altura

    area ← (base * altura) / 2

    área

    Fin

    Alg

    ori

    tmia

    y p

    rogr

    amac

    ión

    est

    ruct

    ura

    da

    01

    : Alg

    ori

    tmia

    y d

    iagr

    amas

    de

    flu

    joP

    rof.

    Edga

    rdo

    Ad

    rián

    Fra

    nco

    Mar

    tín

    ez

  • Ejemplo 02: Ingresos de empleado

    • Construir un algoritmo que, al recibir comoentrada una clave de un empleado y los seisprimeros sueldos mensuales del año de este,calcule el ingreso total semestral y el promediomensual para el empleado, finalmente seimprimirá su clave, el ingreso total y el promediomensual.

    19

    Alg

    ori

    tmia

    y p

    rogr

    amac

    ión

    est

    ruct

    ura

    da

    01

    : Alg

    ori

    tmia

    y d

    iagr

    amas

    de

    flu

    joP

    rof.

    Edga

    rdo

    Ad

    rián

    Fra

    nco

    Mar

    tín

    ez

    ClaveEmpleado

    Sueldo 1

    Ingreso total Promedio mensualClaveEmpleado

    Sueldo 2 Sueldo 3 Sueldo 4 Sueldo 5 Sueldo 6

  • 20

    Inicio

    clave, su1, su2, su3, su4, su5, su6

    ingreso ← su1 + su2 + su3 + su4 + su5 + su6 promedio ← ingreso / 6

    clave, ingreso,promedio

    Fin

    Alg

    ori

    tmia

    y p

    rogr

    amac

    ión

    est

    ruct

    ura

    da

    01

    : Alg

    ori

    tmia

    y d

    iagr

    amas

    de

    flu

    joP

    rof.

    Edga

    rdo

    Ad

    rián

    Fra

    nco

    Mar

    tín

    ez

    Ejemplo 02: Ingresos de empleado

  • Ejemplo 03: Media de una serie de números

    • Calcular la media de una serie denúmeros positivos, suponiendo quelos datos se introducen uno a uno.

    • Un valor de cero como entrada indicaráque se ha alcanzado el final de la seriede números positivos.

    21

    Alg

    ori

    tmia

    y p

    rogr

    amac

    ión

    est

    ruct

    ura

    da

    01

    : Alg

    ori

    tmia

    y d

    iagr

    amas

    de

    flu

    joP

    rof.

    Edga

    rdo

    Ad

    rián

    Fra

    nco

    Mar

    tín

    ez

    23 12

    58,83

    4 125 184 5 0

  • 22

    Inicio

    dato 0

    media

    Fin

    dato

    media ← suma/ (numdatos-1)

    1

    1

    numdatos ← numdatos + 1suma← suma+ dato

    numdatos ← 0suma← 0

    nosi

    Alg

    ori

    tmia

    y p

    rogr

    amac

    ión

    est

    ruct

    ura

    da

    01

    : Alg

    ori

    tmia

    y d

    iagr

    amas

    de

    flu

    joP

    rof.

    Edga

    rdo

    Ad

    rián

    Fra

    nco

    Mar

    tín

    ez

    Ejemplo 03: Media de una serie de números

  • Ejemplo 04: Mínimo de 10 números

    • Determinar el menor valor de unaserie de 10 números positivos,suponiendo que los datos seintroducen uno a uno.

    23

    Alg

    ori

    tmia

    y p

    rogr

    amac

    ión

    est

    ruct

    ura

    da

    01

    : Alg

    ori

    tmia

    y d

    iagr

    amas

    de

    flu

    joP

    rof.

    Edga

    rdo

    Ad

    rián

    Fra

    nco

    Mar

    tín

    ez

    23 12

    1

    4 12510 256 1 4 7845

  • Ejemplo 04: Mínimo de 10 números

    24

    Alg

    ori

    tmia

    y p

    rogr

    amac

    ión

    est

    ruct

    ura

    da

    01

    : Alg

    ori

    tmia

    y d

    iagr

    amas

    de

    flu

    joP

    rof.

    Edga

    rdo

    Ad

    rián

    Fra

    nco

    Mar

    tín

    ez

    Inicio

    i