Algoritmos Diagramas de Flujo y Programas (1)

Post on 19-Jan-2016

138 views 5 download

description

info

Transcript of Algoritmos Diagramas de Flujo y Programas (1)

{

Algoritmos, diagramas y programas

Capítulo 1

Problemas y algoritmos

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

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?

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

Etapas para Solución de un Problema

Problema

Análisis del problema

Construcción de

algoritmo

Verificación del

algoritmo

Secciones de un Algoritmo

Algoritmo

Datos de Entrada

Procesamiento de datos

Impresión de

resultados

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.

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.

{ Regla 1

Inicio

Fin

Regla 2No inclinadas

Reglas

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

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)

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

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

Variables- Pueden cambiar su valor durante la ejecución

0 0

0

I SUEL

SUMA

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

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

Operadores Relacionales:- Ejemplo:

A= 5B = 16

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

Operadores Relacionales:- Resultado:

A= 5B = 16

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

25 > (B*2)25 > 32

Resultado: Falso

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)

Operadores lógicos:

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

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

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

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

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

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

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

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

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.

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

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

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

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

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.

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

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

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

Ejemplo 9

NUM

VAL 100*V

VAL 100**V

VAL 100/V

1 2 3

INICIO

NUM,V

VAL 0

VAL

FIN

Otro

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

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

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

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

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

Ejemplo 11: Solución

Inicio

NUM

NUM>0

“Positivo”NUM=

0

“Nulo”“Negativo

Fin

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

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

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

Estructuras Algorítmicas Repetitivas

Inicio

NOMINA 0

I 1

I <=10

SUE

NOMINA NOMINA + SUE

I I +1

NOMINA

FIN

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

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”

Funciones de VerdadNegación

A ¬A

V F

F V

Chihuahua esta en México

Chihuahua no esta en México

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

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

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

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

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)

A ¬A A^¬A

V F F

F V F

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

Tautología

A ¬A Av¬A

V F V

F V V

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

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

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