2020. 5. 19. 12:44ㆍ함수계산기
이 글에서는 함수계산기의 'while' 구문을 사용해서 코드를 짜는 방법을 설명하도록 하겠습니다.
주제는 1에서 10까지 모든 수를 더하는 계산입니다.
다음 코드를 복사한 후 함수계산기의 공장페이지로 가서 우측 상단의 점점점 메뉴를 눌러 밑에 그림과 같이 붙여넣기 하세요.
var 합=0;
var 순번=1;
while(순번<=10){
합=합+순번;
순번=순번+1;
}
return 합;

붙여넣은 다음 run버튼을 누르면 코드가 실행되고 1에서 10까지 모두 합한 결과가 나타납니다.
10을 임의의 수로 바꾼 다음 run버튼을 눌러 테스트해 보세요. 결과는 그 1에서 그 임의의 숫자까지 모두 더한 값을 보여줍니다.
이제 이 while 문 코드가 어떤 방식으로 작동하는 지 설명하겠습니다.
컴퓨터 프로그래밍 코드는 컴퓨터 또는 여기서는 핸드폰이 계산을 하는 방식을 지시하는 명령입니다. 기계는 이 지시에 따라 계산합니다.
여기서 기계를 계산하는 사람이라 상상하고 설명하겠습니다.
편의상 이름을 셈돌이라 합시다.
이 때 셈돌이가 어떻게 계산하는지를 보면 이 코드가 어떻게 작동하는지 알 수 있습니다.
셈돌이가 제일 처음 읽은 코드는
var 합=0;
이란 코드입니다.
읽은 후 셈돌이는 "합"이라는 큰 메모장을 준비합니다. "합"이란 메모장에 계산결과를 메모해 놓기위함입니다. 그리고 처음에는 0이라고 적어 놓습니다.
그 다음 셈돌이는 코드
var 순번=1;
을 읽습니다.
읽은 후 메모장 하나를 더 준비하고 메모장 이름을 "순번"이라 이름 붙입니다. 그런 다음 1을 기록해 둡니다.
그 다음 셈돌이가 읽는 코드는 좀 깁니다.
while(순번<=10){
합=합+순번;
순번=순번+1;
}
이 코드를 읽고 셈돌이는 빠른 동작으로 { }안의 코드명령문을 반복해서 수행합니다. 반복수행하는 조건은 ( )안에 있는 코드에 적혀있습니다.
즉 메모장 "순번"에 기록된 값이 10보다 작거나 같으면 무조건 { }안에 있는 코드를 실행합니다. 현재 메모장 "순번"에는 1이 있고 1은 10보다 작으므로 조건이 참이 되어 { }안을 실행해야 합니다.
셈돌이는 { }안의 첫번째 코드
합=합+순번;
을 읽습니다.
그리고 메모장 "합" 에 기록되어 있는 0과 "순번"에 기록되어 있는 1을 합+순번 코드 지시대로 우선 더합니다. 그런 다음 = 기호의 지시에 따라 합산 결과인 1을 메모장 "합"에 기록되었던 0을 지우고 대신 1을 적습니다.
코드에서 =기호는 수학에서의 = 기호와 뜻이 다릅니다. 코딩에서 = 기호는 같다는 뜻이 아니라 = 기호 오른쪽에 있는 값을 = 기호 왼쪽에 있는 변수에 대입하라 라는 뜻입니다. 여기서는 "합"이라는 메모장에 오른쪽에서 연산된 값으로 업데이트하여 기록하라 라는 뜻이 됩니다.
이로써 합=합+순번; 코드 실행을 마치고 다음 코드를 읽습니다.
다음 코드 순번=순번+1; 코드를 읽은 셈돌이는 순번에 있던 1에다 1을 더한 값 2로 메모장 순번을 업데이트하여 기록해 놓습니다.
셈돌이는 while 구문이 반복을 지시하는 명령문인것을 알기때문에 다시 while구문의 처음으로 돌아가 반복실행을 준비합니다.
반복하기 전에 반복할 조건에 맞는 지 ( )안 코드 "순번<=10" 코드 즉 순번에 있는 값이 10보다 작거나 같은 값인지 체크합니다. 현재 순번에 있는 값은 2이고 2는 10보다 작으므로 조건은 참이고 따라서 다시 { }안의 코드를 실행합니다.
이번에도 앞서와 마찬가지로 코드 "합=합+순번;"을 읽고 합에 있는 값1과 순번에 있는 값 2를 더한 다음 합에 있는 값을 3으로 업데이트합니다.
그 다음 코드 "순번=순번+1;"을 읽은 후 셈돌이는 순번에 있던 2에다 1을 더한값 3으로 메모장 순번을 새로 업데이트합니다.
역시 셈돌이는 반복명령문인 while을 실행하고 있다는 것을 알기때문에 다시 whlie 코드 처음으로 돌아가 ( )안의 반복 조건 "순번<=10"을 체크합니다. 현재 메모장 순번에 있는 값 3은 10보다 작으므로 조건에 부합하고 따라서 이번에도 역시 { }안의 코드를 실행합니다.
앞서와 동일한 방법으로 진행하여 이번엔 메모장 합의 값이 3+3 즉 6으로 업데이트되고 메모장 순번의 값은 3+1 즉 4로 업데이트됩니다.
다시 셈돌이는 while문 시작지점으로 돌아가 이번에도 ( )안의 조건을 체크해보니 메모장 순번에 있는 4가 10보다 작으므로 조건이 참이어서 역시 { }안의 코드를 앞서와 동일한 방법으로 실행한 결과 메모장 합은 6+4즉 10으로 업데이트되고 메모장 순번은 4+1 즉 5로 업데이트 됩니다. 이런식으로 반복하면 아래와 같이 진행됩니다.
- 5<=10 참
- 합=10+5
- 순번=5+1
- 6<=10 참
- 합=15+6
- 순번=6+1
- 7<=10 참
- 합=21+7
- 순번=7+1
- 8<=10 참
- 합=28+8
- 순번=8+1
- 9<=10 참
- 합=36+9
- 순번=9+1
- 10<=10 참
- 합=45+10
- 순번=10+1
여기까지 셈돌이가 실행한 결과 메모장 합에는 55가 기록되어 있고 순번에는 11의 값이 기록되어 있게 됩니다.
이번에도 셈돌이는 while문을 반복 실행하기위해 ( ) 안의 코드 "순번<=10"을 체크합니다. 현재 메모장 순번에는 11의 값이 있고 따라서 조건은 더이상 참이지 않습니다.
이럴 경우 셈돌이는 더 이상 { }안의 코드를 실행하지 않고 while문 코드를 끝마치고 다음 코드를 실행하게 됩니다.
다음 코드는 "return 합;" 인데 이 코드는 메모장 합에 있는 값을 산출하라 또는 반환하라 라는 뜻의 코드입니다. 현재 합에 있는 값은 55이므로 셈돌이는 55를 출력하고 임무를 마칩니다.
셈돌이가 코드를 읽고 코드에 따라 한 행동들을 잘 살펴보면 어떻게 컴퓨터가 코드를 실행하는지 그리고 코딩의 뜻이 무엇인지 감을 잡을 수 있을것입니다.
함수계산기 를 다운받아서 직접 코딩을 해 보면서 연습해 보시기 바랍니다.
함수계산기에서 사용하는 코딩은 자바스크립트와 비슷한 문구로 만들어져 있으나 오직 숫자계산에만 사용되도록 만든 초간단 코딩스크립트입니다. 프로그래밍에 관심있는 초심자라면 간단하게 연습용으로 사용해 볼 수도 있고 또 계산에 함수를 만들어 사용하는 것 자체가 매우 유용한 기능임을 체험할 수 있을것입니다.
'함수계산기' 카테고리의 다른 글
물체의 자유낙하 거리 계산 (2) | 2025.03.20 |
---|---|
피보나치 수열 계산 (0) | 2025.03.16 |
3차 방정식 해 구하는 함수 만들어보기 (2) | 2025.03.10 |
3원 연립방정식 계산 함수만들기 (0) | 2025.03.05 |
2원 연립방정식 푸는 함수 만들기 (0) | 2025.03.05 |