Home

Archivos

Buscar

Categorías

Feeds:

RSS / Atom

HDTP Capitulo 5· 26. December 2007, 22:48

Aquí van mis ejercicios para el capitulo 5

;;5.1.2
;;check-guess : number,number->symbol
(define (check-guess guess target)
  (cond
    [ (< guess target) 'TooSmall]
    [ (> guess target) 'TooLarge]
    [ else 'Perfect]
    ))
;;5.1.3
;;check-guess3 : number,number,number->symbol
(define (check-guess3 lsdigit middigit msdigit target)
  (check-guess (arma-numero lsdigit middigit msdigit) target))
;
(define (arma-numero lsdigit middigit msdigit)
  (+ (+ (* msdigit 100) ( * middigit 10)) lsdigit))
;;5.1.4
;;what-kind : number,number,number->symbol
(define (what-kind a b c)
  (cond
    [ (= a 0) 'degenerate ]
    [ (> (sqr b) (* 4 (* a c))) 'two]
    [ (< (sqr b) (* 4 (* a c))) 'none]
    [ else 'one]))
;tests
(symbol=? 'two (what-kind 1 0 -1))
(symbol=? 'one (what-kind 2 4 2))
;;5.1.5
;;check-color : symbol,symbol,symbol,symbol->symbol
;;
(define (check-color target1 target2 guess1 guess2)
  (cond
    [ ( and ( symbol=? (check-color-guess target1 guess1) 'ok) (symbol=? (check-color-guess target2 guess2) 'ok)) 'Perfect ]
    [( or ( symbol=? (check-color-guess target1 guess1) 'ok) (symbol=? (check-color-guess target2 guess2) 'ok)) 'OneColorAtCorrectPosition ]
    [ (or (symbol=? target1 guess2) (symbol=? target2 guess1)) 'OneColorOccurs]
    [else 'NothingCorrect]
     ))
;
(define (check-color-guess target guess)
  (cond
    [ (symbol=? target guess) 'ok]
    [ else 'no]
    ))