이번 학습에서, 리보그가 두 숫자를 더하는 프로그램을 작성하도록 여러분을 인도하겠습니다. 10진수로 일반적인 방식으로 덧셈을 하지만, 다른 진법의 숫자를 이 프로그램을 사용하여 쉽게 할 수 있습니다.
전통적인 방식으로 오른쪽에서부터 왼쪽으로 두 숫자를 더해봅시다.
528 + 634 ------ 12 # 마지막 숫자 두 개를 더하기 (8+4)
단자리에서 십자리 이월 시킬 1을 가지고 있습니다. 이월은 여러분이 작성한 프로그램이 문제를 가질 소지가 가장 큰 곳입니다. 일반적인 방식으로 다시 프로그램을 다시 작성해서 계속 갑시다.
1 528 + 634 ------ 1162
그럼, 조금 간략하지만, 여러분이 충분히 따라올 수 있다고 확신합니다. 리보그 월드에서, 덧셈을 아래 보이는 것처럼 보입니다.
Let's tackle first the simpler problem of adding 8+4.
앞에서 언급했듯이, 각 비퍼들은 숫자를 나타내고 두 숫자를 더해서 합이 9보다 큰 경우 (십진수에서) 두 숫자를 더하기의 문제가 발생합니다. 두 숫자를 무엇을 더하든지 상관없이 이 마술 숫자 (10)을 기억할 필요가 있습니다. 월드 파일(파일: adding_world.wld)을 생성했는데 10진수 (혹은 29진수도 가능)로 7자리까지 충분히 더할 수 있는 큰 월드입니다. 월드 파일을 살펴보세요. 적절하게 덧셈을 할 수 있는 프로그램을 작성할 수 있도록 제가 여러분을 인도하여 드리겠습니다.
월드 파일을 메모리에 올린 후에, 화면의 바닥을 살펴보면, 리보그가 8개 비퍼를 가지고 있는 것을 알 수 있습니다. 다음에 보여지듯이 리보그가 10번째 행에 비퍼를 쭉 내려 놓는 프로그램을 작성하세요.
이제 좀더 진행하기 전에 이 프로그램을 저장하세요.
월드 파일을 열어 다시 메모리에 올리고, 오른쪽 하단 모퉁이에 비퍼를 추가해서 다음과 같이 보이도록 하세요. 하지만 리보그는 처음 시작위치 (좌측 하단 첫 번째 위치)에 서 있습니다.
리보그는 다음을 수행합니다.
이제, 비퍼 수평선에는 두 개의 비퍼와 이월로 사용할 나머지 잉여 비퍼가 있습니다. 이제 여러분이 해야 할 것은 다음을 작성하는 것입니다.
남은 마지막 일은 결과를 보여드리기 위해서 리보그를 길 밖으로 빼는 것입니다.
사실… 이 5 단계는 상당히 많은 프로그램 코드를 필요로 하고, 제대로 작동하게 만들기가 꽤나 어렵습니다. 하지만, 체계적으로 한다면 하실 수 있습니다. 시도해 보세요!
그래서, 종국에 8+4를 계산하는 프로그램을 만들었습니다. 훌륭합니다. 이제 3+5를 시도해 봅시다. 작동하나요? 작동이 되지 않죠… 이 연산은 이월을 필요하지 않습니다. 다시 돌아가서 프로그램을 수정해서 두 숫자를 더하는 연산 0+0에서 9+9까지 잘 돌아가도록 하세요.
10진수에 말고 다른 진법의 숫자를 더한다는 의미를 알고 있다면 프로그램을 변경해서 다른 진법의 숫자를 더하는 프로그램을 작성해 보세요.
지금까지, 리보그 월드안에서, 파이썬 키워드 def, elif, else, if, not, pass, while를 살펴봤습니다. 다소 복잡한 프로그램을 작성해서, 리보그가 두 숫자를 더하는 것으로 마무리 했습니다. 이제 리보그 월드를 벗어나서 파이썬으로 좀더 쉽게 두 숫자를 더할 수 있는지 살펴봅시다. 리보그 월드로 돌아가기 전에 파이썬에 대해서 좀더 학습할 것입니다.