1. 우선 이진수 덧셈에 대한 간단 이론 내용은 아래와 같습니다. 여기서 핵심은 MSB에서 자리 올림수가 발생하면, 오버플로우(Overflow)가 발생한다는 사실이고, 이를 프로그램 코드로 어떻게 처리하는지에 대한 내용을 순서도로 어떻게 구성하는지를 주의깊에 살펴보아야 합니다. 이진수에 대한 덧셈, 뺄셈, 1의보수, 2의보수 구하는 문제에 대한 알고리즘/순서도 문제는 매년마다 한번 또는 두번 이상 출제되기에 반드시 알아두어야 하는 부분입니다.
2. 아래 순서도는 정보처리기사 실기 2009년 07월 05일 알고리즘 문제의 순서도 정답입니다. 이 부분에 대해서 5부분에 대한 괄호넣기가 문제였습니다. 결과 자체를 놓고보면 어렵지 않겠지만, 의외로 중간중간에 네모박스를 넣어놓으면 보기에서 해당 부분에 대한 내용을 채워넣는게 쉽지 않을 수 있습니다. 학습자 입장에서는 아래 순서도를 읽어낼 줄만 알면 됩니다.
3. 위 순서도를 바탕으로 4자리 수 2개의 이진수의 합계를 구하는 수천가지 로직 중 한가지 방법은 아래와 같이 구할 수 있습니다. 이 방법은 2009년 07월 05일 정보처리기사 실기 기출문제에서 나온 방식으로 작성한 소스입니다. 아래 소스의 12번 라인과 13번 라인의 값을 다른 값으로 변경해 보면서 테스트해보면 MSB의 값이 더하기되었을 때 2이상면 OVERFLOW에 출력됩니다.
4. 위 소스의 실행 결과입니다.
마무리
실제 정보처리기사 실기 시험에서는 C/C++/C#으로 소스를 작성하진 않습니다. 하지만, 제 사이트에 오는 분들은 대부분 닷넷 언어인 C#을 기준으로 하기에 이를 활용하여 문제를 만들어 보는 내용을 블로그로 옮겨보았습니다. 순서도만 보는 것보다는 해당 순서도대로 만들어진 실제 소스를 보면 더욱 눈에 잘 띄지 않을까 합니다... (솔직히 까놓고 말해서, 요즘 누가 순서도 씁니까???)
이상. 끝...