summaryrefslogtreecommitdiff
path: root/coding-exercises/2/12.rkt
diff options
context:
space:
mode:
Diffstat (limited to 'coding-exercises/2/12.rkt')
-rw-r--r--coding-exercises/2/12.rkt29
1 files changed, 29 insertions, 0 deletions
diff --git a/coding-exercises/2/12.rkt b/coding-exercises/2/12.rkt
new file mode 100644
index 0000000..c977436
--- /dev/null
+++ b/coding-exercises/2/12.rkt
@@ -0,0 +1,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)