- La película debe tener título productor costo hora sala clasificación dimensión.
- Si la película es para mayores se debe imprimir un mensaje que indique que la película no es apta para menores, esta clasificación solo se vera en la noche.
- Si la película se transmite en la mañana tendrá un 20% de descuento.
- Si la película es en 3D se le sumara 25000 al costo.
Ejemplo en Toma de pantalla:
![]() |
| codigo drraket |
Ejemplo en código
; ==========================================================
(define-struct pelicula (titulo productor costo hora sala clasificacion dimension))
(define-struct tiket (titulo productor costo hora sala clasificacion dimension mensaje))
;lista de peliculas
(define pelicula1 (make-pelicula 'garganta_profunda 'x_videos 20000 22 'A 'Adultos '3D))
(define pelicula2 (make-pelicula 'los_indestructibles 'nirvana 25000 08 'B 'Familiar '3D))
(define pelicula3 (make-pelicula 'zombies 'barney 18000 20 'A 'Infantil '2D))
(define pelicula4 (make-pelicula 'inframundo 'nirvana 15000 11 'D 'Familiar '2D))
(define pelicula5 (make-pelicula 'lola 'barney 25000 05 'C 'Infantil '2D))
(define pelicula6 (make-pelicula 'dark_loli 'conejas_calientes 30000 22 'B 'Adultos '3D))
(define (busqueda peli)
(cond
[(not (pelicula? peli)) "la pelicula no se esta transmitiendo"]
[ (and (symbol=? (pelicula-clasificacion peli) 'Adultos) (symbol=? (pelicula-dimension peli) '3D))
(make-tiket (pelicula-titulo peli) (pelicula-productor peli) (+ (pelicula-costo peli) 25000) (pelicula-hora peli) (pelicula-sala peli)
(pelicula-clasificacion peli) (pelicula-dimension peli) "esta pelicula tiene clasificacion para adultos, se le suma 25000 por el 3D")]
[ (symbol=? (pelicula-clasificacion peli) 'Adultos)
(make-tiket (pelicula-titulo peli) (pelicula-productor peli) (pelicula-costo peli) (pelicula-hora peli) (pelicula-sala peli)
(pelicula-clasificacion peli) (pelicula-dimension peli) "esta pelicula tiene clasificacion para adultos no se admiten menores")]
[(symbol=? (pelicula-dimension peli) '3D)
(make-tiket (pelicula-titulo peli) (pelicula-productor peli) (+ (pelicula-costo peli) 25000) (pelicula-hora peli) (pelicula-sala peli)
(pelicula-clasificacion peli) (pelicula-dimension peli) "se le suma 25000 por la 3D")]
[(and (symbol=? (pelicula-dimension peli) '3D) (or (< (pelicula-hora peli) 12)
(> (pelicula-hora peli) 06)))
(make-tiket (pelicula-titulo peli) (pelicula-productor peli) (- (+ (pelicula-costo peli) 25000) (/ (* 20 (+ (pelicula-costo peli) 25000)) 100))
(pelicula-hora peli) (pelicula-sala peli)
(pelicula-clasificacion peli) (pelicula-dimension peli) "se le suma 25000 por la 3D y se le restara un 20% de descuento")]
[ (or (< (pelicula-hora peli) 12) (> (pelicula-hora peli) 06))
(make-tiket (pelicula-titulo peli) (pelicula-productor peli) (- (pelicula-costo peli) (/ (* 20 (pelicula-costo peli)) 100))
(pelicula-hora peli) (pelicula-sala peli)
(pelicula-clasificacion peli) (pelicula-dimension peli) " se le restara un 20% de descuento")]
[else (make-tiket (pelicula-titulo peli) (pelicula-productor peli) (pelicula-costo peli) (pelicula-hora peli) (pelicula-sala peli)
(pelicula-clasificacion peli) (pelicula-dimension peli) "grasias por su eleccion")]
))
;prueba
(busqueda pelicula6)
; ==========================================================
