Advertisement
StivenGonzalez

Consultar una lista

Sep 17th, 2020 (edited)
1,945
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Scheme 1.88 KB | None | 0 0
  1. ;Autor:Kahyberth Stiven Gonzalez Sayas
  2. ;Fecha 17 de septiembre de 2020
  3. ;Contrato:(consultar? code lst) numero lista ---> estructura
  4. ;Proposito: Consultar el producto de una lista mediante su codigo
  5. ;Ejemplos
  6. ;(consultar? '21 lista1)--->(make-inventario 21 'Gafas 20000 20))
  7. ;(consultar? '20 lista1)--->(make-inventario 20 'Pantalon 90000 10))
  8. ;(consultar? '24 lista1)--->(make-inventario 24 'Corbata 40000 6))
  9. ;Estructuras Principales
  10. (define-struct producto(codigo nombre ))
  11. (define-struct disponibilidad (precio unidades))
  12. ;Estructura de salida
  13. (define-struct inventario (codigo nombre precio unidades))
  14.  
  15. ;Variable lista
  16.  
  17. (define lista1 (list(list (make-producto '21 'Gafas)
  18.                           (make-disponibilidad 20000 20))
  19.                     (list (make-producto '20 'Pantalon)
  20.                           (make-disponibilidad 90000 10))
  21.                     (list (make-producto '23 'Camisa)
  22.                           (make-disponibilidad 60000 5))
  23.                     (list (make-producto '24 'Corbata)
  24.                           (make-disponibilidad 40000 6))))
  25.  
  26. (define(consultar? code lst)
  27.   (cond
  28.  
  29.     [(empty? lst)"El producto no existe"]
  30.     [(eqv? code (producto-codigo(first(first lst))))(make-inventario (producto-codigo(first(first lst)))
  31.                                                                      (producto-nombre(first(first lst)))
  32.                                                                      (disponibilidad-precio(first(rest(first lst))))
  33.                                                                      (disponibilidad-unidades(first(rest(first lst)))))]
  34.     [else(consultar? code (rest lst))]
  35.     )
  36.   )
  37.  
  38. ;Pruebas
  39. (check-expect(consultar? '21 lista1)(make-inventario 21 'Gafas 20000 20))
  40. (check-expect(consultar? '20 lista1)(make-inventario 20 'Pantalon 90000 10))
  41. (check-expect(consultar? '24 lista1)(make-inventario 24 'Corbata 40000 6))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement