6 2021-03-25
Examen de Inteligencia de los Negocios
Grado: Inteligencia de los Negocios
Fecha: 25 de marzo de 2021
Ejercicio 6.1 El cálculo del IRPF en la Hacienda española se define como progresivo. Hacienda divide los ingresos (tu renta) en tramos y asigna un porcentaje a pagar en cada uno de ellos. Estos tramos son los siguientes:
| Tramos IRPF 2021 | Tipos a aplicar |
|---|---|
| Desde 0 hasta 12.450€ | 19% |
| De 12.450€ a 20.200€ | 24% |
| De 20.200€ a 35.200€ | 30% |
| De 35.200€ en adelante | 37% |
Por ejemplo, para una persona con una renta de 65.000€, el cálculo del impuesto se haría así:
- Primer tramo IRPF: se paga el 19% de 12.450 euros, es decir, 2.365,5 euros
- Segundo tramo IRPF: se paga el 24% de 7.750 euros (la diferencia entre el primer y segundo tramo), es decir, 1.860 euros.
- Tercer tramo IRPF: se paga el 30% de 15.000 euros (la diferencia entre el segundo y tercer tramo), es decir, 4.500 euros.
- Cuarto tramo IRPF: se paga el 37% de 29.800 euros (la diferencia entre su renta y el límite del tercer tramo), es decir, 11.026 euros.
La suma de las anteriores cantidades es el total a pagar: 19.751,5 euros.
Escribir un programa que pregunte por la renta del usuario y muestre por pantalla el IRPF que debe pagar a Hacienda.
Solución 1
# Preguntamos por la renta
renta = int(input('Introduce tu renta: '))
# Condicional. Si la renta es menor que 12450€ aplicamos un tipo del 19%.
if (renta < 12450):
impuesto = renta * 0.19
# Si la renta es mayor que 12450€ y menor que 20200€ aplicamos el 19% a los
# primeros 12450€ y un 24% al resto.
elif (renta < 20200):
impuesto = 12450 * 0.19 + (renta - 12450) * 0.24
# Si la renta es mayor que 20200€ y menor que 35200€ aplicamos el 19% a los
# primeros 12450€, el 24% a los siguientes 7750€ y el 30% al resto.
elif (renta < 35200):
impuesto = 12450 * 0.19 + (20200 - 12450) * 0.24 + (renta - 20200) * 0.3
# Finalmente, si la renta es mayor que 35200€ aplicamos el 19% a los primeros
# 12450€, el 24% a los siguientes 7750€, el 30% a los siguientes 150000€ y el
# 37% al resto.
else:
impuesto = 12450 * 0.19 + (20200 - 12450) * 0.24 + (35200 - 20200) * 0.3 + (renta - 35200) * 0.37
# Mostramos por pantalla el total del impuesto a pagar.
print('Tienes que pagar:', impuesto)Tienes que pagar: 19751.5
Ejercicio 6.2 Juan juega siempre la misma combinación a la bonoloto: 7, 13, 21, 37, 46, 49.
Construir un programa que pregunte al usuario por la combinación ganadora y diga si Juan ha ganado o, en caso contrario, muestre por pantalla la lista de los números que no ha acertado. El programa debe usar listas.
Nota: El juego de la bonoloto consiste en acertar una combinación de 6 números entre 1 y 49.
# Guardamos la combinación de Juan en una lista.
combinacion = [7, 13, 21, 37, 46, 50]
# Bucle iterativo para preguntar los números de la combinación ganadora.
# i toma valores de 0 a 5, de manera que el bucle da 6 vueltas.
fallos = []
for i in range(6):
# Preguntamos al usuario por el siguiente número de la combinación ganadora.
num = int(input('Introduce el siguiente número de la combinación ganadora: '))
# Condicional. Si el número de la combinación ganadora no está en la lista de
# de Juan, lo añadimos a la lista de fallos.
if not num in combinacion:
fallos.append(num)
# Condicional. Si al comprobar todos los números de la combinación ganadora la
# lista de fallos está vacía, es que ha ganado.
if len(fallos) == 0:
print('¡Enhorabuena, ganaste!')
# En caso contrario, Juan no ha ganado y mostramos los números que quedan en la
# lista, que son los que no han salido en la combinación ganadora.
else:
print('Los siento, no acertaste los siguientes números:', fallos)Los siento, no acertaste los siguientes números: [2, 44, 38, 25]
Ejercicio 6.3 Los productos en oferta de una tienda de informática se guardan una cadena como la de más abajo, donde cada línea (separadas por el carácter de cambio de línea \n) contiene el nombre del producto, el número de unidades en stock, el precio (en €) y el descuento que tiene (en porcentaje), separados por punto y coma.
'disco duro 500Gb;200;25;15\nmemoria ram 16Gb;500;30;20\nratón inalámbrico;800;12;10\ntarjeta wifi;150;20;12'Construir un programa que genere, a partir de la cadena anterior, un diccionario como el de más abajo, donde cada par corresponda un producto, siendo la clave el nombre del producto y el valor una lista con el resto de la información del producto.
{‘disco duro 500Gb’: [‘200’, ‘25’, ‘15’], ‘memoria ram 16Gb’: [‘500’, ‘30’, ‘20’], ‘ratón inalámbrico’: [‘800’, ‘12’, ‘10’], ‘tarjeta wifi’: [‘150’, ‘20’, ‘12’]}Después el programa debe recorrer el diccionario y mostrar por pantalla un listado con los nombres de todos los productos en oferta y su precio final tras aplicar el descuento.
# Guardamos la cadena con los productos en oferta en una
cadena_ofertas = 'disco duro 500Gb;200;25;15\nmemoria ram 16Gb;500;30;20\nratón inalámbrico;800;12;10\ntarjeta wifi;150;20;12'
# Partimos la cadena por el carácter de cambio de línea '\n' y creamos una lista
# de subcadenas, donde cada subcadena contiene los datos de un producto.
lista_ofertas = cadena_ofertas.split('\n')
# Creamos un diccionario vacío para guardar los productos
ofertas = {}
# Bucle iterativo para recorrer la lista con las cadenas que contiene la
# información de los productos y crear el diccionario de productos.
# i toma como valores cada una de las subcadenas.
for i in lista_ofertas:
# Partimos la subcadena i por el carácter ';' y creamos una lista de
# subcadenas donde cada subcadena contiene una información del producto
info = i.split(';')
# Añadimos al diccionario la sublista desde el segundo elemento hasta el final,
# usando como clave el primer elemento de la lista, que es el nombre del producto.
ofertas[info[0]] = info[1:]
# Bucle iterativo para recorrer el diccionario que hemos creado por pares.
# producto recorre las claves y info los valores de los pares del diccionario.
for producto, info in ofertas.items():
# Calculamos el precio final del producto aplicando su correspondiente descuento.
precio = float(info[1]) * (1 - float(info[2]) / 100)
# Mostramos por pantalla el nombre del producto y su precio final.
print(producto, 'vale', precio, '€')disco duro 500Gb vale 21.25 €
memoria ram 16Gb vale 24.0 €
ratón inalámbrico vale 10.8 €
tarjeta wifi vale 17.6 €