Pcs2d

Retiro del banco 1

Mar 14th, 2013
97
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Scheme 2.32 KB | None | 0 0
  1. (define-struct cbank (id Ncuenta Tcuenta nTrans limit credito dinerototal))
  2. (define uno (make-cbank 'julio 1999 'nomina 0 0 0 100000))
  3. (define dos (make-cbank 'juan 2564 'ahorros 0 0 0 100000))
  4. (define tres (make-cbank 'jerardo 9501 'credito 0 100000 500000 100000))
  5. (define cuatro (make-cbank 'jenry 1001 'credito 0 25000 0 100000))
  6. (define cinco (make-cbank 'jilipollas 1751 'credito 0 25 0 100000))
  7. (define seis (make-cbank 'jorge 1001 'credito 0 25000 0 0))
  8. (define siete (make-cbank 'jaimico 1001 'credito 0 25000 48000 0))
  9.  
  10. (define (retiro persona montor)
  11.   (if (and (cbank? persona) (number? montor))
  12.       (cond
  13.         [(symbol=? 'nomina (cbank-Tcuenta persona))
  14.          (if (and (>= montor 0)(> (cbank-dinerototal persona) montor))
  15.              (make-cbank (cbank-id persona)
  16.                          (cbank-Ncuenta persona)
  17.                          (cbank-Tcuenta persona)
  18.                          (+ (cbank-nTrans persona) 1)
  19.                          (cbank-limit persona)
  20.                          (cbank-credito persona)
  21.                          (- (cbank-dinerototal persona) montor))
  22.              "no transaccion")]
  23.         [(symbol=? 'ahorros (cbank-Tcuenta persona))
  24.          (if (>= (- (cbank-dinerototal persona) montor) 20000)
  25.              (make-cbank (cbank-id persona)
  26.                          (cbank-Ncuenta persona)
  27.                          (cbank-Tcuenta persona)
  28.                          (cbank-nTrans persona)
  29.                          (cbank-limit persona)
  30.                          (cbank-credito persona)
  31.                          (- (cbank-dinerototal persona) montor))
  32.              "supera limite de retiro")]
  33.         [(and (< montor (cbank-limit persona)) (symbol=? 'credito (cbank-Tcuenta persona)))
  34.          (make-cbank (cbank-id persona)
  35.                      (cbank-Ncuenta persona)
  36.                      (cbank-Tcuenta persona)
  37.                      (cbank-nTrans persona)
  38.                      (cbank-limit persona)
  39.                      (+ montor (cbank-credito persona))
  40.                      (cbank-dinerototal persona))]
  41.         [else "limite de cuenta crediticia"])
  42.       "datos incorrectos"))
  43.  
  44. (retiro uno 232)
  45. (retiro uno -5215)
  46. (retiro dos 80000)
  47. (retiro dos 100000)
  48. (retiro tres 232)
  49. (retiro cuatro 232)
  50. (retiro cinco 232)
  51. (retiro seis 18000)
  52. (retiro siete 18000)
  53. (retiro ocho 18000)
Advertisement
Add Comment
Please, Sign In to add comment