clase 03 y 04: algoritmia y diagramas de flujo · 2020. 7. 5. · diagrama de flujo •existen...
TRANSCRIPT
-
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