Google+ Seguidores

lunes, 4 de agosto de 2014

Ejercicios en python (parte 5)

    4

Ejercicio en python
Ejercicio en python
Hace unos días me dejaron un comentario en una de las entradas anteriores, planteando un ejercicio que me ha parecido interesante compartir con ustedes.
Para darle un poco de complejidad al ejercicio, la idea es hacerlo utilizando una base de datos (en este caso utilizaremos Sqlite3): puedes ver la entrada que hice sobre Sqlite3 (Python y Sqlite3 como base de datos) para que sirva como guía.

Ejercicio Python:


Una PyME, tiene la siguiente estructura de pagos para sus 10 empleados: 

Un sueldo base

Una bonificación del 1% del sueldo base, por cada mes trabajado

Una asignación familiar del 5% del sueldo base, por cada hijo

La suma de los tres valores anteriores, conforman la “base imponible”.
Todos los empleados están en FONASA, así que deben cotizar el 7% de la base imponible en salud. Los empleados están en una de dos: AFPs, la primera cobra (entre imposición y otros gastos) el 12 % de la base imponible, mientras que la segunda cobra el 11.4%

Construyan un programa Python que:


a) Pida el ingreso de datos de los 10 empleados y los almacene. Debe pedir: nombre, apellido, sueldo base, afap, fecha de ingreso y cantidad de hijos.

b) El programa debe calcular la base imponible, según lo indicado arriba y luego descontar según corresponda.

c) El programa debe calcular lo que se debe pagar a FONASA y el monto de cada AFAP.

d) El programa debe calcular los promedios de pago a los empleados

e) El programa debe implementar control de excepciones en cada ingreso de información.

El mensaje debe ser claro al usuario, indicando que debe corregir en cada intento de ingresar los datos.E

Se entiende por:

FONASAEl Fondo Nacional de Salud, FONASA, es el organismo público encargado de otorgar cobertura de atención, tanto a las personas que cotizan el 7% de sus ingresos mensuales en FONASA, como a aquellas que, por carecer de recursos propios, financia el Estado a través de un aporte fiscal directo.

AFAPAFAP significa “Administradora de Fondos de Ahorro Previsional”. Son empresas que administran parte del aporte de los trabajadores afiliados para que en el futuro tengan una mejor jubilación. 

Puedes ver también: Ejercicios de programación

Suerte.....

4 comentarios:
Write comentarios
  1. Hola, creo que el literal B de las pregunta esta mal especificada. no se debe descontar según corresponda, debe aumentar porque son las bonificaciones

    ResponderEliminar
  2. Dejo mi código para que lo mires (y)

    # -*- coding: utf-8 -*-
    def calculo(x,a):
    from datetime import datetime, date, time
    baseimponible = [None]*a
    sueldoreal = [None]*a
    sumsueldo = 0
    Fonansa = 0
    AFP1 = 0
    AFP2 = 0
    PromPago = 0
    dif = 0
    for j in range(a):
    dia = int(x[j][4][0] + x[j][4][1])
    mes = int(x[j][4][3] + x[j][4][4])
    ano = int(x[j][4][6] + x[j][4][7] + x[j][4][8] + x[j][4][9])
    fecha = datetime(ano,mes,dia,0,0,0)
    ahora = datetime.now()
    dif = ahora - fecha
    factor = float(dif.days/365)*12 # Aprox 30 días por mes
    baseimponible[j] = x[j][2] + 0.01*factor*x[j][2]+0.05*x[j][5]*x[j][2]
    if x[j][3] == 1:
    sueldoreal[j] = baseimponible[j] - 0.07*baseimponible[j] - 0.12*baseimponible[j]
    sumsueldo = sumsueldo + sueldoreal[j]
    AFP1 = 0.12*baseimponible[j]+AFP1
    else:
    sueldoreal[j] = baseimponible[j] - 0.07*baseimponible[j] - 0.114*baseimponible[j]
    sumsueldo = sumsueldo + sueldoreal[j]
    AFP2 = 0.114*baseimponible[j]+AFP2
    Fonansa = 0.07*baseimponible[j]+Fonansa
    PromPago = sumsueldo/a
    print("Fonansa Total: ", + Fonansa)
    print("AFP 1: ", + AFP1)
    print("AFP 2: ", + AFP2)
    print("Promedio de pagos", + PromPago)

    def main():
    n = input("numero de empleados")
    s = [None]*n
    for i in range(n):
    s[i] = [None]*6
    for i in range(n): #Numero de empleados
    s[i][0] = raw_input("Nombre: ")
    s[i][1] = raw_input("Apellido: ")
    while True:
    try:
    s[i][2] = input("Sueldo Base: ")
    break
    except:
    print "Oops! No es valido el argumento, intente nuevamente"
    while True:
    try:
    s[i][3] = input("AFP (1 (12%) o 2 (11.4%)): ")
    break
    except:
    print "Oops! No es valido el argumento, intente nuevamente"
    s[i][4] = raw_input("Fecha de ingreso (DD/MM/AAAA): ")
    while True:
    try:
    s[i][5] = input("Numero de hijos: ")
    break
    except:
    print "Oops! No es valido el argumento, intente nuevamente"
    calculo(s,n)

    ResponderEliminar
    Respuestas
    1. Ok, cuando tenga un tiempito lo miro. Gracias por visitar el blog. Saludos

      Eliminar
  3. hola estoy buscando un programa simple .. soy novato y necesito que me pases los codicos del sigte problema..
    el ejercicio es elsigte..
    hacer programa en python que calcule el total de una factura.
    crea una variable llamada total_importe que contendra el total a pagar.
    crea 2 constantes llamadas IVA_UNO y IVA-DOS QUE CONTENDRA el porceentaje del impuesto, 5 % y 10 % respectivamente.
    si el monto a pagar es menor a 100000 debes usar 5% de iva, en caso contrario debes usar 10 %.
    hay que realizar un descuento, en fucion de la suma de los importes, dicho descuento es del 0% si es menor que 1000, es del 5% si es mayor o igual que 10000 y menor que 50000 y es de 8% si es mayor que 100000. El descuento se debe aplicar antes de calcular el IVA.
    para acabar se debe imprimir el importe total y el iva resultantes..

    por favor si me ayuda desde ya muchas gracias..!!

    ResponderEliminar

Tu comentario es importante y nos motiva a seguir escribiendo...

Entradas más recientes

© 2014 Mi diario Python. Designed by Bloggertheme9 | Distributed By Gooyaabi Templates
Powered by Blogger.