Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ;Autor:Kahyberth Stiven Gonzalez Sayas
- ;Fecha 17 de septiembre de 2020
- ;Contrato:(consultar? code lst) numero lista ---> estructura
- ;Proposito: Consultar el producto de una lista mediante su codigo
- ;Ejemplos
- ;(consultar? '21 lista1)--->(make-inventario 21 'Gafas 20000 20))
- ;(consultar? '20 lista1)--->(make-inventario 20 'Pantalon 90000 10))
- ;(consultar? '24 lista1)--->(make-inventario 24 'Corbata 40000 6))
- ;Estructuras Principales
- (define-struct producto(codigo nombre ))
- (define-struct disponibilidad (precio unidades))
- ;Estructura de salida
- (define-struct inventario (codigo nombre precio unidades))
- ;Variable lista
- (define lista1 (list(list (make-producto '21 'Gafas)
- (make-disponibilidad 20000 20))
- (list (make-producto '20 'Pantalon)
- (make-disponibilidad 90000 10))
- (list (make-producto '23 'Camisa)
- (make-disponibilidad 60000 5))
- (list (make-producto '24 'Corbata)
- (make-disponibilidad 40000 6))))
- (define(consultar? code lst)
- (cond
- [(empty? lst)"El producto no existe"]
- [(eqv? code (producto-codigo(first(first lst))))(make-inventario (producto-codigo(first(first lst)))
- (producto-nombre(first(first lst)))
- (disponibilidad-precio(first(rest(first lst))))
- (disponibilidad-unidades(first(rest(first lst)))))]
- [else(consultar? code (rest lst))]
- )
- )
- ;Pruebas
- (check-expect(consultar? '21 lista1)(make-inventario 21 'Gafas 20000 20))
- (check-expect(consultar? '20 lista1)(make-inventario 20 'Pantalon 90000 10))
- (check-expect(consultar? '24 lista1)(make-inventario 24 'Corbata 40000 6))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement