Pcs2d

Listas y estructuras 2 - Hardcore Tier I

Apr 30th, 2013
120
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Scheme 2.07 KB | None | 0 0
  1. ;Definición de datos:
  2. (define-struct plato (nombre valor cantidad))
  3. (define pt1 (make-plato 'costillitas 16000 2)); 32
  4. (define pt2 (make-plato 'lomoplancha 20000 1)); 18
  5. (define pt3 (make-plato 'puntaanca 15000 3)); 45
  6. (define pt4 (make-plato 'ubregratinada 12000 1)); 12
  7. (define pt5 (make-plato 'criadillasasadas 19500 1)); 14.5
  8.  
  9. (define pedido (list pt1 pt2 pt3 pt4 pt5))
  10.  
  11. ; Dada una lista pedido, consistente de cinco platos con sus precios
  12. ; y cantidades, usted debe hacer programas en racket para:
  13.  
  14. ; 1. Calcular el valor total del pedido
  15. ; 2. Saber cual es el nombre del plato más costoso
  16. ; 3. Saber cual es el nombre del plato más pedido
  17.  
  18. ;Solucion punto 1:
  19. (define (TotalPedido listita)
  20.   (cond
  21.     [(empty? listita) 0]
  22.     [else (+ (* (plato-valor (first listita))(plato-cantidad (first listita))) (TotalPedido (rest listita)))]))
  23. (TotalPedido pedido)
  24.  
  25. ;Solucion punto 2:
  26. ;**Aux:
  27. (define (MayorValorEstructurado listita)
  28.   (cond
  29.     [(empty? listita) empty]
  30.     [(empty? (rest listita)) (plato-valor (first listita))]
  31.     [(> (plato-valor (first listita)) (MayorValorEstructurado (rest listita))) (plato-valor (first listita))]
  32.     [else (MayorValorEstructurado (rest listita))]))
  33. ;**funcion principal:
  34. (define (PlatoCostoso listita)
  35.   (cond
  36.     [(empty? listita) 0]
  37.     [(= (MayorValorEstructurado listita) (plato-valor (first listita))) (plato-nombre (first listita))]
  38.     [else (PlatoCostoso (rest listita))]))
  39. (PlatoCostoso pedido)
  40.  
  41. ;Solucion punto 3:
  42. ;**Aux:
  43. (define (MayorCantidadEstructurada listita)
  44.   (cond
  45.     [(empty? listita) empty]
  46.     [(empty? (rest listita)) (plato-cantidad (first listita))]
  47.     [(> (plato-cantidad (first listita)) (MayorCantidadEstructurada (rest listita))) (plato-cantidad (first listita))]
  48.     [else (MayorCantidadEstructurada (rest listita))]))
  49. ;**funcion principal:
  50. (define (PlatoCuantioso listita)
  51.   (cond
  52.     [(empty? listita) 0]
  53.     [(= (MayorCantidadEstructurada listita) (plato-cantidad (first listita))) (plato-nombre (first listita))]
  54.     [else (PlatoCuantioso (rest listita))]))
  55. (PlatoCuantioso pedido)
Advertisement
Add Comment
Please, Sign In to add comment