View
144
Download
5
Category
Preview:
DESCRIPTION
info
Citation preview
{
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
Recommended