본문 바로가기

LISP?

매핑 - 도수분포 (히스토그램)


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; 도수분포 (히스토그램)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; 점수를 받아서 점수대별 도수를 표시한다.

(SETF SCORES '(35 25 56 78 43 66 71 73 80 90
           0 73 35 65 100 78 80 85 35 50))

(DEFUN SHOW-HISTO ()
 (SETF HISTO (MAKE-ARRAY 11 :initial-element 0))
 (DEFUN DISPLAY (LIST)
   (DOTIMES (N (LENGTH LIST))
    (FORMAT T "~&~3A ..... ~3A" (* N 10) (AREF LIST N))))
 (DOLIST (A0 SCORES (DISPLAY HISTO))
   (SETF (AREF HISTO (TRUNCATE A0 10)) (+ 1 (AREF HISTO  (TRUNCATE A0 10))))))
 
(SHOW-HISTO)

0   ..... 1 
10  ..... 0 
20  ..... 1 
30  ..... 3 
40  ..... 1 
50  ..... 2 
60  ..... 2 
70  ..... 5 
80  ..... 3 
90  ..... 1 
100 ..... 1 
NIL