본문 바로가기
[ CODING STUDY ]/》스크래치 공부

스크래치23장(함수, 함수블록, 매개변수, 창작게임, 문자열변수, 사용자지정함수)

by MRG 2020. 6. 17.
728x90
반응형

▣ 안녕하세요 ^^
저번장 숙제는 다 해보셨나요??
이제 거의 스크래치가 끝나가네요 ㅠ.ㅠ
지금까지 숙제 그리고 알고리즘 순서도를 열심히 하셨다면,
스크래치 코딩 뿐만 아니라 컴퓨터적 사고력도 많이 향상되셨을 거라 생각합니다. ^^
진짜 실력은 끝까지 하는 것입니다.
그러니 끝까지 최선을 다해주세요.


▣ 오늘은 블록을 직접 만들어보는 시간을 가지겠습니다. 
블록 하나하나를 함수라고 이야기할 수 있습니다.
예를 들어

▣ 벽에 닿으면 튕기기 블록은 
어떤 기능이 내장되어 있다고 했죠?
조건문으로 벽에 닿으면
반대 방향으로 바뀌는 코딩이 있다고 우리는 알고 있습니다.
그렇다고 한다는건
벽에 닿으면 튕기기 처럼
스크래치에서 제공한 블록들은 하나하나 안에 또 다른 블록이 코딩 있다는 걸 알 수 있습니다.


▣ 이걸 스크래치에서 제공한 기본 함수, 라이브러리 함수라고 이야기할 수 있겠네요.
그렇다고 한다는 건 우리가 직접 블록을 만들 수도 있겠죠?
그걸 사용자 지정 함수 블록이라고 합니다. 
말이 너무 어렵네요 ^^;;
그냥 블록을 만든다고 생각해주세요.
그럼 어떻게 만들까요?

 

▣ 메뉴에서 보면 
이렇게 나만의 블록 만들기 메뉴가 있습니다.
여기서 블록 만들기 버튼을 누르시면 됩니다. 

 

▣ 그럼 이렇게 함수 만들기 메뉴가 나오는 걸 확인할 수 있습니다.
겁먹을 필요 없습니다. ^^
하나하나 살펴보겠습니다.
먼저 블록 이름을 지정해야 합니다.
우린 먼저 기본적으로 함수 이름을 지정하고 
함수에 매개변수 없이 만들어보겠습니다. 
함수 이름을 10번 움직이는 함수라고 정해준 다음에 
확인을 눌러보겠습니다.

 

▣ 그럼 이렇게 10번 움직이는 함수라는 블록이 생성된 걸 확인할 수 있습니다. 
이제 우리가 만든 블록에 기능들을 정의해줘야 합니다.

 

 

▣ 이렇게 10번 움직이는 함수 정의하기 블록에 
10번 반복하기 블록과 그 안에 10만큼 움직이기 블록을 넣겠습니다. 
그럼 10번 움직이는 함수 블록은 10번움직이기를 하는 블록으로 정의가 됩니다. 

 

▣ 자 이렇게 깃발을 클릭했을 때 밑에 아까 우리가 만든 
블록을 넣고 깃발을 누르면 어떻게 될까요?
네~ 아까 정의했던 10번움직이기를 하게 됩니다.
아주 신기하죠?
이렇게 우리가 직접 블록을 만들 수도 있습니다. 

 

▣ 이번에는 매개변수 값을 추가해볼까요?
매개변수라는 건 우리가 만들 함수 안에 있는 변수를 의미합니다.
메뉴에서 입력값 추가하기 숫자 또는 문자열을 누르면 
함수 이름 옆에 매개변수 이름을 지정하는 게 나옵니다.
그럼 저처럼 매개변수 이름을 횟수라고 정의해주세요.
그리고 확인을 누르겠습니다. 

 

▣ 그럼 아까 함수 이름만 지정했을 때에 블록과 다르게 
횟수라는 변수가 나오는 걸 확인할 수 있습니다. 
그럼 매개변수를 지정할 수 있어야겠죠?
우리가 값을 정하면 
이렇게 횟수 변수 블록을 때어와서 넣을 수 있습니다. 

 

▣ 아까처럼 정의하기에 말하기 블록을 넣는데 여기에 횟수에 변수 값을 넣겠습니다.
그리고 반복하는 횟수도 매개변수를 넣겠습니다.
그리고 깃발을 클릭했을 때 
우리가 만든 함수 블록을 넣으면 빈칸이 있습니다.
여기가 매개변수를 받을 공간이라고 생각하시면 됩니다.
여기에 10을 입력하게 되면 
10이 매개변수에 저장이 되고 그럼 말하기 블록과 반복하기 블록에
10이 전달이 되겠죠? 그럼 10을 말하고 10번 반복하게 됩니다. 
숫자뿐만 아니라 문자도 매개변수에 저장할 수 있습니다.

 

▣ 아까랑 다르게 매개변수 이름을 말하기 값이라고 바꾼 후
매개변수 값을 말하기 블록에 넣고
깃발을 클릭했을 때
함수에 매개변수 값을 안녕~~ 이라고 넣으면
그 값이 매개변수에 저장이 되고
말하기 블록에서 말하게 됩니다. 

▣ 이건 꼭 꼭 해보셔야 합니다.
처음에는 매개변수가 많이 어려울 수 있습니다.
그러니 저처럼 함수 이름만 지정해서 
블록을 만들어보고
숫자나 문자를 받아오는 함수
매개변수가 추가된 함수 블록을 만들어서 꼭 꼭 사용해보세요.

 

▣ 이번에는 논리 값을 추가해보겠습니다.
아까 매개변수와 동일합니다.
저장할 값이 문자와 숫자가 아닌~~
논리값 
참, 거짓을 넣는 걸 의미합니다.
저처럼 함수 이름을 함수라고 이름을 정하고
매개변수 값을 참 거짓으로 지정한 다음에 확인을 눌러주세요.

▣ 그리고 아까와 동일하게 정의하기에 말하기 블록을 넣고 참 거짓에 매개변수 값을 말하게 
지정한 다음에
깃발을 누르면 비교 연산자를 활용해서
참 거짓 값을 연산하게 만들어줍니다.
그럼 40과 50은 다르기 때문에
false에 값을 전달해주겠죠?

 

▣ 그리고 이렇게 값이 참일 경우에는 
true를 말하게 됩니다.
이것도 꼭 꼭 직접 실습해보세요.

 

▣ 마지막으로 라벨 넣기입니다. 
이건 함수에 이름값을 추가하신다고 생각하시면 됩니다.
라벨 넣기를 누르면 이렇게 함수 이름 창이 길어지는 걸 확인할 수 있습니다. 
함수 이름을 지정한 다음에
확인을 누르면

 

▣ 이렇게 함수 이름이 나오는 걸 확인할 수 있습니다. 
간단하죠??

▣ 그럼 함수를 언제 사용할까요?
쉽게 이야기해서
반복되는 코딩과 가독성 그리고 유지보수를 위해서 사용하게 됩니다.
예를 들어

 

 

▣  움직이는 블록을 코딩한다고 생각해보겠습니다. 
오른쪽 왼쪽 움직이는 코딩이 동일하겠죠?
방향 빼고요.
그럼 이렇게 함수로 묶어서 만들 수 있습니다. 
방향만 매개변수로 받아와서요.
그럼 나중에 코딩에 문제가 생기면 
저 함수만 보고 수정하면 됩니다.
그리고 코딩을 다시 읽을 때에도 가독성에 있어서 아주 편리합니다. 
그리고 코딩도 깔끔합니다 ^^
이럴 때 함수를 사용합니다. 


▣ 하지만 코딩에 선택은 여러분들 몫입니다. 
무조건은 없습니다.
코딩은 정답이 없기 때문이죠.
저는 그렇게 생각합니다.

 

 

 

▣ 알고리즘 순서도 입니다. 
함수를 따로 구분해서 알고리즘을 작성해도 되겠죠?
꼭 해보시기 바랍니다. 

 

 

 

 

▣ 오늘에 연습문제입니다.
우리가 배운 모든 블록을 사용하려고 노력했습니다. ^^
꼭 함수로 다 만드실 필요는 없지만,
하시다가 반복적인 부분이 있다면
함수로 정의해서 만들어보세요.
그럼 함수에 필요성을 느끼실 수 있을 겁니다. 
꼭 영상을 보고 파악해주신 다음에
알고리즘 순서도를 설계하고 코딩을 진행해주세요.
그래야 놓치지 않고 코딩을 완성할 수 있을 겁니다.


▣ 자 오늘 이렇게 함수를 배워보았습니다.
이제 스크래치가 거의 끝나가네요.
다음장이면 스크래치 메뉴에 있는 나머지 
기능들을 살펴보고 마칠 거 같습니다. 
게임 만들기를 목표로 했는데,
벌써 여러분들은 그 목표를 이루셨을 거라 생각하니 
뿌듯하기도 하면서 
왠지 조금 아쉽기도 합니다. ㅠ.ㅠ
그래도 스크래치 공부 놓지 마시고 
다음장도 있으니 다음장까지 꼼꼼하게 공부해주세요.
그리고 이어서 c언어를 공부하시면 많은 도움이 될 겁니다.
혹시 스크래치에 관해서 필요하신 코딩 자료나,
질문 있으시면 댓글 남겨주세요 ^^ 
그럼 다음장에서 뵙겠습니다.


▣ 포기하지 마세요~~ 저도 했습니다~~~ 파이팅!!!

728x90
반응형

댓글