박대준
가입: 2005년 10월 7일 올린 글: 245
|
올려짐: 2006년4월12일 12:58 주제: 숙제 2 유의 사항 |
|
|
각각의 문제 마다 정의해야하는 함수와 구현할 때 사용할 수 있는 함수들을 명시했습니다.
사용할 수 있는 함수를 명시해 놓은 것은 data abstraction을 지키게 하기 위함입니다.
물론 자신이 상위레벨에서 구현의 편의를 위해 함수들을 새롭게 정의한 후 사용할 수 있습니다.
문제 1번
정의해야하는 함수 (총 1개)
maze-check
사용할 수 있는 함수 (총 7개)
can-enter
same-room?
empty-set
add-element
is-member?
is-subset?
maze-print (테스트할때 미로 출력에만 사용가능)
유의 사항
제공된 함수 중에서 위에서 언급한 함수들만 사용하실 수 있습니다.
나머지 함수를 직접 사용하시는 것은 data abstraction을 깨뜨리는 것입니다.
(제공된 함수가 어떻게 구현되었는지 전혀 살펴보지 않는 것이 가장 좋은 방법입니다.)
문제 2번.
정의해야하는 함수 (총 18개)
<most high level implementation>
black
white
glue
rotate
neighbor
pprint
; array based implementation
; glue-a-from-t : (트리 무늬)^4 => 배열 무늬
; glue-a-from-a : (배열 무늬)^4 => 배열 무늬
; rotate-a : 배열 무늬 => 배열 무늬
; neighbor-a : 위치 * 배열 무늬 => int
; pprint-a : 배열 무늬 => void
; is-a? : 무늬 => bool
; tree based implementation
; glue-t-from-t : (트리 무늬)^4 => 트리 무늬
; glue-t-from-a : (배열 무늬)^4 => 트리 무늬
; rotate-t : 트리 무늬 => 트리 무늬
; neighbor-t : 위치 * 트리 무늬 => int
; pprint-t : 트리 무늬 => void
; is-t? : 무늬 => bool
유의 사항
가장 상위 레벨의 함수 6개를 정의할 때, 배열기반과 나무기반 구현함수들을 사용하도록 합니다.
문제 3번
정의해야하는 함수 (총 3개)
equal
size
beautiful
사용할 수 있는 함수 (총 6개)
black
white
glue
rotate
neighbor
pprint
유의 사항
기본무늬의 size는 0입니다.
기본무늬는 아름답습니다.
벽지무늬의 아름다움을 판별할 때, 대칭인지 따지게 되는데,
이때 대칭은 점대칭을 의미합니다. 좌우, 위아래 대칭이 아님을 유의하시기 바랍니다.
숙제 제출시, 문제 2번에서 정의한 함수를 모두 문제 3번 file에 복사해 놓는 것을 잊지 말길 바랍니다.
문제 4번
정의해야하는 함수 (총 15개)
<constructor>
atom
dot
bar
plus
<type checker>
is-atom?
is-dot?
is-bar?
is-plus?
<getter>
de-atom
de-plus
de-dot-0
de-dot-1
de-bar-0
de-bar-1
myMatch (변경)
유의 사항
atom 이 받는 인자의 type "int" 는 "한자리 정수"를 의미합니다.
match 라는 이름의 함수가 이미 존재하여, myMatch 로 변경해 정의하십시오. |
|