Advertisement
PaolaD

Untitled

Aug 10th, 2020
675
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Scheme 7.08 KB | None | 0 0
  1. (define-struct inventario-electrodomesticos (electrodomestico1 electrodomestico2 electrodomestico3))
  2. (define-struct electrodomestico (nombre consumo-kwh horasFuncionando))
  3. (define-struct total-gasto (Gastokwh Pago))
  4.  
  5. (define inventario-electroA (make-inventario-electrodomesticos (make-electrodomestico 'nevera 10 20)
  6.                                                                (make-electrodomestico 'tv 15 10)
  7.                                                                (make-electrodomestico 'computador 20 30)
  8.                                                                ))
  9.  
  10. (define (calcular-costo-energia inventarioElectro)
  11.   (cond
  12.     [(not (inventario-electrodomesticos? inventarioElectro)) "Ingrese un dato tipo inventario-electrodomesticos"]
  13.     [(equal? (electrodomestico-nombre (inventario-electrodomesticos-electrodomestico2 inventarioElectro))
  14.              (electrodomestico-nombre (inventario-electrodomesticos-electrodomestico1 inventarioElectro)))
  15.      (make-total-gasto
  16.       (GastoKwh inventarioElectro)
  17.       (cond
  18.          [(and (>= (GastoKwh inventarioElectro) 0) (<= (GastoKwh inventarioElectro) 300))
  19.           (* (GastoKwh inventarioElectro) 50)]
  20.  
  21.          [(and (> (GastoKwh inventarioElectro) 300) (<= (GastoKwh inventarioElectro) 500))
  22.           (+ (* 300 50)(* 100 (- (GastoKwh inventarioElectro) 300)))
  23.           ]
  24.  
  25.          [(and (> (GastoKwh inventarioElectro) 500) (<= (GastoKwh inventarioElectro) 1000))
  26.           (+ (* 300 50)(* 100 200)(* 150 (- (GastoKwh inventarioElectro) 500)))
  27.           ]
  28.  
  29.          [(> (GastoKwh inventarioElectro) 1000)
  30.           (+ (* 300 50)(* 100 200)(* 150 500 )(* 200 (- (GastoKwh inventarioElectro) 1000)))
  31.           ]
  32.  
  33.          [else "Los kwh deben ser mayores o iguales a 0"]
  34.          )        
  35.       )]
  36.  
  37.     [(equal? (electrodomestico-nombre (inventario-electrodomesticos-electrodomestico2 inventarioElectro))
  38.              (electrodomestico-nombre (inventario-electrodomesticos-electrodomestico2 inventarioElectro)))
  39.      (make-total-gasto
  40.       (GastoKwh inventarioElectro)
  41.       (cond
  42.          [(and (>= (GastoKwh inventarioElectro) 0) (<= (GastoKwh inventarioElectro) 300))
  43.           (* (GastoKwh inventarioElectro) 50)]
  44.  
  45.          [(and (> (GastoKwh inventarioElectro) 300) (<= (GastoKwh inventarioElectro) 500))
  46.           (+ (* 300 50)(* 100 (- (GastoKwh inventarioElectro) 300)))
  47.           ]
  48.  
  49.          [(and (> (GastoKwh inventarioElectro) 500) (<= (GastoKwh inventarioElectro) 1000))
  50.           (+ (* 300 50)(* 100 200)(* 150 (- (GastoKwh inventarioElectro) 500)))
  51.           ]
  52.  
  53.          [(> (GastoKwh inventarioElectro) 1000)
  54.           (+ (* 300 50)(* 100 200)(* 150 500 )(* 200 (- (GastoKwh inventarioElectro) 1000)))
  55.           ]
  56.  
  57.          [else "Los kwh deben ser mayores o iguales a 0"]
  58.          )
  59.       )]
  60.  
  61.     [(equal? (electrodomestico-nombre (inventario-electrodomesticos-electrodomestico2 inventarioElectro))
  62.              (electrodomestico-nombre (inventario-electrodomesticos-electrodomestico3 inventarioElectro)))
  63.      (make-total-gasto
  64.       (GastoKwh inventarioElectro)
  65.       (cond
  66.          [(and (>= (GastoKwh inventarioElectro) 0) (<= (GastoKwh inventarioElectro) 300))
  67.           (* (GastoKwh inventarioElectro) 50)]
  68.  
  69.          [(and (> (GastoKwh inventarioElectro) 300) (<= (GastoKwh inventarioElectro) 500))
  70.           (+ (* 300 50)(* 100 (- (GastoKwh inventarioElectro) 300)))
  71.           ]
  72.  
  73.          [(and (> (GastoKwh inventarioElectro) 500) (<= (GastoKwh inventarioElectro) 1000))
  74.           (+ (* 300 50)(* 100 200)(* 150 (- (GastoKwh inventarioElectro) 500)))
  75.           ]
  76.  
  77.          [(> (GastoKwh inventarioElectro) 1000)
  78.           (+ (* 300 50)(* 100 200)(* 150 500 )(* 200 (- (GastoKwh inventarioElectro) 1000)))
  79.           ]
  80.  
  81.          [else "Los kwh deben ser mayores o iguales a 0"]
  82.          )
  83.       )]
  84.     [else (error "intentalo nuevamente")]
  85.     ))
  86.          
  87. ;;Gastokw
  88.  
  89. (define (GastoKwh inventarioElectro)
  90.   (cond
  91.     [(inventario-electrodomesticos? inventarioElectro)
  92.      (cond
  93.        [(equal? (electrodomestico-nombre (inventario-electrodomesticos-electrodomestico1 inventarioElectro))
  94.                 (electrodomestico-nombre (inventario-electrodomesticos-electrodomestico1 inventarioElectro)))
  95.         (+ (* (electrodomestico-consumo-kwh(inventario-electrodomesticos-electrodomestico1 inventarioElectro))
  96.               (electrodomestico-horasFuncionando (inventario-electrodomesticos-electrodomestico1 inventarioElectro))
  97.               )
  98.            (* (electrodomestico-consumo-kwh(inventario-electrodomesticos-electrodomestico3 inventarioElectro))
  99.               (electrodomestico-horasFuncionando (inventario-electrodomesticos-electrodomestico3 inventarioElectro))
  100.               )
  101.            (* (electrodomestico-consumo-kwh(inventario-electrodomesticos-electrodomestico2 inventarioElectro))
  102.               (electrodomestico-horasFuncionando (inventario-electrodomesticos-electrodomestico2 inventarioElectro))
  103.               )
  104.            )]
  105.  
  106.        [(equal? (electrodomestico-nombre (inventario-electrodomesticos-electrodomestico2 inventarioElectro))
  107.                 (electrodomestico-nombre (inventario-electrodomesticos-electrodomestico2 inventarioElectro)))
  108.        
  109.         (+ (* (electrodomestico-consumo-kwh(inventario-electrodomesticos-electrodomestico2 inventarioElectro))
  110.               (electrodomestico-horasFuncionando (inventario-electrodomesticos-electrodomestico2 inventarioElectro))
  111.               )
  112.            (*(electrodomestico-consumo-kwh(inventario-electrodomesticos-electrodomestico1 inventarioElectro))
  113.              (electrodomestico-horasFuncionando (inventario-electrodomesticos-electrodomestico1 inventarioElectro))
  114.            )
  115.  
  116.            (* (electrodomestico-consumo-kwh(inventario-electrodomesticos-electrodomestico3 inventarioElectro))
  117.               (electrodomestico-horasFuncionando (inventario-electrodomesticos-electrodomestico3 inventarioElectro))
  118.               )
  119.            )]
  120.        
  121.        [(equal? (electrodomestico-nombre (inventario-electrodomesticos-electrodomestico3 inventarioElectro))
  122.                 (electrodomestico-nombre (inventario-electrodomesticos-electrodomestico3 inventarioElectro)))
  123.        
  124.         (+ (* (electrodomestico-consumo-kwh(inventario-electrodomesticos-electrodomestico3 inventarioElectro))
  125.               (electrodomestico-horasFuncionando (inventario-electrodomesticos-electrodomestico3 inventarioElectro))
  126.               )
  127.            (* (electrodomestico-consumo-kwh(inventario-electrodomesticos-electrodomestico2 inventarioElectro))
  128.               (electrodomestico-horasFuncionando (inventario-electrodomesticos-electrodomestico2 inventarioElectro))
  129.               )
  130.            
  131.            (*(electrodomestico-consumo-kwh(inventario-electrodomesticos-electrodomestico1 inventarioElectro))
  132.              (electrodomestico-horasFuncionando (inventario-electrodomesticos-electrodomestico1 inventarioElectro))
  133.              ))
  134.         ]
  135.                  
  136.        [else (error "intentalo nuevamente")]
  137.        )]
  138.     [else "Ingrese un dato tipo inventario-electrodomesticos"]
  139.     ))
  140.    
  141.    
  142. (calcular-costo-energia inventario-electroA)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement