2012
UNANLEON
DPTO. DE COMPUTACION
FACULTAD CIENCIA Y TECNOLOGIA
UNIDAD
IV:
ESTRUCTURA DECISIN LGICA
Lgica de Programacin | [Link]. Ana Mara Salgado G.
Estructura decisin lgica
Representacin
Si <expresin lgica> Entonces
secuencia1 | camino1
Sino
secuencia2 | camino2
FinSi
Funcionamiento
[Link]. Ana Mara Salgado G. Pgina 2
Estructura decisin lgica
Existen tres tipos de decisiones lgicas: simples, dobles y mltiples.
Simples: Las estructuras condicionales simples se les conoce como Tomas de
decisin. Estas tomas de decisin tienen la siguiente forma:
Si <expresin lgica> Entonces
Accin(es)
FinSi
Dobles: Las estructuras condicionales dobles permiten elegir entre dos opciones o
alternativas posibles en funcin del cumplimiento o no de una determinada
condicin. Se representa de la siguiente forma:
Si <condicin> Entonces
Accin(es)
Sino
Accin(es)
FinSi
Mltiples: Las estructuras de comparacin mltiples, son tomas de decisin
especializadas que permiten comparar una variable contra distintos posibles
resultados, ejecutando para cada caso una serie de instrucciones especficas. La
forma comn es la siguiente:
Si <condicin> Entonces
Accin(es)
Sino
Si <condicin> Entonces
Accin(es)
Sino
.
. Varias condiciones
[Link]. Ana Mara Salgado G. Pgina 3
Estructura decisin lgica
Ejercicios resueltos
1. Construya un pseudocdigo y su correspondiente diagrama de flujo, que al recibir
como dato el promedio de un alumno en un curso universitario, escriba aprobado
en caso de que el promedio sea satisfactorio, es decir mayor o igual a 60.
Datos de entrada
El promedio del alumno.
Datos de salida
El rtulo aprobado si coincide con la condicin.
Definicin de variables
promedio: Representa el promedio del alumno en un curso universitario.
Pseudocdigo
Proceso promedio2
//[Link]
//El programa, al recibir como dato el promedio de un alumno en un curso
//universitario, escribe aprobado si su promedio es mayor o igual a 6.
Definir promedio Como Real;
Escribir "Ingrese el promedio del alumno: ";
Leer promedio;
si promedio >= 60 Entonces
Escribir "aprobado";
FinSi
FinProceso
Diagrama de flujo
[Link]. Ana Mara Salgado G. Pgina 4
Estructura decisin lgica
Prueba de escritorio
Nmero de corrida promedio Resultado
1 67 aprobado
2 59
3 40
4 88 aprobado
5 93 aprobado
Salida
2. Construya un diagrama de flujo y pseudocdigo que, al recibir como dato el precio
de un producto importado, incremente 11% del mismo si es inferior a $1,500 y que
adems escriba el nuevo precio del producto.
Datos de entrada
El precio del producto.
Datos de salida
El nuevo precio del producto.
Definicin de variables
precio: Variable de tipo real que representa el precio del producto.
npr: Variable de tipo real que almacena el nuevo precio del producto.
[Link]. Ana Mara Salgado G. Pgina 5
Estructura decisin lgica
Pseudocdigo
Proceso incrementoprecio
//[Link]
//El programa, al recibir como dato el precio de un producto importado,
//incrementa 11% el mismo si ste es inferior a $1500.
Definir precio, npr como real;
Escribir "Introduzca el precio del producto: ";
Leer precio;
si precio < 1500 Entonces
npr = precio * 1.11;
Escribir "Nuevo precio: ",npr;
FinSi
FinProceso
Diagrama de flujo
Prueba de escritorio
Nmero de corrida precio npr
1 1500
2 2000
3 1000 1110
4 600 666
[Link]. Ana Mara Salgado G. Pgina 6
Estructura decisin lgica
Salida
3. Un hombre desea saber cunto dinero se genera por concepto de intereses sobre la
cantidad que tiene en inversin en el banco. El decidir reinvertir los intereses
siempre y cuando estos excedan a $7000, y en ese caso desea saber cunto dinero
tendr finalmente en su cuenta.
Datos de entrada
El porcentaje de inters.
El capital inicial
Datos de salida
El capital final.
Proceso
Se compara el inters obtenido, s:
inters > 7000. Entonces se calcula el capital final, sumndole al capital inicial el inters
obtenido. Luego, se imprime el capital final.
Definicin de variables
cap: Representa el capital inicial.
p_int: Representea el porcentaje de inters.
int: Representa el inters obtenido.
capf: Representa el capital final a obtener.
[Link]. Ana Mara Salgado G. Pgina 7
Estructura decisin lgica
Pseudocdigo
Proceso inversion
Definir cap, capf, int como real;
Definir p_int como entero;
Escribir "Cual es su capital inicial?:";
Leer cap;
Escribir "A que porcentaje de interes?:";
Leer p_int;
int <- cap * (p_int/100);
Si int > 7000 Entonces
capf <- cap + int;
Escribir "Su capital final es: ",capf;
FinSi
FinProceso
Diagrama de flujo
Diagrama de flujo
cap p_int int capf
80000 10 8000 88000
[Link]. Ana Mara Salgado G. Pgina 8
Estructura decisin lgica
Salida
4. Un ejemplo de uso de esta sentencia es el siguiente programa, que decide si un
nmero es par:
Datos de entrada
Un nmero entero
Datos de salida:
El valor del nmero, y un mensaje es par.
Proceso
Se calcula numero MOD 2, s:
Es igual a 0, entonces se escribe el valor del nmero y el mensaje es par.
Definicin de variables
numero: Almacena el nmero a comprobar.
Pseudocdigo
Proceso numeropar
Definir numero como entero;
Escribir "Ingrese un entero: ";
[Link]. Ana Mara Salgado G. Pgina 9
Estructura decisin lgica
Leer numero;
Si numero MOD 2 = 0 Entonces
Escribir numero," es par";
FinSi
FinProceso
Diagrama de flujo
Prueba de escritorio
Nmero de corrida numero Resultado
1 50 50 es par
2 31
3 25
4 40 40 es par
Salida
[Link]. Ana Mara Salgado G. Pgina 10
Estructura decisin lgica
Ejercicios resueltos condicionales dobles
5. Realice un pseudocdigo que decida si un nmero es par o impar.
Datos de entrada
Un nmero entero
Datos de salida:
El valor del nmero, y un mensaje es par o el mensaje es impar.
Proceso
Se calcula numero MOD 2, s:
Es igual a 0, entonces se escribe el valor del nmero y el mensaje es par.
Es distinto de 0, entonces se escribe el valor del nmero y el mensaje es impar.
Definicin de variables
numero: Almacena el nmero a comprobar.
Pseudocdigo
Proceso numeropar_impar
Definir numero como entero;
Escribir "Ingrese un entero: ";
Leer numero;
Si numero MOD 2 = 0 Entonces
Escribir numero," es par";
sino
Escribir numero, " es impar";
FinSi
FinProceso
[Link]. Ana Mara Salgado G. Pgina 11
Estructura decisin lgica
Diagrama de flujo
Prueba de escritorio
Nmero de corrida numero Resultado
1 50 50 es par
2 31 31 es impar
3 25 25 es impar
4 40 40 es par
Salida
[Link]. Ana Mara Salgado G. Pgina 12
Estructura decisin lgica
6. Construya un pseudocdigo y su correspondiente diagrama de flujo, que al recibir
como dato el promedio de un alumno en un curso universitario, escriba aprobado
en caso de que el promedio sea satisfactorio, es decir mayor o igual a 60 y escriba
reprobado en caso contrario.
Datos de entrada
El promedio del alumno.
Datos de salida
El rtulo aprobado si la condicin es verdadera, de lo contrario el rtulo
reprobado.
Definicin de variables
promedio: Representa el promedio del alumno en un curso universitario.
Pseudocdigo
Proceso promedio3
//[Link]
//El programa, al recibir como dato el promedio de un alumno en un curso
//universitario, escribe "aprobado" si su promedio es mayor o igual a 6 y
//"reprobado" en caso contrario.
Definir promedio Como Real;
Escribir "Ingrese el promedio del alumno: ";
Leer promedio;
si promedio >= 60 Entonces
Escribir "aprobado";
sino
Escribir "reprobado";
FinSi
FinProceso
[Link]. Ana Mara Salgado G. Pgina 13
Estructura decisin lgica
Diagrama de flujo
Prueba de escritorio
Nmero de corrida promedio Resultado
1 67 aprobado
2 59 reprobado
3 40 reprobado
4 88 aprobado
5 93 aprobado
Salida
[Link]. Ana Mara Salgado G. Pgina 14
Estructura decisin lgica
7. Construya un diagrama de flujo y pseudocdigo que, al recibir como dato el precio
de un producto importado, incremente 11% del mismo si es inferior a $1,500 y 8% si
fuera mayor o igual a dicho precio; adems, debe escribir el nuevo precio del
producto.
Datos de entrada
El precio del producto.
Datos de salida
El nuevo precio del producto.
Definicin de variables
precio: Variable de tipo real que representa el precio del producto.
npr: Variable de tipo real que almacena el nuevo precio del producto.
Pseudocdigo
Proceso incrementoprecio2
//[Link]
//El programa, al recibir como dato el precio de un producto importado,
//incrementa 11% el mismo si ste es inferior a $1500 y 8% en caso contrario
Definir precio, npr como real;
Escribir "Introduzca el precio del producto: ";
Leer precio;
si precio < 1500 Entonces
npr = precio * 1.11;
sino
npr = precio * 1.08;
FinSi
Escribir "Nuevo precio: ",npr;
FinProceso
[Link]. Ana Mara Salgado G. Pgina 15
Estructura decisin lgica
Diagrama de flujo
Prueba de escritorio
Nmero de corrida precio npr
1 1500 1620
2 2000 2160
3 1000 1110
4 600 666
Salida
[Link]. Ana Mara Salgado G. Pgina 16
Estructura decisin lgica
8. Un obrero necesita calcular su salario semanal, el cual se obtiene de la sig. manera:
Si trabaja 40 horas o menos se le paga $16 por hora
Si trabaja ms de 40 horas se le paga $16 por cada una de las primeras 40 horas y
$20 por cada hora extra.
Datos de entrada
Las horas trabajadas por el obrero
Datos de salida
El salario semanal
Definicin de variables
ht: representa las horas trabajadas por el obrero.
he: representa las horas extras trabajadas por el obrero.
ss: salario semanal devengado
Pseudocdigo
Proceso obrero
Definir ht,he como entero;
Definir ss como real;
Escribir "Horas trabajadas:";
Leer ht;
Si ht > 40 entonces
he <- ht - 40;
ss <- he * 20 + 40 * 16;
Sino
ss <- ht * 16;
FinSi
Escribir "Salario semanal = ",ss;
FinProceso
[Link]. Ana Mara Salgado G. Pgina 17
Estructura decisin lgica
Diagrama de flujo
Prueba de escritorio
ht he ss
42 2 680
Salida
Ejercicios resueltos Condicionales mltiples
1. Construya un diagrama de flujo y su pseudocdigo, que al recibir como dato Y,
calcule el resultado de la siguiente funcin e imprima los valores de X y Y.
4/YY Si 0 <= Y <= 10
Y3 12 Si 11 < Y <= 25
F(x) =
Y2 + (Y3 -18) Si 25 < Y <= 50
0 Para otro valor de Y
Pseudocdigo
Proceso funcion
//[Link]
//El programa, al recibir como dato un valor entero, calcula el resultado
[Link]. Ana Mara Salgado G. Pgina 18
Estructura decisin lgica
//de una funcion
Definir X como entero;
Definir YY como real;
Escribir "Ingrese el valor de YY: ";
Leer YY;
si YY <= 0 o YY > 50 entonces
X = 0;
sino
si YY <= 10 entonces
X = 4 / YY - YY;
sino
si YY <= 25 entonces
X = YY^3 - 12;
sino
X = YY ^2 + YY ^3 - 18;
finsi
finsi
finsi
Escribir "Y = ",YY, " X = ",X;
FinProceso
Diagrama de flujo
[Link]. Ana Mara Salgado G. Pgina 19
Estructura decisin lgica
2. En una tienda departamental ofrecen descuentos a los clientes en la Navidad, de
acuerdo con el monto de su compra. El criterio para establecer el descuento se
muestra abajo. Realice un pseudocdigo, tal que, al recibir como dato el monto de la
compra del cliente, obtenga el precio real que debe pagar luego de aplicar el descuento
correspondiente.
Compra < $800 Descuento 0%
$800 <= Compra <= $1500 Descuento 10%
$1500 < Compra <= $5000 Descuento 15%
$5000 < Compra Descuento 20%
Pseudocdigo
Proceso compraNavidad
Definir compra, dcto, precioreal como real;
Escribir "Ingrese el monto de la compra:";
Leer compra;
Si compra < 800 Entonces
dcto <- 0;
Sino
si compra >= 800 & compra <= 1500 Entonces
dcto <- compra * 10 / 100;
Sino
si compra > 1500 & compra <= 5000 Entonces
dcto <- compra * 15 / 100;
Sino
dcto <- compra * 20 / 100;
FinSi
FinSi
FinSi
precioreal <- compra - dcto;
Escribir "El precio real es: ", precioreal;
FinProceso
[Link]. Ana Mara Salgado G. Pgina 20
Estructura decisin lgica
Diagrama de flujo
3. Realice un pseudocdigo y diagrama de flujo, tal que al recibir como dato el
salario de un profesor de una universidad, calcule el incremento del salario de acuerdo
con el siguiente criterio y escriba el nuevo salario del profesor.
Salario < $18,000 Incremento 12%
$18,000 <= Salario <= $30,000 Incremento 8%
$30,000 < Salario <= $50,000 Incremento 7%
$50,000 < Salario Incremento 6%
[Link]. Ana Mara Salgado G. Pgina 21
Estructura decisin lgica
Pseudocdigo
Proceso incrementoSalario
Definir salario, incremento, nuevosalario como real;
Escribir "Ingrese el salario del profesor:";
Leer salario;
Si salario < 18000 Entonces
incremento <- salario * 12 / 100;
Sino
Si salario >= 18000 & salario <= 30000 Entonces
incremento <- salario * 8 / 100;
Sino
Si salario > 30000 & salario <= 50000 Entonces
incremento <- salario * 7 / 100;
Sino
incremento <- salario * 6 / 100;
FinSi
FinSi
FinSi
nuevosalario <- salario + incremento;
Escribir "El nuevo salario es:", nuevosalario;
FinProceso
Diagrama de flujo
[Link]. Ana Mara Salgado G. Pgina 22
Estructura decisin lgica
4. Escribir un algoritmo que acepte tres nmeros enteros diferentes y muestre el
mayor de ellos. El enunciado aclara que no existen nmeros iguales, por lo tanto
existe un valor menor, uno medio y uno mayor.
Datos de entrada
Los tres nmeros. Estos deben almacenarse en variables distintas.
Datos de salida
El valor del nmero mayor.
Definicin de variables
num1: Valor del primer nmero a introducir.
num2: Valor del segundo nmero
num3: Valor del tercer nmero
mayor: variable que almacenar el valor mayor entre num1, num2 y num3.
Pseudocdigo
Proceso mayor
Definir num1, num2, num3, mayor como entero;
Escribir "Ingrese tres enteros diferentes:";
Leer num1, num2, num3;
Si (num1 > num2) & (num1 > num3) entonces
mayor <- num1;
Sino
Si (num2 > num1) & (num2 > num3) entonces
mayor <- num2;
Sino
mayor <- num3;
FinSi
FinSi
Escribir "El mayor es: ",mayor;
FinProceso
[Link]. Ana Mara Salgado G. Pgina 23
Estructura decisin lgica
Diagrama de flujo
Prueba de escritorio
num1 num2 num3 mayor
25 26 56 56
Salida
[Link]. Ana Mara Salgado G. Pgina 24
Estructura decisin lgica
5. En una tienda de descuento se efecta una promocin en la cual se hace un
descuento sobre el valor de la compra total segn el color de la bolita que el
cliente saque al pagar en caja. Si la bolita es de color blanco no se le har
descuento alguno, si es verde se le har un 10% de descuento, si es amarilla un
25%, si es azul un 50% y si es roja un 100%. Determinar la cantidad final que el
cliente deber pagar por su compra. Se sabe que slo hay bolitas de los colores
mencionados.
Datos de entrada
Total de la compra.
Color de la bolita seleccionada por el cliente.
Datos de salida
Total a pagar.
Definicin de variables
tc: Total de la compra.
color: Color de la bolita.
d: Descuento.
tpagar: Total a pagar.
Pseudocdigo
Proceso colorbolita
Definir tc,d,tpagar como real;
definir color como caracter;
Escribir "Cual es el total de la compra?:";
Leer tc;
Escribir "Saque una bolita y diga de que color es?:";
Leer color;
Si color = "blanco" entonces
d<-0;
Sino
Si color = "verde" entonces
d <- tc*0.10;
Sino
Si color = "amarilla" entonces
d <- tc*0.25;
Sino
Si color = "azul" entonces
d <- tc*0.50;
[Link]. Ana Mara Salgado G. Pgina 25
Estructura decisin lgica
Sino
d <- tc;
FinSi
FinSi
FinSi
FinSi
tpagar <- tc - d;
Escribir "Total a pagar = ", tpagar;
FinProceso
Diagrama de flujo
[Link]. Ana Mara Salgado G. Pgina 26
Estructura decisin lgica
Prueba de escritorio
tc color d tpagar
1000 azul 500 500
Salida
6. La Ca. Automovilstica Mexicana, S.A. de C.V premia anualmente a sus mejores
vendedores de acuerdo a la siguiente tabla:
Si vendi Le corresponde de comisin
sobre ventas totales
1,000,000 <= v < 3,000,000 3%
3,000,000 <= v < 5,000,000 4%
5,000,000 <= v < 7,000,000 5%
7,000,000 <= v 6%
Disear un algoritmo que lea las ventas de un vendedor y que escriba la comisin que le
corresponde.
Datos de entrada
Valor de las ventas.
Datos de salida
Comisin del vendedor.
Definicin de variables
ventas: Representa las ventas de un vendedor.
comisin: Representa la comisin ganada por un vendedor.
[Link]. Ana Mara Salgado G. Pgina 27
Estructura decisin lgica
Pseudocdigo
Proceso VentasAutomovilisticas
Definir ventas,comision como real;
Escribir "Cuanto vendio?:";
Leer ventas;
Si ventas >= 1000000 & ventas < 3000000 entonces
comision <- ventas * 0.03;
Sino
Si ventas >= 3000000 & ventas < 5000000 entonces
comision <- ventas * 0.04;
Sino
Si ventas >= 5000000 & ventas < 7000000 entonces
comision <- ventas * 0.05;
Sino
comision <- ventas * 0.06;
FinSi
FinSi
FinSi
Escribir "Comision = ",comision;
FinProceso
Diagrama de flujo
[Link]. Ana Mara Salgado G. Pgina 28
Estructura decisin lgica
Prueba de escritorio
ventas comision
6000000 300000
Salida
Ejercicios propuestos
1. Escriba un diagrama de flujo y pseudocdigo, que al recibir como datos tres valores
enteros R, T, Q, determine si los mismos satisfacen la siguiente expresin, y que, en caso
afirmativo, escriba los valores correspondientes de R, T y Q.
R4 T3 + 4 * Q2 < 820
2. El nmero de sonidos emitidos por un grillo en un minuto es una funcin de la
temperatura. Es posible entonces determinar el nivel de la temperatura utilizando un
grillo como termmetro. Construya diagrama de flujo y su correspondiente pseudocdigo,
que calcule la temperatura con base en el nmero de sonidos emitidos por el grillo:
FA = S / 4 + 40
FA representa la temperatura en grados Fahrenheit.
S representa el nmero de sonidos emitidos por el grillo.
3. Haga un algoritmo que permita calcular el valor de f(x), segn la expresin:
X2 si (x mod 4)=0
X/6 si (x mod 4)=1
f(x)= x si (x mod 4)=2
x3 + 5 si (x mod 4)=3
[Link]. Ana Mara Salgado G. Pgina 29
Estructura decisin lgica
4. Una persona enferma, que pesa 70 kg, se encuentra en reposo y desea saber
cuntas caloras consume su cuerpo durante todo el tiempo que realice una misma
actividad. Las actividades que tiene permitido realizar son nicamente dormir o estar
sentado en reposo. Los datos que tiene son que estando dormido consume 1.08 caloras
por minuto y estando sentado en reposo consume 1.66 caloras por minuto.
5. Hacer un algoritmo que imprima el nombre de un artculo, clave, precio original y
su precio con descuento. El descuento lo hace en base a la clave, si la clave es 01 el
descuento es del 10% y si la clave es 02 el descuento en del 20% (solo existen dos claves).
6.
7.
8.
9.
[Link]. Ana Mara Salgado G. Pgina 30
Estructura decisin lgica
10.
11.
Bibliografa
Oviedo Regino Efran M. Lgica de Programacin. 2da edicin.
Hernndez Mara Lourdes. Diseo estructurado de algoritmos. Diagramas de
flujos y pseudocdigos. Universidad de Teuxtepe, Mxico.
Osvaldo Cair. Metodologa de la programacin: Algoritmos, diagramas de flujo y
programas. Editorial COMPUTEC.
[Link]. Ana Mara Salgado G. Pgina 31