Pcs2d

Taller 2 - 02 03 2013

Mar 2nd, 2013
165
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Scheme 3.40 KB | None | 0 0
  1. ;****************************************
  2. ;* Integrante 1:
  3. ;* **** Nombre:
  4. ;* **** Código:
  5. ;* Integrante 2:
  6. ;* **** Nombre:
  7. ;* **** Código:  
  8. ;* Archivo
  9. ;* **** Nombre:
  10. ;* **** fecha de creación: 2 Marzo 2013
  11. ;* **** fecha de última modificacion: 2 Marzo 2013
  12. ;****************************************
  13.  
  14. ;------------------1----------------
  15. ;Contrato: numero numero -> numero
  16. ;Proposito: Calacular el valor de una prenda segun las semanas en el inventario.
  17. ;Plantilla: (...(Nuevo_precio Precio1 Semanas) ...)
  18. ;Ejemplos:
  19. ;***(Nuevo_Precio 50000 5) -> 12500
  20. ;***(Nuevo_Precio 70000 2) -> 70000
  21. (define (Nuevo_Precio precio1 semanas)
  22.   (cond
  23.     [(< semanas 3)(* precio1 1)]
  24.     [(= semanas 4)(- precio1 (* precio1 0.5))]
  25.     [(>= semanas 5)(- precio1 (* precio1 0.75))]))
  26.  
  27. (Nuevo_Precio 50000 5)
  28. (Nuevo_Precio 70000 2)
  29.  
  30. ;------------------2----------------
  31. ;Contrato: numero numero -> numero
  32. ;Proposito: Calcular la cantidad de prendas segun la hora y el numero de trabajadores.
  33. ;Plantilla: (...(Ropita Hora NTrabajador) ...)
  34. ;Ejemplos:
  35. ;***(Ropita 1400 2)    -> 80
  36. ;***(Ropita 600 3)     -> 90
  37. ;***(Ropita 2450 2)    -> Dato incorreto
  38. ;***(Ropita 400 454)   -> No hora laboral
  39. ;***(Ropita -400 425)  -> Dato incorrecto
  40. ;***(Ropita 0 0)       -> No hora laboral
  41. (define (Ropita hora ntrabajador)
  42.   (cond
  43.     [(< hora 0) "Dato incorrecto"]
  44.     [(= hora 0) "No hora laboral"]
  45.     [(< hora 600) "No hora laboral"]
  46.     [(and (>= hora 600) (<= hora 1000)) (* ntrabajador 30)]
  47.     [(and (>= hora 1001) (<= hora 1400)) (* ntrabajador 40)]
  48.     [(and (>= hora 1401) (<= hora 1800)) (* ntrabajador 46)]
  49.     [(and (>= hora 1801) (<= hora 2359)) "No hora laboral"]
  50.     [else "Dato incorrecto"]))
  51.  
  52. (Ropita 1400 2)
  53. (Ropita 600 3)
  54. (Ropita 2450 2)
  55. (Ropita 400 454)
  56. (Ropita -400 425)
  57. (Ropita 0 0)
  58.  
  59. ;------------------3----------------
  60. ;Contrato: numero numero numero -> numero
  61. ;Proposito: Segun los datos ingresados el programa debe realizar la operacion indicada (sumar si todos son positivos o multiplicar si el primero es negativo).
  62. ;Plantilla: (...(Suma-o-Produto n1 n2 n3) ...)
  63. ;Ejemplos:
  64. ;***(Suma-o-Producto -2 0 4)  -> 0
  65. ;***(Suma-o-Producto -2 1 4)  -> -8
  66. ;***(Suma-o-Producto 1 8 4)   -> 32
  67. ;***(Suma-o-Producto 5 4 4)   -> 80
  68. (define (Suma-o-Producto n1 n2 n3)
  69.   (cond
  70.     [(< n1 0) (* (* n1 n2) n3)]
  71.     [else (* (* n1 n2) n3)]))
  72.  
  73. (Suma-o-Producto -2 0 4)
  74. (Suma-o-Producto -2 1 4)
  75. (Suma-o-Producto 1 8 4)
  76. (Suma-o-Producto 5 4 4)
  77.  
  78. ;------------------4----------------
  79. ;Para esta funcion se uso una sub funcion llamada "Multiplo" que usara la funcion "año_bisiesto"
  80. ;Contrato: numero -> boleano/valor logico
  81. ;proposito: indicar si el dato de entrada es multiplo de 100, es una funcion auxiliar, no imprime datos de salida en pantalla.
  82. (define (multiplo numero)
  83.   (= 0 (remainder numero 100)))
  84.  
  85. ;Contrato: numero -> simbolo
  86. ;Proposito: Imprimir/indicar en pantalla si el año ingresado es o no bisiesto.
  87. ;Plantilla: (...(Año_bisiesto Año) ...)
  88. ;Ejemplos:
  89. ;***(año_bisiesto 1992) -> bisiesto
  90. ;***(año_bisiesto 2009) -> no bisiesto
  91. ;***(año_bisiesto 1000) -> no bisiesto
  92. ;***(año_bisiesto 2008) -> bisiesto
  93. (define (año_bisiesto año)
  94.   (cond
  95.     [(and (= 0(remainder año 4))(not (multiplo año))) "año bisiesto"]
  96.     [(= (remainder año 400) 0) "año bisiesto"]
  97.     [else "año no bisiesto"]))
  98.  
  99. (año_bisiesto 1992)
  100. (año_bisiesto 2009)
  101. (año_bisiesto 1000)
  102. (año_bisiesto 2008)
Advertisement
Add Comment
Please, Sign In to add comment