본문 바로가기

아두이노

랩터(RAPTOR) 프로그램 강의 06 - 함수 만들고 호출하기

반응형


랩터(RAPTOR) 프로그램 강의 06 - 함수 만들고 호출하기

나는 함수다! – 함수 호출

지금까지 우리가 랩터로 만든 프로그램들은 특별히 강조하지는 않았지만 모두 다음 이미지에서 빨간 원으로 표시한 부분과 같이 “main” 이라는 이름을 가지고 있습니다.

일반적인 웹 브라우저에서 여러 개의 탭에서 각각 다른 사이트를 볼 수 있듯, 랩터에서는 다음과 같이 여러 개의 순서도를 탭으로 구분하여 만들 수 있습니다. 랩터에서는 각각의 탭으로 분리하여 그려진 순서도를 구분하기 위해 고유한 차트 이름을 부여해야 합니다.

참고로, 최초에 자동으로 주어지는 main 차트는 이름을 변경할 수 없으며, 기타 나중에 사용자가 이름을 붙여 만든 다른 차트들을 서브 차트라고 합니다. 이는 일반적으로 프로그램 언어로 만든 프로그램에서 main 루틴과 서브루틴, 또는 main 함수와 서브 함수 또는 보조 함수로 부르는 것과 동일한 개념입니다.

서브루틴의 호출에 대해 좀 더 자세히 알아보기 위하여 먼저 다음의 빨간색 부분을 살펴봅시다.

만약 위의 프로그램에서 빨간 사각형 영역을 다음과 같이 별도의 순서도로 만들어, “0이 아닌 경우”의 작업 처리 부분이라는 의미로 “not_0” 라는 이름을 붙여봅시다. 그리고 main 차트에서 별도로 분리한 이 “not_0” 차트를 호출하고, “not_0” 차트로 넘어가서 실행한 다음 다시 main 차트의 다음 처리 부분으로 되돌아 가도록 다음과 같이 바꾸어보겠습니다.

여기서 빨간 색으로 표시된 호출에 의한 작업 처리 흐름을 “main 프로그램에서 not_0 서브루틴을 호출(call)하고, not_0 서브루틴이 실행(execution)된 후에 다시 main 프로그램으로 되돌아 온다(return)”라고도 표현합니다.

그러면 이제 랩터에서 “not_0” 서브루틴을 만들고, main 프로그램에서 이를 호출하도록 만들어 볼까요? 먼저 다음과 같이 서브루틴을 호출할 부분만 빼고 나머지 main 프로그램 부분을 작성한 후에, 호출 기호를 끌어 넣어 추가합니다.

다음과 같이 추가한 호출 기호를 더블 클릭하여 설정 메뉴에서 서브루틴 이름을 입력하고 적용합니다.

모듈(module)

경우에 따라 프로그램은 동일하거나 유사한 내용의 연속 작업을 여러 번 수행합니다. 편의를 위해 이런 공통적인 작업들을 묶어서 모아두는데 이를 모듈이라고 합니다. 이는 메인 프로그램 안에서 호출되어 실행될 수 있는 일종의 작은 프로그램으로, 서브루틴(sub-routine), 프로시저(procedure) 또는 함수(function)라고도 부릅니다.

방금 설정한 대로 다음과 같이 “not_0”라는 이름의 서브 차트 탭을 새로 만들지 여부를 물어오는데 [예]를 선택하면 다음과 같이 “not_0” 라는 이름의 새로운 탭이 하나 만들어지고, 시작과 끝을 나타내는 기호만 있는 기본 차트가 하나 만들어집니다.

이제, 앞에서 만들었던 방법과 동일하게 main 프로그램에서 별도로 분리한 부분을 추가하고 만듭니다. 최종 완성된 “not_0” 서브루틴은 다음과 같습니다.

참고로, 순서도의 기호를 하나씩 실행하는 다음 기호 실행( ) 버튼을 클릭하면서 프로그램을 실행해보면 다음과 같이 main 프로그램에서 not_0 서브루틴을 호출하는 시점에서 자동으로 main 탭에서 not_0 탭으로 바뀌면서 시작(Start) 기호로 처리가 넘어가는 과정을 볼 수 있습니다. 마찬가지로, not_0 서브루틴이 끝나면서 마지막으로 끝(End) 기호가 실행된 후에는 다시 main 프로그램으로 되돌아가는 것을 볼 수 있습니다. 그리고 툴 바의 실행 속도 슬라이더로 프로그램이 실행되는 속도를 조절할 수 있습니다.


서브프로그램 - 함수 실행

 


반응형