Algoritmos Diagramas de Flujo y Programas (1)

59
{ Algoritmos, diagramas y programas Capítulo 1

description

info

Transcript of Algoritmos Diagramas de Flujo y Programas (1)

Page 1: Algoritmos Diagramas de Flujo y Programas (1)

{

Algoritmos, diagramas y programas

Capítulo 1

Page 2: Algoritmos Diagramas de Flujo y Programas (1)

Problemas y algoritmos

Pasos, procedimiento o acciones que nos permiten alcanzar un resultado o resolver un problema

Page 3: Algoritmos Diagramas de Flujo y Programas (1)

Surgen preguntas

¿Qué opinan?

¿Se puede enseñar a

resolver un problema?

¿Se puede enseñar a

analizar un problema?

¿Podríamos enseñar a pensar?

Page 4: Algoritmos Diagramas de Flujo y Programas (1)

Construcción de AlgoritmoConstruir un algoritmo para preparar “Pechugas de pollo en salsa de elote y chile poblano”

Ingredientes:- 3 pechugas- 1 ajo- 4 gm. De pimienta negra- 6 cucharadas de aceite- 5 chiles poblanos- ½ tasa de leche- ¼ de crema- 1 lata de crema de elote

Page 5: Algoritmos Diagramas de Flujo y Programas (1)

Etapas para Solución de un Problema

Problema

Análisis del problema

Construcción de

algoritmo

Verificación del

algoritmo

Page 6: Algoritmos Diagramas de Flujo y Programas (1)

Secciones de un Algoritmo

Algoritmo

Datos de Entrada

Procesamiento de datos

Impresión de

resultados

Page 7: Algoritmos Diagramas de Flujo y Programas (1)

Diagramas de flujoEsquematización gráfica de un algoritmo, su construcción es importante ya que es la base para resolver un problema en un lenguaje de programación.

Page 8: Algoritmos Diagramas de Flujo y Programas (1)

Símbolos utilizados en Diagramas de Flujo

Esquematización gráfica de un algoritmo, su construcción es importante ya que es la base para resolver un problema en un lenguaje de programación.

Page 9: Algoritmos Diagramas de Flujo y Programas (1)

{ Regla 1

Inicio

Fin

Regla 2No inclinadas

Reglas

Page 10: Algoritmos Diagramas de Flujo y Programas (1)

4) Diagramas construidos de arriba hacia abajo5) Notaciones diferentes a lenguaje de programación 6) Comentarios nos ayudan a expresar7) Si se extiende más de una hoja utilizas conectores8) No más de una línea a cada símbolo

3) Todas las líneas deben estar conectadas

Page 11: Algoritmos Diagramas de Flujo y Programas (1)

1.3.-Tipos de Datos:

Datos numéricos: Enteros y reales (128) (7.5)

Datos alfanuméricos: Puede contener letras del abecedario (a,b,c) dígitos (0,1,2…..) símbolos especiales (#,$,@). No pueden realizarse operaciones aritméticas.

Datos lógicos: Operadores booleanos de varios valores (verdadero o falso)

Page 12: Algoritmos Diagramas de Flujo y Programas (1)

Identificadores- El primer carácter que forma un identificador debe

ser letra (a,b,c)- Los demás pueden ser letras, dígitos o el símbolo

especial.- La longitud es igual a 7 en la mayoría de los

lenguajes.

SUMA ACUM

AUX NUM_1

X7

Page 13: Algoritmos Diagramas de Flujo y Programas (1)

Constantes- Datos que no cambian en su ejecución- Observen que en la siguiente figura la constante

NUM es de tipo entero, NREAL y NUMREA son de tipo real y RESU de tipo cadena de caracteres. Estas constantes no cambiaran su valor durante la ejecución.

5 “resultado”

7.25 8.69

NUM RESU

NREAL NUMREA

Page 14: Algoritmos Diagramas de Flujo y Programas (1)

Variables- Pueden cambiar su valor durante la ejecución

0 0

0

I SUEL

SUMA

Page 15: Algoritmos Diagramas de Flujo y Programas (1)

Operaciones Aritméticas- Para poder realizar operaciones necesitamos

operadores aritméticos, el resultado será un número.

Operadores Aritméticos

Operador Aritmético Operación Ejemplo Resultado

** Potencia 4**3 64

* Multiplicación 8.25*7 57.75

/ División 15/4 3.75

+ Suma 125.78 + 62.50 188.28

- Resta 65.50 – 32.33 32.97

Mod Modulo (residuo) 15 mod 2 1

Div División entera 17 div 3 5

Orden:

Operadores = 6 – 5 + 3 * 4 = 6 – 5 + 12

= 1 + 12 = 13

Page 16: Algoritmos Diagramas de Flujo y Programas (1)

Operadores Relacionales:- Números + Operadores

Operadores Relacionales

Operador Operación Ejemplo Resultado

= Igual que “hola” = “lola” FALSO

< > Diferente a “a” < > “b” VERDADERO

< Menor que 7 < 15 VERDADERO

> Mayor que 22 > 11 VERDADERO

< = Menor o igual que 15 <= 20 VERDADERO

> = Mayor o igual que 35 >= 20 VERDADERO

Page 17: Algoritmos Diagramas de Flujo y Programas (1)

Operadores Relacionales:- Ejemplo:

A= 5B = 16

(A**2) > (B*2)

Page 18: Algoritmos Diagramas de Flujo y Programas (1)

Operadores Relacionales:- Resultado:

A= 5B = 16

(A**2) > (B*2)

25 > (B*2)25 > 32

Resultado: Falso

Page 19: Algoritmos Diagramas de Flujo y Programas (1)

Operadores lógicos:

Operadores lógicos

Operador lógico

Jerarquía Expresión lógica

Significado

No (Negación) (mayor) No P No P No es cierto que P

y (conjunción) P y Q P^Q P sin Embargo

Q

o (disyunción) (menor) P o Q P o Q Jerarquía de los Operadores

Operadores Jerarquía

( ) (mayor)

**

*,/,div/mod

=, <,>, >=, <=

No

y

o (menor)

Page 20: Algoritmos Diagramas de Flujo y Programas (1)

Operadores lógicos:

a) 7 * 5 ** 3 / 4 div 3 b) 7 * 8 * (160 mod 3 ** 3) div 5 * 13 - 28

Page 21: Algoritmos Diagramas de Flujo y Programas (1)

Operadores lógicos:

a) 7 * 5 ** 3 / 4 div 3 b) 7 * 8 * (160 mod 3 ** 3) div 5 * 13 - 28

7 * 5 ** 3 / 4 div 3

7 * 125 / 4 div 3

875 / 4 div 3

218.75 div 3

72

7 * 8 * (160 mod 27) div 5 * 13 - 28

7 * 8 * 25 div 5 * 13 -28

56 * 25 div 5 * 13 – 28

1400 div 5 * 13 – 28

280 *13 – 28

3640 – 28

3612

Page 22: Algoritmos Diagramas de Flujo y Programas (1)

Operadores lógicos:

c) ((1580 mod 6 * 2 ** 7) > (7 + 8 * 3 ** 4)) > ((15 * 2) = (60*2 /4))

Nota: Cuando se utilizan operadores de relación con operandos lógicos falso es menor que verdadero

Page 23: Algoritmos Diagramas de Flujo y Programas (1)

Operadores lógicos:

c) ((1580 mod 6 * 2 ** 7) > (7 + 8 * 3 ** 4)) > ((15 * 2) = (60*2 /4))

((1580 mod 6 * 128) > (7 + 8 *3 ** 4)) > ((15 * 2) = (60 * 2 / 4 ))

(( 2 * 128) > (7 + 8 * 3 ** 4)) > ((15 * 2) = (60 * 2 / 4))

(256 > (7 + 8 * 3 ** 4)) > ((15 * 2) = (60 * 2/ 4))

(256 > (7 + 8 * 81)) > ((15 * 2) = (60 * 2/ 4))

(256 > (7 + 648)) > ((15 * 2) = (60 * 2 / 4))

(256 > 655) > ((15 * 2) = (60 * 2 / 4))

FALSO > ((15 * 2) = (60 * 2 / 4))

FALSO > (30 = (60 *¨2 / 4))

FALSO > (30 = (120 / 4))

FALSO > (30 = 30)

FALSO > VERDADERO

FALSO

Page 24: Algoritmos Diagramas de Flujo y Programas (1)

Construcción de Diagramas de Flujo

Ejemplo 1: Construir un diagrama de flujo tal que dados los datos A, B, C y D que representan números enteros, se escriban en orden inverso.

INICIO

A,B,C,D

D,C,B,A

FIN

Si se introducen los valores 7, 28,

150 y 35, se imprime 35, 150,

28 y 7

Page 25: Algoritmos Diagramas de Flujo y Programas (1)

Construcción de Diagramas de Flujo

Ejemplo 2: Construya un diagrama de flujo tal que dado los datos enteros A y B, escriben el resultado de la siguiente expresión:(A + B)2 /3 INICIO

A,B

RES

FIN

Datos:A y B (Variables de tipo entero)

Para un proceso se necesita el

símbolo:

RES (A + B) **2 /3

Tabla Ejercicio 2

Número de

Corrida

DatosA

DatosB

Resultado RES

1 5 6 40.33

2 7 10 96.33

3 0 3 3.00

4 12 2 65.33

5 14 -5 27.00

Page 26: Algoritmos Diagramas de Flujo y Programas (1)

Construcción de Diagramas de Flujo

Ejemplo 3: Dada una matrícula y 5 calificaciones de un alumno obtenidas a lo largo del semestre construya un diagrama de flujo que imprima la matrícula del alumno y el promedio.INICIO

MAT, CAL1, CAL2, CAL3, CAL4, CAL5

MAT, PRO

FIN

PRO (CAL1 + CAL2 + CAL3 + CAL4 + CAL5)

/ 5

MAT: Variable de tipo Entero

CAL1, CAL2, CAL3, CAL4, CAL5: Variables tipo Real

PRO: Tipo Real, Almacena el promedio de las calificaciones

Lectura de matrícula y calificaciones

Almacena la variable PRO. El promedio de las calificaciones

Escribe la matrícula y el promedio

Page 27: Algoritmos Diagramas de Flujo y Programas (1)

Construcción de Diagramas de Flujo

Tabla de Asignación

Número de

CorridaDatos Resultados

Mat CAL1 CAL2 CAL3 CAL4 CAL5 MAT PRO

1 16500 8 8.5 9 7 6 16500 7.7

2 16650 9 8 9 7 9 16650 8.4

3 17225 9 10 10 8 9 17225 9.2

4 17240 8.5 9 7.5 6 6.5 17240 7.5

5 18240 7.5 6.8 9.5 8 8.5 18240 8.02

Page 28: Algoritmos Diagramas de Flujo y Programas (1)

Ejemplo 4: Construya un diagrama de flujo, tal que dado el costo del artículo vendido y la cantidad de dinero entregada por el cliente, calcule e imprima el cambio que se debe entregar al mismo.

Datos: PREPRO, PAGO

Donde:PREPRO: Es una variable de tipo real que representa el precio del productoPAGO: Es una variable de tipo real que representa el pago que realiza el cliente.DEVO: Variable de tipo real. Almacena el cambio que se le debe de entregar al cliente.

Page 29: Algoritmos Diagramas de Flujo y Programas (1)

Ejemplo 5: Construya un diagrama de flujo que calcule e imprima el número de segundos que hay en un determinado número de días.

Datos: DIAS: Variable de tipo entero que expresa el número de días

Donde:SEG: Variable de tipo real. Almacena los segundos que hay en determinado número de días.DIAS: Variable de tipo entero

Page 30: Algoritmos Diagramas de Flujo y Programas (1)

Estructuras Algorítmicas Selectivas

Se utilizan cuando el desarrollo de un problema involucra tomar decisiones, para establecer un camino a seguir.Tres tipos:• SI ENTONCES• SI ENTONCES / SINO• SI MULTIPLE

1) SI ENTONCES:

Condición

Operación

Falsa

NOVerdadera

SI

Page 31: Algoritmos Diagramas de Flujo y Programas (1)

Ejemplo 6:Construya un diagrama de flujo tal que dado como dato la calificación de un alumno es un examen, escriba “aprobado” en caso de que esa calificación sea mayor a 8.Datos: CAL (Variable de tipo real que representa la calificación de un alumno.

INICIO

CAL

CAL > 8

“Aprobado”

FIN

Page 32: Algoritmos Diagramas de Flujo y Programas (1)

Estructuras Algorítmicas Selectivas

Se utilizan cuando el desarrollo de un problema involucra tomar decisiones, para establecer un camino a seguir.Tres tipos:• SI ENTONCES• SI ENTONCES / SINO• SI MULTIPLE

2) SI ENTONCES / SINOCondición

Operación 1 Operación 2

Falsa

NO

Verdadera

SI

Page 33: Algoritmos Diagramas de Flujo y Programas (1)

Ejemplo 7:Construya un diagrama de flujo tal que dado como dato la calificación de un alumno es un examen, escriba “aprobado” si su calificación es mayor o igual que 8 y “reprobado” en caso contrario

Datos: CAL (Variable de tipo real que representa la calificación de un alumno.

Page 34: Algoritmos Diagramas de Flujo y Programas (1)

Ejemplo 8:Construya un diagrama de flujo tal que dado como dato el sueldo de un trabajador, le aplique un aumento del 15% si su sueldo es inferior a $1000 y 12% en caso contrario. Imprima el nuevo saldo del trabajador.Datos: SUE (Variable de tipo real que representa el sueldo del trabajador

INICIO

FIN

SUE

SUE <

1000NSUE SUE *

1.15NSUE SUE *

1.12

NSUE

NOSI

Page 35: Algoritmos Diagramas de Flujo y Programas (1)

Estructuras Algorítmicas Selectivas

Se utilizan cuando el desarrollo de un problema involucra tomar decisiones, para establecer un camino a seguir.Tres tipos:• SI ENTONCES• SI ENTONCES / SINO• SI MULTIPLE

3) SI MULTIPLE

SELECTOR

ACCION 1 ACCION 2 ACCION 3

ACCION N +1

Valor 1

Valor 2

Valor N

Page 36: Algoritmos Diagramas de Flujo y Programas (1)

Ejemplo 9

Construya un diagrama de flujo tal que dado como datos dos variables de tipo entero, obtenga el resultado de la siguiente función:

Datos: NUM, V

NUM: Variable de tipo entero que representaEl tipo (opción) de cálculo que se va a realizarV: Es una variable de tipo entero que se utiliza Para el cálculo de la función

VALSI NUM = 1 100*VSI NUM = 2 100**VSI NUM = 3 100/VCualquier otro valor = 0

Page 37: Algoritmos Diagramas de Flujo y Programas (1)

Ejemplo 9

NUM

VAL 100*V

VAL 100**V

VAL 100/V

1 2 3

INICIO

NUM,V

VAL 0

VAL

FIN

Otro

Page 38: Algoritmos Diagramas de Flujo y Programas (1)

Ejemplo 9

Tabla SI MULTIPLENúmero de

CorridaNUM V Resultado VAL

1 1 8 800

2 7 6 0

3 3 4 25

4 4 8 0

5 2 3 1000000

6 3 10 10

Page 39: Algoritmos Diagramas de Flujo y Programas (1)

Ejemplo 10:

Construya un diagrama de flujo tal que dado como datos la categoría y el sueldo de un trabajador, calcule el aumento correspondiente teniendo en cuenta la siguiente tabla. Imprima la categoría del trabajador y su nuevo sueldo:

Datos: CATE, SUE

CATE: Variable de tipo entero que representa la categoríadel trabajadorSUE: Variable de tipo real que expresa el sueldo del trabajador

VALSI CAT E=1 15% AumSI CATE= 2 10% AumSI CATE=3 8% AumSI CATE= 4 7% Aum

Page 40: Algoritmos Diagramas de Flujo y Programas (1)

Ejemplo 10:

Inicio

CATE,SUE

CATE

NSUE SUE*1.15

NSUE SUE*1.10

NSUE SUE*1.08

NSUE SUE*1.07

CATE,NSUE

FIN

1 2 3 4

Page 41: Algoritmos Diagramas de Flujo y Programas (1)

Estructuras Selectivas en Cascada (Anidadas)Existen casos en los cuales en el desarrollo de la solución de problemas en los cuales hay que tomar una decisión en el camino, pero seguido a esto hay que volver a tomar otra decisión.

CON 1

CON 2

Operación 21

Operación 22

Page 42: Algoritmos Diagramas de Flujo y Programas (1)

Ejemplo 11:

Construya un diagrama de flujo tal que dado como dato un número entero, determine e imprima si el mismo es positivo, negativo o nulo.

Datos: NUM

NUM: Variable entera que representa el número que se ingresa

Page 43: Algoritmos Diagramas de Flujo y Programas (1)

Ejemplo 11: Solución

Inicio

NUM

NUM>0

“Positivo”NUM=

0

“Nulo”“Negativo

Fin

Page 44: Algoritmos Diagramas de Flujo y Programas (1)

Ejemplo 12:

En una tienda efectúan un descuento a los clientes dependiendo del monto de la compra. El descuento se efectúa con base a los siguientes criterios:• Si el monto es menos que $500, no hay descuento• Si el monto esta entre $500 y $1000, efectúan 5%• Si el monto esta entre $1000 y $7000, efectúan

11%• Si el monto esta entre $7000 y $15000, efectúan

18%• Si el monto es mayor a $15000, efectúan 25%

Construya un diagrama de flujo tal que dado el monto de la compra de un cliente, determine lo que se va a pagar.Dato:COMPRA: Variable de tipo real que representa el monto de la compra

Page 45: Algoritmos Diagramas de Flujo y Programas (1)

Estructuras Algorítmicas Repetitivas (Ciclos)

Es muy común encontrar que en la práctica algoritmos cuyas operaciones se deben ejecutar un número repetido de veces. Si bien las instrucciones son las mismas, los datos sobre los que opera varían.

Inicio

A

A<5

A A+1

FIN

Page 46: Algoritmos Diagramas de Flujo y Programas (1)

Estructuras Algorítmicas Repetitivas

Ejercicio Nómina:Obtener el total de la nómina de los 10 empleados con los que cuenta.

Datos: SUE1, SUE2…….

Explicación Variables:I: Variable de tipo entero que representa el control del ciclo. Contabiliza el número de veces que la acción ha de repetirse. El contador toma un valor inicial a de 1 y se va incrementando)

NOMINA: Variable de tipo real que representa un acumulador. Este se utiliza cuando debemos obtener el total acumulado de las cantidades.

SUE: Representa el sueldo del trabajador

Page 47: Algoritmos Diagramas de Flujo y Programas (1)

Estructuras Algorítmicas Repetitivas

Inicio

NOMINA 0

I 1

I <=10

SUE

NOMINA NOMINA + SUE

I I +1

NOMINA

FIN

Page 48: Algoritmos Diagramas de Flujo y Programas (1)

Estructuras Algorítmicas Repetitivas

I SUE NOMINA

1 0

2 1500 1500

3 890 2390

4 700 3090

5 950 4040

6 2500 6340

7 1650 7990

8 1800 9790

9 1400 11190

10 760 11950

11 900 12850

Page 49: Algoritmos Diagramas de Flujo y Programas (1)

Tablas de VerdadMuestran valores de verdad en proposiciones

Proposición:Analizar si es verdadero o falso la proposición

“Hoy es martes”“Todos los números son positivos”“Las rosas son rojas”

Conectores:

Conectores Símbolos

Y V

O ^

NO ¬

Entonces

Si y solo si

Proposición Compuesta

“Llueve y voy a la Universidad”

Page 50: Algoritmos Diagramas de Flujo y Programas (1)

Funciones de VerdadNegación

A ¬A

V F

F V

Chihuahua esta en México

Chihuahua no esta en México

Page 51: Algoritmos Diagramas de Flujo y Programas (1)

Funciones de VerdadDisyunción

A B AVB

V V V

V F V

F V V

F F F

Si al menos una de las dos proposiciones es verdadera el resultado será verdadero, Por consiguiente si las dos proposiciones son falsas el resultado será falso

Ejemplo:A= El estudio francés en la UniversidadB= El vivió en Francia

AVB= El estudio francés en la Universidad o el vivió en Francia

Page 52: Algoritmos Diagramas de Flujo y Programas (1)

Funciones de VerdadConjunción

A B A^B

V V V

V F F

F V F

F F F

Para poder ser verdadero las dos proposiciones deberán ser verdaderas, de lo contrario el resultado será falso

Ejemplo:A= Esta lloviendoB= El sol brilla

A^B= Esta lloviendo y el sol brilla

Page 53: Algoritmos Diagramas de Flujo y Programas (1)

Funciones de VerdadCondicional

A B A B

V V V

V F F

F V V

F F V

Después de una proposición verdadera no puede tener inplicación falsa porque su Resultado será falso. En todos los otros casos el resultado es verdadero

Ejemplo:A= Hoy es lunesB= Mañana es sábado

A B= Hoy es lunes entonces mañana es sábado

Page 54: Algoritmos Diagramas de Flujo y Programas (1)

Funciones de VerdadBicondicional

A B A B

V V V

V F F

F V F

F F V

Después de una proposición verdadera no puede tener inplicación falsa porque su Resultado será falso.

Ejemplo:A= El número 24 es parB= 24 es divisible por 2

A B= El número 24 es par si y solo si 24 es divisible por 2

Page 55: Algoritmos Diagramas de Flujo y Programas (1)

Tablas de Verdad3 tipos:

a) Indeterminadab) Contradicciónc) Tautología

A B C BvC A^(BvC)

V V V V V

V V F V V

V F V V V

V F F F F

F V V V F

F V F V F

F F V V F

F F F F F

Verdad Indeterminada (Se da cuando existen valores falsos y verdaderos como resultado)

Page 56: Algoritmos Diagramas de Flujo y Programas (1)

A ¬A A^¬A

V F F

F V F

Contradicción (Se da cuando existen valores falsos como resultado final)

Page 57: Algoritmos Diagramas de Flujo y Programas (1)

Tautología

A ¬A Av¬A

V F V

F V V

Tautología (Se da cuando existen valores verdaderos como resultado)

Page 58: Algoritmos Diagramas de Flujo y Programas (1)

Ejemplo 1:

((p Q)^P) Q

p Q p Q (p Q)^p

((p Q)^p Q

V V

V F

F V

F F

p Q p Q (p Q)^p

((p Q)^p Q

V V V V V

V F F F V

F V V F V

F F V F V

Page 59: Algoritmos Diagramas de Flujo y Programas (1)

Ejemplo 2:

p v p r

p r p v p p v p r

V V

V F

F V

F F

p r p v p p v p r

V V V V

V F V F

F V F V

F F F V