상세 컨텐츠

본문 제목

스크래치 프로그래밍: 변수/리스트와 제어 기초 활용

프로그래밍/스크래치

by 삶의 재발견 2014. 2. 28. 08:57

본문

반응형

■ 스크래치 프로그래밍: 변수와 제어 기초 활용


변수를 데이터를 저장할 수 있는 공간으로 프로그래밍에서 매우 중요한 부분입니다. 다음 예를 통해서 변수에 대해 학습해보도록 하겠습니다.


사용자에게 5개의 값을 받아서 값의 합계를 구하고 싶다면 어떻게 프로그래밍 해야할까요?


사용자에게 입력받기 위해서는 관찰에 있는 "묻고 기다리기"를 활용해야 하며, 5번 입력을 받기 위해서는 "묻고 기다리기를" 다음과 같이 5번 사용해야 할까요? 물론 5번 이면 복사해서 해도 되지만 100번 이라면 작업도 힘들고 스크립트도 복잡해집니다.



아주 간단하게 다음과 같이 제어에 있는 "반복하기"를 활용하면 됩니다.



사용자가 정수를 입력할 때, 이전 값들 또는 이전 값들의 합에 현재 입력한 값을 더해야 합계를 계산할 수 있습니다. 이전까지의 합계를 저장하려면 변수를 활용해야 합니다. "합계"라는 변수를 생성하고, 사용자가 입력하는 값을 합계 변수에 계속 더해주도록 해야 합니다.


그리고, 데이터에서 "합계'라는 변수를 생성하고, "합계를 1만큼 바꾸기"를 이용하여 다음과 같이 반복블럭 사이에 추가합니다. "1"대신 "대답" 블럭을 추가하면 아래와 같이 완성이 됩니다. 


참고로 "(1) 만큼 바꾸기는" 변수의 현재값에 1을 더하는 것을 의미합니다.



변수 "합계"는 스크립트가 실행될 때마다 0이 되도록 하기 위해서 "합계를 0으로 정하기" 블럭을 제일 앞에 넣어주어야 반복적으로 수행해도 합계가 제대로 계산됩니다.



합계 뿐만 아니라 평균을 구하려면 어떻게 해야할까요?



■ 리스트를 이용하여 확장하기


변수는 하나의 값만을 저장할 수 있는 반면, 리스트는 여려 개의 데이터를 저장할 수 있는 공간이 입니다.

앞에서 작성한 프로그램에 "합계리스트"를 추가해서 다음과 같이 수정해 보도록 하겠습니다.


"add to" 블럭을 이용해서 다음과 같이 대답값을 "합계리스트"에 추가될 수 있도록 블럭을 구성해서 추가하면 됩니다.



프로그램을 실행하면 다음과 같이 입력한 결과가 보여지면, 입력한 순서에 따라 번호(Index)가 있습니다. 


리스트는 내부에 하나의 값들을 Item이라고 하며, Item은 번호(Index)로 구분이 됩니다. 3번째 위치 값을 찾아서 434값을 가져올 수도 있고, 2번째 위치에 있는 46을 다른 값으로 변경하거나, 1번째 위치에 있는 값을 제거할 수도 있습니다.



스크립트를 다시 실행하면, 리스트의 값이 계속 추가됩니다. 따라서 스크립트가 시작될 때, 리스트를 모두 비워주기 위해서 "delete 모두 of 합계리스트"를 스크립트 앞에 추가해합니다.



반응형

관련글 더보기