PasteRack.org
Paste # 11372
2019-01-22 17:54:43

Fork as a new paste.

Paste viewed 767 times.


Embed:

  1. #lang racket
  2.  
  3. ;Section 2
  4.  
  5. (define pi 3.14159265)
  6. (define (cylinder-surface-area r h)
  7.   (+
  8.    (* 2 pi r h)
  9.    (* 2 pi r r)
  10.   )
  11.   )
  12.  
  13. (define (max3 a b c)
  14.   (cond
  15.     [(and (>= a b) (>= a c)) a]
  16.     [(and (>= b a) (>= b c)) b]
  17.     [else c]
  18.   )
  19. )
  20.  
  21. (define (rac list)
  22.   (car (reverse list))
  23.   )
  24.  
  25. (define (rdc list)
  26.   (reverse (cdr (reverse list)))
  27.   )
  28.  
  29. (define (snoc list1 list2)
  30.  (reverse (cons list1 (reverse list2)) )
  31.   )
  32.  
  33.  
  34. (define (rnd-elmt list)
  35.   (list-ref list (random (length list)))
  36.   )
  37.  
  38. ;Section 3
  39.  
  40. (define (power-of-two? n)
  41.   (cond
  42.     [(< n 2) #f]
  43.     [(= n 2) #t]
  44.     [(even? n) (power-of-two? (/ n 2))]
  45.     [else #f]
  46.     )
  47.   )
  48. (define (pot? n) (power-of-two? n))
  49.  
  50. ;Section 4
  51. (require 2htdp/image)
  52.  
  53. (define (circ d color) (circle (/ d 1) "solid" color))
  54.  
  55.  
  56. (define (snowman d1 d2 d3 color)
  57.   (overlay/offset (circ d1 color) 0 (+ d1 d2 d3) (overlay/offset (circ d2 color) 0 (+ d2 d3) (circ d3 color)))
  58.   )
  59.  
  60. (define (rnd-color) (rnd-elmt '("red" "blue" "green")))
  61. (define (rnd-fill) (rnd-elmt '("solid" "outline")))
  62.  
  63. (define (rnd-triangle maxsize) (triangle (random maxsize) (rnd-fill) (rnd-color)))
  64.  
  65.  
  66. ;rnd-pic
  67. (define (sqr-scene size) (empty-scene size size))
  68.  
  69. (define (add-triangle scene size) (place-image (rnd-triangle size) (random size) (random size) scene))
  70.  
  71. (define (rnd-pic n size)
  72.         (cond
  73.                 [(<= n 0) (sqr-scene size)]
  74.                 [else (add-triangle (rnd-pic (sub1 n) size) size)]
  75.         )
  76. )
  77.  
  78. ;Section 5
  79.  
  80. (define (! n)
  81.         (cond
  82.                 [(<= n 0) 1]
  83.                 [else (* n (! (sub1 n)))]
  84.         )
  85. )
  86.  
  87. (define (expon m n)
  88.         (cond
  89.                 [(<= n 0) 1]
  90.                 [else (* m
  91.                        (expon m (sub1 n))
  92.                       )
  93.                 ]
  94.         )
  95. )
  96.  
  97. (define (arctan x n)
  98.         (cond
  99.                 [(<= n 0) x]
  100.                 [else (+ (arctan x (sub1 n))
  101.                                 (* (expon -1 n)
  102.                                         (/ (expon x (+ (* 2 i) 1))
  103.                                            (+ (* 2 i) 1)
  104.                                         )
  105.                                 )
  106.                           )
  107.             ]
  108.         )
  109. )
  110. (define (arctan x n)
  111.         (cond
  112.                 [(<= n 0) x]
  113.                 [else (+
  114.                                 (arctan x (sub1 n))
  115.                                 (*
  116.                                  (expon -1 n)
  117.                                  1
  118.                                 )
  119.                           )
  120.                 ]
  121.         )
  122. )
  123.  
  124. (define (myPI)
  125.                 (exact->inexact (-
  126.                                                         (* 16 (arctan 1/5 10))
  127.                                                         (* 4 (arctan 1/239 10))
  128.                                                 )
  129.                 )
  130. )
  131.  
  132. ;Section 6
  133.  
  134. (define (prod A)
  135.         (cond
  136.                 [(= (length A) 0) 1]
  137.                 [else (* (car A) (prod (cdr A)))]
  138.         )
  139. )
  140.  
  141. (define (>=0 l)
  142.         (cond
  143.                 [(= (length A) 0) #t]
  144.                 [(< (car A) 0) #f]
  145.                 [else (>= 0 (cdr l))]
  146.         )
  147. )
  148.  
  149. (define (err-msg) (1))
  150.  
  151. (define (nth n l)
  152.         (cond
  153.                 [(< n 0) (err-msg)]
  154.                 [(> n (length l)) (err-msg)]
  155.                 [(= n 0) (car l)]
  156.                 [else (nth (sub1 n) (cdr l))]
  157.         )
  158. )
  159.  
  160. (define (ordered l)
  161.         (cond
  162.                 [(<= (length l) 1) #t]
  163.                 [(> (nth 1 l) (nth 0 l)) #f]
  164.                 [else (ordered (cdr l))]
  165.         )
  166. )
  167.  
  168. (define (max-err) (1))
  169.  
  170. (define (maxlist l curMax)
  171.         (cond
  172.                 [(= 0 (length l)) curMax]
  173.                 [(> (car l) curMax) (maxlist (cdr l) (car l))]
  174.                 [else (maxlist (cdr l) curMax)]
  175.         )
  176. )
  177.  
  178.  
  179.  
  180.  
  181. (define (max-list l)
  182.         (cond
  183.                 [(<= (length l) 0) (max-err)]
  184.                 [else (maxlist l (car l))]
  185.         )
  186. )
  187.  
  188. ;(rnd-pic 20 200)
  189.  
  190. (expon 10 2)
  191.  
  192. (arctan 1 1)
  193. (arctan 1/239 10)
  194. (myPI)
  195. (prod '(1))
  196. (prod '(1 2))
  197. (prod '(1 2 3 4))
  198.  
  199. (>=0 '(0 4 6 1 5))
  200. (>=0 '(0 4 6 1 -5))
  201.  
  202. (nth 5 '(a b c d e f g))
  203. (nth 0 '(a b c d e f g))
  204. (nth 10 '(a b c d e f g))
  205.  
  206. (ordered '())
  207. (ordered '(1))
  208. (ordered '(1 2))
  209. (ordered '(2 1))

=>

100

0

1/239

3.1832635983263597

1

2

24

A: undefined;

 cannot reference an identifier before its definition

  in module: 'm

A: undefined;

 cannot reference an identifier before its definition

  in module: 'm

'f

'a

application: not a procedure;

 expected a procedure that can be applied to arguments

  given: 1

  arguments...: [none]

#t

#t

#f

#t