Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ;Definición de datos:
- (define-struct plato (nombre valor cantidad))
- (define pt1 (make-plato 'costillitas 16000 2)); 32
- (define pt2 (make-plato 'lomoplancha 20000 1)); 18
- (define pt3 (make-plato 'puntaanca 15000 3)); 45
- (define pt4 (make-plato 'ubregratinada 12000 1)); 12
- (define pt5 (make-plato 'criadillasasadas 19500 1)); 14.5
- (define pedido (list pt1 pt2 pt3 pt4 pt5))
- ; Dada una lista pedido, consistente de cinco platos con sus precios
- ; y cantidades, usted debe hacer programas en racket para:
- ; 1. Calcular el valor total del pedido
- ; 2. Saber cual es el nombre del plato más costoso
- ; 3. Saber cual es el nombre del plato más pedido
- ;Solucion punto 1:
- (define (TotalPedido listita)
- (cond
- [(empty? listita) 0]
- [else (+ (* (plato-valor (first listita))(plato-cantidad (first listita))) (TotalPedido (rest listita)))]))
- (TotalPedido pedido)
- ;Solucion punto 2:
- ;**Aux:
- (define (MayorValorEstructurado listita)
- (cond
- [(empty? listita) empty]
- [(empty? (rest listita)) (plato-valor (first listita))]
- [(> (plato-valor (first listita)) (MayorValorEstructurado (rest listita))) (plato-valor (first listita))]
- [else (MayorValorEstructurado (rest listita))]))
- ;**funcion principal:
- (define (PlatoCostoso listita)
- (cond
- [(empty? listita) 0]
- [(= (MayorValorEstructurado listita) (plato-valor (first listita))) (plato-nombre (first listita))]
- [else (PlatoCostoso (rest listita))]))
- (PlatoCostoso pedido)
- ;Solucion punto 3:
- ;**Aux:
- (define (MayorCantidadEstructurada listita)
- (cond
- [(empty? listita) empty]
- [(empty? (rest listita)) (plato-cantidad (first listita))]
- [(> (plato-cantidad (first listita)) (MayorCantidadEstructurada (rest listita))) (plato-cantidad (first listita))]
- [else (MayorCantidadEstructurada (rest listita))]))
- ;**funcion principal:
- (define (PlatoCuantioso listita)
- (cond
- [(empty? listita) 0]
- [(= (MayorCantidadEstructurada listita) (plato-cantidad (first listita))) (plato-nombre (first listita))]
- [else (PlatoCuantioso (rest listita))]))
- (PlatoCuantioso pedido)
Advertisement
Add Comment
Please, Sign In to add comment