[2차시 9/17] 강의 및 과제(2)

   

 

과거 사람들은 성곽의 주변을 꾸미고 적을 위협하기 위해

토템을 만들었다.

같은 모양의 토템을 높이만 다르게 해서 여러개 만들려 면 어떻게 해야 할까?

강의를 들으며 확인해 보자!

 

 

 

  1. 변수! 변할 수 있는 수

성곽을 꾸밀 수 있는 조각상을 만들어 보자. 같은 모양을 크기만 다르게 해서 배치하려면 어떻게 해야 할까?

시작은 최대한 간단하게 해보자.

 

왼쪽의 높이는 2이고, 오른쪽은 3이다.

 

위 그림에서 기둥 모양은 똑같다. 다만, 그 크기만 다르다. 즉, 위로 올라간 수가 변한다.

 

이처럼 ‘변할 수 있는 수’를 우리는 변수라고 부른다. 우리는 이를 통해 크기가 변하는 대상을 만들어 볼 수 있다.

예를 들어 앞서 만든 구조물은 다음과 같은 코드를 가진다.

 

 

1번과 3번의 치환을 보면 구조는 같으며, 올라간 숫자만 다르다는 것을 알 수 있다. 그렇다면 이를 다음과 같이 표현해 보면 어떨까?

 

 

여기서 n을 우리는 변수라고 한다. 이를 표기할 때는 다른 코드와 다르게 괄호 안에 들어감을 주의하자.

이를 이용하면, 우리는 쉽게 대상을 변화시킬 수 있다.

 

다소 코드의 길이가 늘어났다고 보일 수 있으나, 입력한 코드가 훨씬 경제적으로 변했다는 것을 알 수 있다. 변하는 대상을 코딩하기 위해서는 우선 규칙성부터 인식하는 것이 중요하다.

 

 

 활동1.  다음 그림과 같이 n의 값에 따라 변하는 구조물을 코딩하자.

 

(단, n의 값은 5로 저장하자)

 

 

 

 

 

활동2.  다음 그림과 같이 n의 값에 따라 변하는 구조물을 코딩하자.

(단, n의 값은 7로 저장하자)

 

 

  변하는 대상을 배치하는 방법은 간단하다. 우리는 goto를 통해서 거북이의 위치를 바꾸고, T를 이용해서 거북이를 점프시킬 수 있다

예를 들어, 다음과 같은 나만의 토템을 만들었다고 해보자.

 

 

 

점프(T)를 이용하면, 각 구조물이 떨어지게 할 수 있다.

 

 

 

활동3.  나만의 토템(구조물)을 만들고, 10개를 배치해 보자.

활동4. 3개 이상의 크기를 가진 나만의 토템을 최대한 많이 만들어 보자.

강하람선생님 2022-10-01 10:10:31
X='s[(2*n)u [(n)l][(n)r]] 3T' n=3 doit(5X) goto(0,-20,1) n=5 doit(5X) goto(0,20,1) n=5 doit(5X)
운영팀/운영자 2022-10-01 10:39:32
X= 's[(n)u] [(n+1)r [(n)u]] 3T' n=3 doit(4X) n=5 doit(4X) n=8 doit(4X) goto(1,1,1) n=8 doit(L 4X) goto(1,1,1) n=7 doit(2R 4X)
운영팀/운영자 2022-10-01 10:41:11
X='s[(2*n)u [(n)r (n)u (n)r (n)u (n)r (n)u ] [(n)l(n)u(n)l(n)u(n)l(n)u]] 4T (n=n+1)' n=1 goto(-30,-0,1) doit(10X) goto(-30,16,1) n=2 doit(10X) goto(-30,-16,1) n=3 doit(10X)