summaryrefslogtreecommitdiff
path: root/coding-exercises/2/12.rkt
blob: c97743624cdcbaa20e3d43857c4aa36c5b103a88 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#lang racket
(require "../../shared/intervals.rkt")

(define (make-center-width c w)
  (make-interval (- c w) (+ c w)))

(define (center i)
  (/ (+ (lower-bound i) (upper-bound i)) 2))

(define (make-center-percent c p)
  (let ((toler (* c (/ p 100.0)))) 
    ((lambda (a b) 
       (if (> a b) 
         (make-interval b a)
         (make-interval a b)))
     (- c toler) 
     (+ c toler))))

(define (percent i)
  (abs (* 100 (/ (width i) (center i)))))

(define (print)
 (define t (make-center-width 10.0 6.1))
 (define tp (make-center-percent -10.0 50.0))
 (print-interval t)
 (print-interval tp)
 (println (percent t))
 (println (percent tp)))
(print)