Está en la página 1de 59

{

Algoritmos,
diagramas y
programas
Captulo 1
Problemas y algoritmos
Pasos, procedimiento o acciones que nos permiten alcanzar un resultado o
resolver un problema
Surgen preguntas
Qu opinan?
Se puede ensear
a resolver un
problema?
Se puede ensear
a analizar un
problema?
Podramos
ensear a pensar?
Construccin de Algoritmo
Construir 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 Solucin de un
Problema
Problema
Anlisis del
problema
Construccin
de algoritmo
Verificacin
del algoritmo
Secciones de un Algoritmo
Algoritmo
Datos de
Entrada
Procesamiento
de datos
Impresin de
resultados
Diagramas de flujo
Esquematizacin grfica de un algoritmo, su construccin es importante ya que
es la base para resolver un problema en un lenguaje de programacin.
Smbolos utilizados en Diagramas de
Flujo
Esquematizacin grfica de un algoritmo, su construccin es importante ya que
es la base para resolver un problema en un lenguaje de programacin.
{


Regla 1
Inicio
Fin



Regla 2
No inclinadas
Reglas
4) Diagramas construidos de arriba hacia abajo
5) Notaciones diferentes a lenguaje de programacin
6) Comentarios nos ayudan a expresar
7) Si se extiende ms de una hoja utilizas conectores
8) No ms de una lnea a cada smbolo
3) Todas las lneas deben estar conectadas
1.3.-Tipos de Datos:

Datos numricos: Enteros y reales (128) (7.5)

Datos alfanumricos: Puede contener letras del abecedario
(a,b,c) dgitos (0,1,2..) smbolos especiales (#,$,@). No
pueden realizarse operaciones aritmticas.

Datos lgicos: Operadores booleanos de varios valores
(verdadero o falso)
Identificadores
- El primer carcter que forma un identificador debe ser letra
(a,b,c)
- Los dems pueden ser letras, dgitos o el smbolo especial.
- La longitud es igual a 7 en la mayora de los lenguajes.


SUMA ACUM
AUX NUM_1
X7
Constantes
- Datos que no cambian en su ejecucin
- 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 ejecucin.


5 resultado
7.25 8.69
NUM RESU
NREAL NUMREA
Variables
- Pueden cambiar su valor durante la ejecucin


0 0
0
I SUEL
SUMA
Operaciones Aritmticas
- Para poder realizar operaciones necesitamos operadores
aritmticos, el resultado ser un nmero.


Operadores Aritmticos
Operador
Aritmtico
Operacin Ejemplo Resultado
** Potencia 4**3 64
* Multiplicacin 8.25*7 57.75
/ Divisin 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 Divisin entera 17 div 3 5
Orden:

Operadores
= 6 5 + 3 * 4
= 6 5 + 12
= 1 + 12
= 13
Operadores Relacionales:
- Nmeros + Operadores


Operadores Relacionales
Operador Operacin 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= 5
B = 16

(A**2) > (B*2)
Operadores Relacionales:
- Resultado:


A= 5
B = 16

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

25 > (B*2)
25 > 32

Resultado: Falso
Operadores lgicos:
Operadores lgicos
Operador lgico Jerarqua Expresin lgica Significado
No (Negacin) (mayor) No P No P No es cierto
que P
y (conjuncin) P y Q P^Q
P sin Embargo Q
o (disyuncin) (menor) P o Q P o Q
Jerarqua de los Operadores
Operadores Jerarqua
( ) (mayor)
**
*,/,div/mod
=, <,>, >=, <=
No
y
o (menor)
Operadores lgicos:
a) 7 * 5 ** 3 / 4 div 3 b) 7 * 8 * (160 mod 3 ** 3) div 5 * 13 - 28
Operadores lgicos:
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 lgicos:
c) ((1580 mod 6 * 2 ** 7) > (7 + 8 * 3 ** 4)) > ((15 * 2) = (60*2 /4))

Nota: Cuando se utilizan operadores de relacin con operandos lgicos falso es
menor que verdadero
Operadores lgicos:
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
Construccin de Diagramas de Flujo
Ejemplo 1: Construir un diagrama de flujo tal que dados los datos A, B, C y D que
representan nmeros 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
Construccin 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 expresin:
(A + B)
2
/3



INICIO
A,B
RES
FIN
Datos:
A y B (Variables de
tipo entero)
Para un proceso se
necesita el smbolo:
RES (A + B) **2 /3
Tabla Ejercicio 2
Nm
ero
de
Corri
da
Datos
A
Datos
B
Resul
tado
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
Construccin de Diagramas de Flujo
Ejemplo 3: Dada una matrcula y 5 calificaciones de un alumno obtenidas a lo largo
del semestre construya un diagrama de flujo que imprima la matrcula 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 matrcula y calificaciones
Almacena la variable PRO. El
promedio de las calificaciones
Escribe la matrcula y el promedio
Construccin de Diagramas de Flujo



Tabla de Asignacin
Nmero
de
Corrida
Datos 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 artculo 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 producto
PAGO: 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 nmero de segundos que hay en un determinado
nmero de das.


Datos: DIAS: Variable de tipo entero que expresa el nmero de das

Donde:
SEG: Variable de tipo real. Almacena los segundos que hay en determinado
nmero de das.
DIAS: Variable de tipo entero
Estructuras Algortmicas 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:

Condicin
Operacin
Falsa

NO
Verdadera

SI
Ejemplo 6:
Construya un diagrama de flujo tal que dado como dato la
calificacin de un alumno es un examen, escriba aprobado
en caso de que esa calificacin sea mayor a 8.




Datos: CAL (Variable de tipo real que representa la calificacin de un
alumno.
INICIO
CAL
CAL >
8
Aprobado
FIN
Estructuras Algortmicas 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 / SINO

Condi
cin
Operacin 1 Operacin 2
Falsa

NO
Verdadera

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




Datos: CAL (Variable de tipo real que representa la calificacin 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
<
1000
NSUE SUE * 1.15

NSUE SUE * 1.12
NSUE
NO
SI
Estructuras Algortmicas 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
funcin:



Datos: NUM, V

NUM: Variable de tipo entero que representa
El tipo (opcin) de clculo que se va a realizar
V: Es una variable de tipo entero que se utiliza
Para el clculo de la funcin
VAL
SI NUM = 1 100*V
SI NUM = 2 100**V
SI NUM = 3 100/V
Cualquier 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 MULTIPLE
Nmero de
Corrida
NUM 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
categora y el sueldo de un trabajador, calcule el aumento
correspondiente teniendo en cuenta la siguiente tabla.
Imprima la categora del trabajador y su nuevo sueldo:



Datos: CATE, SUE

CATE: Variable de tipo entero que representa la categora
del trabajador
SUE: Variable de tipo real que expresa el sueldo del
trabajador
VAL
SI CAT E=1 15% Aum
SI CATE= 2 10% Aum
SI CATE=3 8% Aum
SI 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 solucin de
problemas en los cuales hay que tomar una decisin en el
camino, pero seguido a esto hay que volver a tomar otra
decisin.



CON
1
CON
2
Operacin 21 Operacin 22
Ejemplo 11:

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



Datos: NUM

NUM: Variable entera que representa el nmero que
se ingresa
Ejemplo 11: Solucin




Inicio
NUM
NUM>0
Positivo
NUM=0
Nulo
Negativo
Fin
Ejemplo 12:

En una tienda efectan un descuento a los clientes
dependiendo del monto de la compra. El descuento se efecta
con base a los siguientes criterios:
Si el monto es menos que $500, no hay descuento
Si el monto esta entre $500 y $1000, efectan 5%
Si el monto esta entre $1000 y $7000, efectan 11%
Si el monto esta entre $7000 y $15000, efectan 18%
Si el monto es mayor a $15000, efectan 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 Algortmicas Repetitivas (Ciclos)

Es muy comn encontrar que en la prctica algoritmos cuyas
operaciones se deben ejecutar un nmero repetido de veces.
Si bien las instrucciones son las mismas, los datos sobre los
que opera varan.



Inicio
A
A<5
A A+1
FIN
Estructuras Algortmicas Repetitivas

Ejercicio Nmina:
Obtener el total de la nmina de los 10 empleados con los que
cuenta.

Datos: SUE
1,
SUE
2.



Explicacin Variables:
I: Variable de tipo entero que representa el control del ciclo. Contabiliza el
nmero de veces que la accin 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 Algortmicas Repetitivas

Inicio
NOMINA 0
I 1
I
<=10
SUE
NOMINA NOMINA + SUE
I I +1
NOMINA
FIN
Estructuras Algortmicas 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 Verdad
Muestran valores de verdad en proposiciones

Proposicin:
Analizar si es verdadero o falso la proposicin

Hoy es martes
Todos los nmeros son positivos
Las rosas son rojas

Conectores:


Conectores Smbolos
Y V
O ^
NO
Entonces
Si y solo si
Proposicin
Compuesta

Llueve y voy a la
Universidad
Funciones de Verdad
Negacin


A A
V F
F V
Chihuahua esta en Mxico

Chihuahua no esta en Mxico
Funciones de Verdad
Disyuncin


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 francs en la Universidad
B= El vivi en Francia

AVB= El estudio francs en la Universidad o el vivi en Francia
Funciones de Verdad
Conjuncin


A B A^B
V V V
V F F
F V F
F F F
Para poder ser verdadero las dos proposiciones debern ser verdaderas, de lo
contrario el resultado ser falso
Ejemplo:
A= Esta lloviendo
B= El sol brilla

A^B= Esta lloviendo y el sol brilla
Funciones de Verdad
Condicional


A B A B
V V V
V F F
F V V
F F V
Despus de una proposicin verdadera no puede tener inplicacin falsa porque su
Resultado ser falso. En todos los otros casos el resultado es verdadero
Ejemplo:
A= Hoy es lunes
B= Maana es sbado

A B= Hoy es lunes entonces maana es sbado
Funciones de Verdad
Bicondicional


A B A B
V V V
V F F
F V F
F F V
Despus de una proposicin verdadera no puede tener inplicacin falsa porque su
Resultado ser falso.
Ejemplo:
A= El nmero 24 es par
B= 24 es divisible por 2

A B= El nmero 24 es par si y solo si 24 es divisible por 2
Tablas de Verdad
3 tipos:

a) Indeterminada
b) Contradiccin
c) Tautologa


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
Contradiccin (Se da cuando existen valores falsos como
resultado final)
Tautologa


A A AvA
V F V
F V V
Tautologa (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