Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ;****************************************
- ;* Integrante 1:
- ;* **** Nombre:
- ;* **** Código:
- ;* Integrante 2:
- ;* **** Nombre:
- ;* **** Código:
- ;* Archivo
- ;* **** Nombre:
- ;* **** fecha de creación: 2 Marzo 2013
- ;* **** fecha de última modificacion: 2 Marzo 2013
- ;****************************************
- ;------------------1----------------
- ;Contrato: numero numero -> numero
- ;Proposito: Calacular el valor de una prenda segun las semanas en el inventario.
- ;Plantilla: (...(Nuevo_precio Precio1 Semanas) ...)
- ;Ejemplos:
- ;***(Nuevo_Precio 50000 5) -> 12500
- ;***(Nuevo_Precio 70000 2) -> 70000
- (define (Nuevo_Precio precio1 semanas)
- (cond
- [(< semanas 3)(* precio1 1)]
- [(= semanas 4)(- precio1 (* precio1 0.5))]
- [(>= semanas 5)(- precio1 (* precio1 0.75))]))
- (Nuevo_Precio 50000 5)
- (Nuevo_Precio 70000 2)
- ;------------------2----------------
- ;Contrato: numero numero -> numero
- ;Proposito: Calcular la cantidad de prendas segun la hora y el numero de trabajadores.
- ;Plantilla: (...(Ropita Hora NTrabajador) ...)
- ;Ejemplos:
- ;***(Ropita 1400 2) -> 80
- ;***(Ropita 600 3) -> 90
- ;***(Ropita 2450 2) -> Dato incorreto
- ;***(Ropita 400 454) -> No hora laboral
- ;***(Ropita -400 425) -> Dato incorrecto
- ;***(Ropita 0 0) -> No hora laboral
- (define (Ropita hora ntrabajador)
- (cond
- [(< hora 0) "Dato incorrecto"]
- [(= hora 0) "No hora laboral"]
- [(< hora 600) "No hora laboral"]
- [(and (>= hora 600) (<= hora 1000)) (* ntrabajador 30)]
- [(and (>= hora 1001) (<= hora 1400)) (* ntrabajador 40)]
- [(and (>= hora 1401) (<= hora 1800)) (* ntrabajador 46)]
- [(and (>= hora 1801) (<= hora 2359)) "No hora laboral"]
- [else "Dato incorrecto"]))
- (Ropita 1400 2)
- (Ropita 600 3)
- (Ropita 2450 2)
- (Ropita 400 454)
- (Ropita -400 425)
- (Ropita 0 0)
- ;------------------3----------------
- ;Contrato: numero numero numero -> numero
- ;Proposito: Segun los datos ingresados el programa debe realizar la operacion indicada (sumar si todos son positivos o multiplicar si el primero es negativo).
- ;Plantilla: (...(Suma-o-Produto n1 n2 n3) ...)
- ;Ejemplos:
- ;***(Suma-o-Producto -2 0 4) -> 0
- ;***(Suma-o-Producto -2 1 4) -> -8
- ;***(Suma-o-Producto 1 8 4) -> 32
- ;***(Suma-o-Producto 5 4 4) -> 80
- (define (Suma-o-Producto n1 n2 n3)
- (cond
- [(< n1 0) (* (* n1 n2) n3)]
- [else (* (* n1 n2) n3)]))
- (Suma-o-Producto -2 0 4)
- (Suma-o-Producto -2 1 4)
- (Suma-o-Producto 1 8 4)
- (Suma-o-Producto 5 4 4)
- ;------------------4----------------
- ;Para esta funcion se uso una sub funcion llamada "Multiplo" que usara la funcion "año_bisiesto"
- ;Contrato: numero -> boleano/valor logico
- ;proposito: indicar si el dato de entrada es multiplo de 100, es una funcion auxiliar, no imprime datos de salida en pantalla.
- (define (multiplo numero)
- (= 0 (remainder numero 100)))
- ;Contrato: numero -> simbolo
- ;Proposito: Imprimir/indicar en pantalla si el año ingresado es o no bisiesto.
- ;Plantilla: (...(Año_bisiesto Año) ...)
- ;Ejemplos:
- ;***(año_bisiesto 1992) -> bisiesto
- ;***(año_bisiesto 2009) -> no bisiesto
- ;***(año_bisiesto 1000) -> no bisiesto
- ;***(año_bisiesto 2008) -> bisiesto
- (define (año_bisiesto año)
- (cond
- [(and (= 0(remainder año 4))(not (multiplo año))) "año bisiesto"]
- [(= (remainder año 400) 0) "año bisiesto"]
- [else "año no bisiesto"]))
- (año_bisiesto 1992)
- (año_bisiesto 2009)
- (año_bisiesto 1000)
- (año_bisiesto 2008)
Advertisement
Add Comment
Please, Sign In to add comment