Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ;; The first three lines of this file were inserted by DrRacket. They record metadata
- ;; about the language level of this file in a form that our tools can easily process.
- #reader(lib "htdp-beginner-reader.ss" "lang")((modname |neto a pagar|) (read-case-sensitive #t) (teachpacks ()) (htdp-settings #(#t constructor repeating-decimal #f #t none #f () #f)))
- ;; Se trata de elaborar un programa en Racket que permita
- ;; calcular el neto a pagar a un empleado, dicho
- ;; valor consta de un devengado, que corresponde al número de
- ;; horas multiplicado por el valor de cada hora, más el valor
- ;; de las horas extras, que tendrán un recargo del 35%.
- ;; Adicionalmente, debe pagarse una bonificación, que se
- ;; calcula dependiendo de si las extras representan al menos
- ;; el 10% de las horas normales, como un 5% del devengado.
- ;; Debe restarse un deducido que
- ;; corresponde al 4% del devengado para salud y el 4% para
- ;; pensión, aunque si el devengado supera $1'000.000, el valor
- ;; de pensión será del 5%.
- ;; El programa debe recibir el número de horas trabajadas,
- ;; el valor de la hora normal y el número de horas extras
- ;;;;;;;;;;;;;;;;; FUNCION AUXILIAR: bonifica ;;;;;;;;;;;;;;
- ;; Contrato: bonifica: numero numero numero -> numero
- ;; Proposito: Calcular la bonificación, si hay lugar para ello
- ;; Ejemplo:
- ;; (bonifica 112 5000 15) debe retornar 33062
- ;; Programa:
- (define (bonifica horas valor extras)
- (cond
- [(>= extras (* horas 0.10)) (* (+ (* horas valor)
- (* (* valor 1.35) extras))
- 0.05)]
- [else 0]))
- ;; Prueba:
- (bonifica 112 5000 15)
- ;;;;;;;;;;;;;;;;; FUNCION AUXILIAR: devengado ;;;;;;;;;;;;;;
- ;; Contrato: devengado: numero numero numero -> numero
- ;; Propósito: calcular solo los devengados del empleado
- ;; Ejemplo:
- ;; (devengado 112 5000 15) debe retornar 694312
- ;; Programa:
- (define (devengado horas valor extras)
- (+ (* horas valor) ;; valor horas
- (* (* valor 1.35) extras) ;; valor extras
- (bonifica horas valor extras))) ;;valor bonificacion
- ;; Prueba:
- (devengado 112 5000 15)
- ;;;;;;;;;;;;;;;;; FUNCION AUXILIAR: deducido ;;;;;;;;;;;;;;
- ;; Contrato: deducido: numero numero numero -> numero
- ;; Proposito: Calcular el deducido del empleado
- ;; Ejemplo:
- ;; (deducido 112 5000 15) debe retornar 55545
- ;; Programa:
- (define (deducido horas valor extras)
- (+ (* (devengado horas valor extras) 0.04) ;; salud
- (cond
- [(> (devengado horas valor extras) 1000000)
- (* (devengado horas valor extras) 0.05)]
- [else (* (devengado horas valor extras) 0.04)]))) ;; pension
- ;; Prueba:
- (deducido 112 5000 15)
- ;;;;;;;;;;;;;;;;; FUNCION PRINCIPAL: neto ;;;;;;;;;;;;;;;;;
- ;; Contrato: neto: numero numero numero -> numero
- ;; Propósito: Calcular el neto a pagar a un empleado, de
- ;; acuerdo con el enunciado.
- ;; Ejemplo:
- ;; (neto 112 5000 15) debe retornar 638768
- ;; Programa:
- (define (neto horas valor extras)
- (- (devengado horas valor extras)
- (deducido horas valor extras)))
- ;; Prueba:
- (neto 112 5000 15)
- (neto 240 8000 15)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement