모두를 위한 컴퓨터 과학 (CS50) 1.4~1.5 - 스크래치(기초, 심화)

yesolog·2024년 3월 8일

CS50

목록 보기
3/3

✅ 스크래치 프로그래밍 툴을 사용하여 알고리즘 이해하기

1.4와 1.5는 스크래치라는 프로그래밍 툴을 사용하여 알고리즘 즉 처리과정이 어떻게 진행되는지 알 수 있었다. 굉장히 가볍게 변수와 조건, 루프와 이벤트 등에 대해서 학습할 수 있었다.

1. 첫번째 퍼즐 - hello, world

만약 저런 블록을 실행하게 되면 화면의 고양이가 hello, world를 출력한다.

저 과정을 입력 - 알고리즘 - 출력으로 나눠서 표시하면 다음처럼 나눌 수 있다.

hello,wolrd 라는 정보가 입력이 되고, 내부에서 say라는 함수, 혹은 알고리즘 또는 단계적 처리에 대한 지시가 시행된다. 그결과 고양이가 hello,world라고 하는 값을 출력하게 된다.

2. 한단계 업그레이드

자.. 그럼 이런 블럭은 어떤 순서로 처리되는걸까?

먼저 hello, 라는 정보와 answer라는 변수를 입력하면 join이라는 알고리즘으로 이 둘을 합친다. 여기에서 answer로 David를 입력했기 때문에 hello, David가 출력된다.

다음으로 이 출력된 값을say라는 알고리즘으로 처리한다. 이를 통해 고양이가 hello, David라고 출력을 한 걸 확인할 수 있다.

3. 조건문과 반복을 더하면?

예시 중 가장 재밌던 물개 블록 스크래처를 가지고 와봤다.

이 스크래치는 두개의 스크립트를 가지고 있으며 조건문과 루프를 사용하여 블록을 구성했다.

forever라는 반복문을 통해서 계속해서 스크립트를 반복하고 있다. 거기에 if라는 조건문을 활용하면 더 복잡한 프로그램도 가능하다.

첫번째 스크립트는 시작과 동시에 반복문을 수행한다. 만약 muted 변수가 false라면 바다표범 소리를 재생하고 hihihi를 2초간 말하게 한 뒤 1초있다가 다시 똑같은 과정을 수행한다.

두번째 스크립트는 true 또는 false 값을 가지는 불리언 변수를 사용한다. 만약, 초록색 깃발이 클릭되면, muted 변수를 false으로 설정한다.

그리고 루프를 돌면서, 감지 블록을 통해 스페이스 키가 눌렸는지 체크한다. 그렇다면, muted가 true인지 확인하고 true이라면 , muted를 false로 설정한다. 만약 muted가 true가 아니라면, muted를 true로 설정한다. 그리고 1초를 기다린다.

두번째 스크립트는 스페이스바를 감지하는 역할을 수행하여 muted를 true/false로 변경하는 역할을 수행하고 첫번째 스크립트는 muted의 true/false 여부에 따라 물개가 소리를 내도록 하는 역할이다.

간단한 예시들을 통해 입력 - 처리 - 출력의 과정을 알아볼 수 있었다.

출처: 모두를 위한 컴퓨터 과학 (CS50 2019)

0개의 댓글