Advertisement
GeT_RiGhT

Untitled

Sep 9th, 2019
358
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.07 KB | None | 0 0
  1. ;; The first three lines of this file were inserted by DrRacket. They record metadata
  2. ;; about the language level of this file in a form that our tools can easily process.
  3. #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)))
  4. ;; Se trata de elaborar un programa en Racket que permita
  5. ;; calcular el neto a pagar a un empleado, dicho
  6. ;; valor consta de un devengado, que corresponde al número de
  7. ;; horas multiplicado por el valor de cada hora, más el valor
  8. ;; de las horas extras, que tendrán un recargo del 35%.
  9. ;; Adicionalmente, debe pagarse una bonificación, que se
  10. ;; calcula dependiendo de si las extras representan al menos
  11. ;; el 10% de las horas normales, como un 5% del devengado.
  12. ;; Debe restarse un deducido que
  13. ;; corresponde al 4% del devengado para salud y el 4% para
  14. ;; pensión, aunque si el devengado supera $1'000.000, el valor
  15. ;; de pensión será del 5%.
  16. ;; El programa debe recibir el número de horas trabajadas,
  17. ;; el valor de la hora normal y el número de horas extras
  18.  
  19. ;;;;;;;;;;;;;;;;; FUNCION AUXILIAR: bonifica ;;;;;;;;;;;;;;
  20. ;; Contrato: bonifica: numero numero numero -> numero
  21. ;; Proposito: Calcular la bonificación, si hay lugar para ello
  22. ;; Ejemplo:
  23. ;; (bonifica 112 5000 15) debe retornar 33062
  24. ;; Programa:
  25. (define (bonifica horas valor extras)
  26. (cond
  27. [(>= extras (* horas 0.10)) (* (+ (* horas valor)
  28. (* (* valor 1.35) extras))
  29. 0.05)]
  30. [else 0]))
  31. ;; Prueba:
  32. (bonifica 112 5000 15)
  33.  
  34. ;;;;;;;;;;;;;;;;; FUNCION AUXILIAR: devengado ;;;;;;;;;;;;;;
  35. ;; Contrato: devengado: numero numero numero -> numero
  36. ;; Propósito: calcular solo los devengados del empleado
  37. ;; Ejemplo:
  38. ;; (devengado 112 5000 15) debe retornar 694312
  39. ;; Programa:
  40. (define (devengado horas valor extras)
  41. (+ (* horas valor) ;; valor horas
  42. (* (* valor 1.35) extras) ;; valor extras
  43. (bonifica horas valor extras))) ;;valor bonificacion
  44. ;; Prueba:
  45. (devengado 112 5000 15)
  46.  
  47. ;;;;;;;;;;;;;;;;; FUNCION AUXILIAR: deducido ;;;;;;;;;;;;;;
  48. ;; Contrato: deducido: numero numero numero -> numero
  49. ;; Proposito: Calcular el deducido del empleado
  50. ;; Ejemplo:
  51. ;; (deducido 112 5000 15) debe retornar 55545
  52. ;; Programa:
  53. (define (deducido horas valor extras)
  54. (+ (* (devengado horas valor extras) 0.04) ;; salud
  55. (cond
  56. [(> (devengado horas valor extras) 1000000)
  57. (* (devengado horas valor extras) 0.05)]
  58. [else (* (devengado horas valor extras) 0.04)]))) ;; pension
  59. ;; Prueba:
  60. (deducido 112 5000 15)
  61.  
  62. ;;;;;;;;;;;;;;;;; FUNCION PRINCIPAL: neto ;;;;;;;;;;;;;;;;;
  63. ;; Contrato: neto: numero numero numero -> numero
  64. ;; Propósito: Calcular el neto a pagar a un empleado, de
  65. ;; acuerdo con el enunciado.
  66. ;; Ejemplo:
  67. ;; (neto 112 5000 15) debe retornar 638768
  68. ;; Programa:
  69. (define (neto horas valor extras)
  70. (- (devengado horas valor extras)
  71. (deducido horas valor extras)))
  72. ;; Prueba:
  73. (neto 112 5000 15)
  74. (neto 240 8000 15)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement