Estructura de Selección Doble If - Problemas Resueltos
Estructura de Selección Doble If - Problemas Resueltos
Estructura de Selección Doble If - Problemas Resueltos
Problema 4.1
Una tienda ha puesto en oferta la venta por docenas de cierto tipo de producto
ofreciendo un descuento del 15% por la compra de no menos de 6 docenas y 10%
en caso contrario. Adicionalmente la empresa ofrece un obsequio de 2 lapiceros
por cada 3 docenas por la compra de no menos 30 docenas del producto; en caso
contrario, no efectúa ningún obsequio. Diseñe un programa que determine el
monto de la compra, el monto del descuento, el monto a pagar y la cantidad de
lapiceros de obsequio por la compra de cierta cantidad de docenas del producto.
Inicio
// Declaración de variables
entero docenas, obsequio
real montocom, montodes, montopag, precio
// Entrada de datos
Leer docenas, precio
// Calcula el monto de la compra
montocom = docenas*precio
// Calcula el monto del descuento
si(docenas >= 6)
montodes = 0.15*montocom
sino
montodes = 0.10*montocom
// Calcula el monto a pagar
montopag = montocom - montodes
// Calcula el número de lapiceros de obsequio
si(docenas >= 30)
obsequio = 2*(docenas/3)
sino
obsequio = 0
// Salida de resultados
Imprimir montocom, montodes, montopag, obsequio
Fin
Problema 4.2
Inicio
// Declaración de variables
real donacion, comedor, salud, bolsa
// Entrada de datos
Leer donacion
// Reparte la donación
si( donacion >= 10000 ){
comedor = 0.30*donacion
salud = 0.50*donacion
bolsa = 0.20*donacion
}
sino{
comedor = 0.25*donacion
salud = 0.60*donacion
bolsa = 0.15*donacion
}
// Salida de resultados
Imprimir comedor, salud, bolsa
Fin
Problema 4.3
En una oficina de empleos categorizan a los postulantes en función del sexo y de
la edad de acuerdo a lo siguiente:
• Si la persona es de sexo femenino: categoría FA si tiene menos de 23 años y FB
en caso contrario.
• Si la persona es de sexo masculino: categoría MA si tiene menos de 25 años y
MB en caso contrario.
Diseñe un programa que determine la categoría de un postulante.
Inicio
// Declaración de variables
entero sexo, edad
cadena categoria
// Entrada de datos
Leer sexo, edad
// Determina la categoría
si( sexo == 0 ){
si( edad < 23 )
categoria = "FA"
sino
categoria = "FB"
}
sino{
si( edad < 25 )
categoria = "MA"
sino
categoria = "MB"
}
// Salida de resultados
Imprimir categoria
Fin
Problema 4.4
Diseñe un algoritmo que lea un número entero positivo tres cifras y determine si las cifras
del número son o no consecutivas (en orden ascendente o en orden descendente). En
caso que el número no cumpla con ser positivo de tres cifras, imprima el mensaje: "El
número debe ser positivo de tres cifras".
Inicio
// Declaración de variables
entero numero, u, d, c
cadena resultado
// Entrada de datos
Leer numero
// Prosigue si el número es correcto, sino pone un mensaje de error
si( numero >= 100 && numero <= 999 ){
// Determina las cifras del número
c = numero/100
d = (numero%100)/10
u = numero%10
// Determina si las cifras del número son o no consecutivas
si((d == c+1 && u == d+1) || (d == c-1 && u == d-1))
resultado = "Las cifras del número son consecutivas"
sino
resultado = "Las cifras del número no son consecutivas"
// Salida de resultados
Imprimir resultado
}
sino
Imprimir "El número debe ser positivo de tres cifras"
Fin
Problema 4.5
Una papelera ha puesto en oferta la venta al por mayor (en cientos) de papel bond de
acuerdo a los siguientes criterios:
• Para los primeros 5 cientos, se hace un descuento del 10% por cada ciento.
• Para los cientos en exceso sobre 5, se hace un descuento del 15% por cada ciento.
Diseñe un algoritmo que determine el importe bruto, el importe del descuento y el importe
a pagar por una compra de papel bond.
Inicio
// Declaración de variables
real importebru, importedes, importepag, precio
entero cientos
// Entrada de datos
Leer precio, cientos
// Determina el importe bruto
importebru = precio*cientos
// Determina el importe del descuento
si( cientos <= 5 )
importedes = 0.10*precio*cientos
sino
importedes = 0.10*5*precio + 0.15*(cientos-5)*precio;
// Determina el importe a pagar
importepag = importebru - importedes
// Salida de resultados
Imprimir importebru, importedes, importepag
Fin
Problema 4.6