이번 과제에서는 세가지 숫자를 입력하여 가장 큰 숫자부터 순서대로 입력하는 과제였다. 처음에는 막막하고 도대체 BRLT가 뭐고 BREQ, BR, LDA, STA이런 것들 것 도대체 뭔지 이해가 안되었지만 흥분한 나의 마음을 진정시키고 하나씩 공부를 하면서 보니 이해가 되고 사용을 할 수 있게 되었다. 하지만, 처음에는 진짜로 머리만 아프고 뭐 되는 거는 없고 하였지만 하면 할수록 술술 풀리고 재미있어지기 시작하였다.
위에 있는 것은 전체 실행을 했을때의 화면입니다.
위에 있는 것은 내가 짠 코드이다.
위에서 물음표로 되어 있는 이유는 나도 모른다. 설명하기 쉽고 이해하기 쉽게 한국 말로 주석을 달았을 뿐인데 나도 모르게 물음표로 나오고 그런다. 이때 순간 욱했다는…ㅋ
위에 있는 코드에 내가 어떻게 사용을 하게 되었는지 간단하게 설명을 해주겠다. 일단 나는 한가지 경우를 생각했다. A, B, C 이 세가지 숫자를 가지고 어떻게 비교해야 되는 문제를 가지고 그냥 가장 먼저 생각 난 것이 바로 BRLT 였다. BRLT는 두 숫자를 빼서 0보다 작은가를 확인하는 것이다. 이때, 나는 숫자의 크기를 비교하려면 두 숫자를 빼는 원리를 이용해야 된다는 것을 알아냈다. 그래서 A-B<0을 확인하여서 A<B, 그리고 B-C<0을 확인하여 A<B<C라는 경우를 가장 먼저 생각하였다. 그리고 그 경우에서 뻗어 나가 A를 기준으로 하여 이것저것 비교를 하였다. 즉, A-B<0이라는 개념에서 B-C<0, B-C=0, B-C>0 이 세가지를 생각해 낸 것이다. 이렇게 계산을 하고 나니 A-B<0 이외의 경우들이 나의 머리를 괴롭히기 시작했고 나는 30분 동안 끙끙대면서 머리를 쓰던 중 옛날에 C 수업 시간에 했던 변수를 바꾸는 것이 생각 났고 그것을 응용하기로 생각했습니다. 다시 말하자면, A, B, C라고 계산을 한 뒤, B, C, A를 계산하고 C, A, B를 계산해서 모든 경우를 계산하는 것입니다. 하지만, 이렇게 하면 A, B, C로 계산을 해도 해결이 될 경우도 있습니다. 이런 경우에는 제가 만든 여러 가지 print 함수 모두다 print가 되자 마나 종류를 시키게 하였습니다. 이럴 경우 그냥 순서대로 값을 출력한 다음 종류를 시키기 때문에 아무 문제가 없기 때문입니다. 이렇게 제 나름대로 코드를 짜봤지만, 역시 처음 써보는 언어라서 그런지 참 어려웠습니다. 그래도 Low-level programming도 어느 정도 써보니깐 은근히 재미있긴 재밌내요!^^
댓글 없음:
댓글 쓰기