Structure and Interpretation of Computer Programs: Assignment 3 Seung-Hoon Na October 4, George (아래 3개의 문제에 대한 구현이 모두 포함된 george.rkt파일을 제출하시오.

Similar documents
SNU =10100 =minusby by1000 ÇÁto0.03exÇÁto0.03exÇÁ=10100 =minusby by1000 ·Îto0.03ex·Îto0.03ex·Î=10100 =minusby by1000

199

187호최종

데이터 시각화

ÀüÀÚÇö¹Ì°æ-Áß±Þ

1 Nov-03 CST MICROWAVE STUDIO Microstrip Parameter sweeping Tutorial Computer Simulation Technology

1106 학원과정

Week3

,,,,,, (41) ( e f f e c t ), ( c u r r e n t ) ( p o t e n t i a l difference),, ( r e s i s t a n c e ) 2,,,,,,,, (41), (42) (42) ( 41) (Ohm s law),

Modern Javascript

Microsoft PowerPoint - logo_2-미해답.ppt [호환 모드]

<32332D322D303120B9E6BFB5BCAE20C0CCB5BFC1D6312D32302E687770>

PowerSHAPE 따라하기 Calculate 버튼을 클릭한다. Close 버튼을 눌러 미러 릴리프 페이지를 닫는다. D 화면을 보기 위하여 F 키를 누른다. - 모델이 다음과 같이 보이게 될 것이다. 열매 만들기 Shape Editor를 이용하여 열매를 만들어 보도록

Microsoft PowerPoint - a10.ppt [호환 모드]

- 이 문서는 삼성전자의 기술 자산으로 승인자만이 사용할 수 있습니다 Part Picture Description 5. R emove the memory by pushing the fixed-tap out and Remove the WLAN Antenna. 6. INS


Data structure: Assignment 1 Seung-Hoon Na October 1, Assignment 1 Binary search 주어진 정렬된 입력 파일이 있다고 가정하자. 단, 파일내의 숫자는 공백으로 구 분, file내에 숫자들은

강의10


PowerPoint 프레젠테이션

π >> x=linspace(0,2*pi,30); >> y=sin(x); >> plot(x,y) π

(......).hwp

목차 BUG 문법에맞지않는질의문수행시, 에러메시지에질의문의일부만보여주는문제를수정합니다... 3 BUG ROUND, TRUNC 함수에서 DATE 포맷 IW 를추가지원합니다... 5 BUG ROLLUP/CUBE 절을포함하는질의는 SUBQUE

; struct point p[10] = {{1, 2, {5, -3, {-3, 5, {-6, -2, {2, 2, {-3, -3, {-9, 2, {7, 8, {-6, 4, {8, -5; for (i = 0; i < 10; i++){ if (p[i].x > 0 && p[i

Microsoft PowerPoint - 05geometry.ppt

Print

쉽게 풀어쓴 C 프로그래밍

1

SNU =10100 =minusby by1000 ÇÁto0.03exÇÁto0.03exÇÁ=10100 =minusby by1000 ·Îto0.03ex·Îto0.03ex·Î=10100 =minusby by1000 ±×to0.

Dialog Box 실행파일을 Web에 포함시키는 방법

Microsoft PowerPoint - Lec06.ppt [호환 모드]

SNU =10100 =minusby by1000 ÇÁto0.03exÇÁto0.03exÇÁ=10100 =minusby by1000 ·Îto0.03ex·Îto0.03ex·Î=10100 =minusby by1000 ±×to0.

USER GUIDE

hwp

슬라이드 1

Artificial Intelligence: Assignment 6 Seung-Hoon Na December 15, Sarsa와 Q-learning Windy Gridworld Windy Gridworld의 원문은 다음 Sutton 교재의 연습문제

<BFEFBBEA20BDBAC5E4B8AE20C5DAB8B52DBEC6B9F6C1F6BFCD20B1CDBDC5B0EDB7A12E687770>

2005CG01.PDF

Microsoft PowerPoint - ÀÚ¹Ù08Àå-1.ppt

Microsoft Word - APEM_joystick.doc

PowerPoint 프레젠테이션

Microsoft Word - FunctionCall

UI TASK & KEY EVENT

Microsoft PowerPoint - 04-Lines.pptx

<4D F736F F F696E74202D B3E22032C7D0B1E220C0A9B5B5BFECB0D4C0D3C7C1B7CEB1D7B7A1B9D620C1A638B0AD202D20C7C1B7B9C0D320BCD3B5B5C0C720C1B6C0FD>

PowerPoint 프레젠테이션

H3050(aap)

06/09-101È£ä263»Áö

04/07-08(È£ä263»Áö

저작자표시 - 비영리 - 변경금지 2.0 대한민국 이용자는아래의조건을따르는경우에한하여자유롭게 이저작물을복제, 배포, 전송, 전시, 공연및방송할수있습니다. 다음과같은조건을따라야합니다 : 저작자표시. 귀하는원저작자를표시하여야합니다. 비영리. 귀하는이저작물을영리목적으로이용할

= Fisher, I. (1930), ``The Theory of Interest,'' Macmillan ,

DocsPin_Korean.pages

목차 제 1 장 inexio Touch Driver소개 소개 및 주요 기능 제품사양... 4 제 2 장 설치 및 실행 설치 시 주의사항 설치 권고 사양 프로그램 설치 하드웨

< C7D0B3E2B5B520B4EBBCF6B4C920C7D8BCB3C1F628B1B9BEEE41C7FC20C8A6BCF6292E687770>

YMETDNUTOUII.hwp

Something that can be seen, touched or otherwise sensed

슬라이드 1

adfasdfasfdasfasfadf

Artificial Intelligence: Assignment 3 Seung-Hoon Na November 30, Sarsa와 Q-learning Windy Gridworld Windy gridworld는 (Sutton 교재 연습문제 6.5) 다음

PowerPoint 프레젠테이션

야쿠르트2010 9월재출

단계 소요 시간 요소 교수 활동 형태 자료 1 동기유발 활동 도입 5분 20분 동기유발 목표 제시 활동1 청기, 백기 게임을 시청하고 청기 백기 게임을 해보기 - 학생들을 두 팀으로 나누어 청기, 백기로 정하기 게임을 해본다. 두 가지 상태로 표현할 수 있는 것이 어떤

05 목차(페이지 1,2).hwp

화판_미용성형시술 정보집.0305

Microsoft Word - cg07-midterm.doc

= Fisher, I. (1930), ``The Theory of Interest,'' Macmillan ,

Microsoft PowerPoint - 13prac.pptx

UML

Microsoft PowerPoint - 3ÀÏ°_º¯¼ö¿Í »ó¼ö.ppt

09 ½ÅÇù3¿ùb63»ÁöÃÖÁ¾FFš

歯굿디자인.PDF

예제 1.1 ( 관계연산자 ) >> A=1:9, B=9-A A = B = >> tf = A>4 % 4 보다큰 A 의원소들을찾을경우 tf = >> tf = (A==B) % A

Microsoft PowerPoint - 03-Points.pptx

gnu-lee-oop-kor-lec06-3-chap7

쉽게 풀어쓴 C 프로그래밍

09 ½ÅÇù2¿ùÈ£b63»ÁöÁ¤¸»ÃÖÁ¾š

10주차.key

쉽게 풀어쓴 C 프로그래밍

<C1DF29BCF6C7D020315FB1B3BBE7BFEB20C1F6B5B5BCAD2E706466>

IoT FND8 7-SEGMENT api

Ÿ column-rule 속성은단사이의구분선을표현하기위한속성으로 column-rule-color, column-rule-style, column-rule-width 속성을한번에지정할수있다. 1.4 단의확장 Ÿ column-span 속성은다단을구성할때해당요소가얼마나많은단


Chapter 4. LISTS

BY-FDP-4-70.hwp

LIDAR와 영상 Data Fusion에 의한 건물 자동추출

Microsoft Word - cg12-midterm-answer

<313120C0AFC0FCC0DA5FBECBB0EDB8AEC1F2C0BB5FC0CCBFEBC7D15FB1E8C0BAC5C25FBCF6C1A42E687770>

01_60p_서천민속지_1장_최종_출력ff.indd

LaTeX. [width=1em]Rlogo.jpg Sublime Text. ..

04-sa01-91.hwp

untitled

Microsoft PowerPoint - 09-Object Oriented Programming-3.pptx

Microsoft PowerPoint - Java7.pptx

Microsoft PowerPoint - 삼성_Remy(김월)

슬라이드 1

1017스톰-KRX104호003~048수.ps, page Apogee Preflight

KDTÁ¾ÇÕ-1-07/03

쉽게 풀어쓴 C 프로그래밍

B _02_M_Ko.indd

PowerPoint 프레젠테이션

Transcription:

Structure and Interpretation of Computer Programs: Assignment 3 Seung-Hoon Na October 4, 2018 1 George (아래 3개의 문제에 대한 구현이 모두 포함된 george.rkt파일을 제출하시오. 실행후 Problem 1.3에 대한 Display결과가 나와야 함) George 그림은 다음과 같이 17여개의 선분으로 구성된다. 위의 George그림의 구성요소인 선분 (segments)들을 george-lines로 정의하는 scheme code는 다음과 같다. 이때, 선분들의 위치 (coordinates)는 George가 단 위 사각형상에 사상되었을때의 위치이다 (전체 코드는 강의 웹의 george-lines.rkt 파일을 참조할 것). ( require racket/gui/base ) ( require racket/draw ) ; vector ( make-vect x y) ( cons x y)) ( xcor vect ) ( car vect )) ( ycor vect ) ( cdr vect )) ; segment ( make-segment p1 p2 ) ( cons p1 p2 )) ( start-segment seg ) ( car seg )) ( end-segment seg ) ( cdr seg )) ; george-vects 1

;... p1 p2 p3 p4 ( make-vect ( make-vect ( make-vect ( make-vect.25 0) ).35.5) ).3.6) ).15.4) ) ; george-lines george-lines ( list ( make-segment p1 p2 ) ( make-segment p2 p3 ) ( make-segment p3 p4 ) ; ;... )) 1.1 Problem 1: make-picture 구현 Picture는 프레임 (frame)을 인자 (argument)로 취하고 해당 프레임의 사이즈에 맞 게 주어진 그림의 구성요소 (선분 또는 곡선 등)를 그리는 프로시저 (procedure) 로 정의된다. 앞서의 George그림과 같이 선분들로 구성된 picture를 생성하는 make-picture 함수를 구현하시오. ( make-picture seglist ) ( lambda ( rect ) ;... Note: make-picture를 test하기 위한 절차는 다음과 같다. 1. 위의 make-picture를 호출하여 george-lines으로부터 george를 다음과 같이 정의한다 george ( make-picture george-lines )) 2. 그림이 display되는 frame1을 다음과 같이 정의한다. ; rect origin x-axis y-axis frame1 ( make-vect 0 0) ) ( make-vect 730 0) ) ( make-vect 0 730) ) ( make-rectangle origin x-axis y-axis )) ( make-vect과 make-rectangle은 교과서의 내용 참조). 3. 다음을 수행하여 george를 frame1에 display한다. frame ( new frame% [ label " Paint Triangle "] [ width 747] [ height 769]) ) canvas ( new canvas% [ parent frame ] [ paint-callback ( lambda ( cnavas dc ) ( send dc set-pen red-pen ) ( send dc set-brush no-brush ) ( on-paint )) ]) ) red-pen ( make-object pen% " RED " 2 ' solid )) 2

no-brush ( make-object brush% " BLACK " ' transparent )) dc ( send canvas get-dc )) ; DEFINE CALLBACK PAINT PROCEDURE (define (on-paint) (george frame1)) ; MAKING THE FRAME VISIBLE ( send frame show #t) 1.2 Problem 2: screen-transform Problem 1의 George를 출력하면 다음과 같이 뒤집어진 형태로 화면에 display 된다. 이렇게 뒤집힌 이유는 화면 좌표계가 일반 좌표계와 달리, 원점이 좌상단이고, 이에 x축은 우측방향, y축은 아래쪽 방향을 가리키기 때문이다. 화면 좌표계와 일반 좌표계의 차이를 고려하여, 주어진 picture가 정상적으로 display될 수 있도록 다음 screen-transform를 정의하고 필요한 procedures를 모두 구현하시오. ( screen-transform pict ) ( ( lambda rect ) ( rotate180 ( flip pict )))) 추가로 위의 screen-transform를 적용하여 George를 화면에 display하는 code 를 작성하시오. 1.3 Problem 3: square-limit 강의 slide에서 소개된 바와 같이, square-limit는 다음과 같이 정의된다. ; square-limit ( square-limit pict n) (4 same ( conner-push pict n) 1 2 4 3) ) 또한, george-squarelimit은 다음과 같다. george-squarelimit ( square-limit 4 bats 2) ) 위의 george-squarelimit가 다음과 같이 display되도록 해당 코드를 작성하여 제출하시오. (george-lines.rkt내용을 포함하여 George와 관련된 Problem 1-3내용 모두 포함되도록 file을 하나로 만들어서 제출할 것) 3

2 Fish (아래 6개의 문제에 대한 구현이 모두 포함된 fish.rkt파일을 제출하시오. 실행 후에 Problem 2.6에 대한 Display결과가 나와야 함 ) 예셔의 Fish그림을 근사적으로 재현하기 위해 다음 30여개의 Bezier Curves 들로 구성된 Fish조각을 가정하자. 위의 Fish그림의 구성요소인 곡선 (surves)들을 fish-curves로 정의하는 scheme code는 다음과 같다. (전체 코드는 강의 웹의 fish-curves.rkt파일을 참조하시오) ( require racket/gui/base ) ( require racket/draw ) ; curves ( make-curve p1 p2 p3 p4 ) ( list p1 p2 p3 p4 )) ( start-curve cur ) ( car cur )) ( control-curve cur ) ( cadr cur )) (2 nd-control-curve cur ) ( caddr cur )) ( end-curve cur ) ( cadddr cur )) ; ;;; points... ; ;;; The fish ' s curves 4

fish-curves ( list ( make-curve p1 p2 p3 p4 ) ( make-curve p5 p6 p7 p8 ) ( make-curve p9 p10 p11 p12 ) ( make-curve p13 p14 p15 p16 ) ( make-curve p17 p18 p19 p20 ) ( make-curve p21 p22 p23 p24 ) ; ;;; 2.1 Problem 1: make-picture-from-curve 앞서의 Fish그림과 같이 곡선(curves)들로 구성된 picture를 생성하는 make-picture-from-curve 함수를 구현하시오. ( make-picture-from-curve curvelist ) 추가로, George그림 경우와 마찬가지로 Fish이 display되는지 확인해보시오. 2.2 Problem 2: rotate, above-rotate45 아래에 제시된 변환들을 구현하고자 한다. 1. 위 그림처럼 일반좌표계에서 주어진 picture를 반시계방향으로 angle만큼 회전하는 rotate를 구현하시오. ( rotate pict angle ) ( lambda ( rect )... 특수한 경우로, angle이 90도 (= π/2)인 경우는 강의노트의 rotate90와 같아 지도록 구현할 것. ( rotate90 pict ) ( rotate pict (* 0.5 pi ))) 5

2. 위 그림처럼, 일반좌표계에서 주어진 picture를 반시계방향으로 45도만큼 회 전한 후, 프레임의 x-y대각선이 원래 프레임의 상변과 일치하도록 길이를 2 만큼 축소하고 원점을 조정한 above-rotate45를 구현하시오. ( above-rotate45 pict ) ( lambda ( rect )... 2.3 Problem 3: Fish tile 테스트 다음과 같이 fish조각을 4개 조합하여 fish-tile을 정의한 후 display해보시오. (필요 한 함수는 모두 구현할 것) ; together4 ( together4 pict1 pict2 pict3 pict4 ) ( lambda ( rect ) ( pict1 rect ) ( pict2 rect ) ( pict3 rect ) ( pict4 rect ))) fish ( make-picture-from-curve fish-curves )) fish2 fish3 fish4 fish5 ( flip ( above-rotate45 fish ))) ( rotate fish2 (* 0.5 pi ))) ( rotate fish2 (* 1.0 pi ))) ( rotate fish2 (* 1.5 pi ))) fish-tile ( together4 fish2 fish3 fish4 fish5 )) fish-tile를 display가 다음 그림처럼 나오는지 확인해볼 것. 2.4 Problem 4: quardtet, nonet구현 다음 그림과 같이 quardtet는 주어진 프레임을 4등분하여 4개의 부분 그림을 각각 배치하는 프로시저이고, nonet는 9등분하여 9개의 그림을 각각 배치하는 프로시저 6

이다. quardtet와 nonet를 구현시오. (beside, above를 사용할 것) ( quardtet p q r s)... ( nonet p q r s t u v w x)... 2.5 Problem 5: side-push, corner-push구현 및 테스트 아래의 정의에 따라 quardtet을 이용하여 side-push, corner-push 를 구현하시오. ; side-push ( side-push pict n) ( if (<= n 0) empty-picture... ) ( corner-push pict n) ( if (<= n 1) empty-picture... ) 단, n = 0인 경우에는 empty-picture라고 가정하자. 추가로, 다음 fish-side-push와 fish-corner-push를 각각 frame1에서 display한 결 과를 보이시오 (capture할 것). fish-side-push ( side-push fish-tile 2) ) fish-corner-push ( corner-push fish-tile 2) ) 7

2.6 Problem 6: square-limit구현 및 테스트 아래의 정의에 따라 nonet을 이용하여 square-limit를 구현하시오.. 추가로, 다음 fish-square-limit를 display한 결과를 확인하시오 (capture할 것). fish-square-limit ( square-limit fish-tile 2) ) 참고로, display결과는 다음과 같아야 한다. 8

3 Triangle Fish조각대신에 Triangle조각을 사용하여 다음 그림이 나오도록 문제 2의 code 를 확장하시오. (triangle.rkt파일을 제출하시오. 실행후 다음 그림의 Display 결과가 나와야 함) 다시 말해, 아래 triangle-square-limit를 frame1에 display한 결과가 위 그림과 같이 되도록 문제 2의 코드를 확장하시오. triangle-square-limit ( square-limit triangle-tile 2) ) 9