여러분은 문제를 해결하는데 있어서 조건 검사 결과에 따라서 두 가지 행동 가운데서 한 가지를 선택하는 경우가 종종 발생한다. 가령, 주어진 값이 양수이면 어떤 동작을 수행하고, 음수이면 다른 동작을 취하는 프로그램을 생각할 수 있다.

여기서 두 동작간에는 서로 관련이 없고 독립적이라고 생각할 수 있다.
이러한 상황을 알고리즘으로 기술하면 다음과 같다.

 

      알고리즘
          주어진 값이 양수이면 행동 A를 수행하고,
          그렇지 않으면 // 즉, 음수이면 행동 B를 수행한다.


위의 알고리즘을 영어 문장을 사용하여 약간 형식화시키면 다음과 같다.

 

위에서 if 다음에 오는 괄호 안에 조건이 표현되는 것을 알 수 있다. 이러한 조건의 검사 결과는 참이나 거짓이다.
따라서 위의 알고리즘은 조건의 검사 결과가 참인 경우에(주어진 값이 양수이면) 행동 A가 수행되고, 거짓인 경우에는(값이 음수이면) 행동 B가 수행된다는 것을 나타낸다. 즉, 행동 A는 if 문장의 then 부분에 속하고, 행동 B는 else 부분에 속한다.

정리하면, 선택 구조는 크게 다음 3가지로 구성된다.
: 조건 식, then-부분, 그리고 else-부분. 조건 식에는 선택 판단을 표현하는 조건이 명세되고, then-부분에는 조건이 참일 경우에 수행될 행동이 명세되고, else-부분에는 조건이 거짓일 경우에 수행될 행동이 명세된다.

다음은 선택 구조에 대한 알고리즘 틀을 보여준다. 이러한 알고리즘 틀은 반드시 따라야 한다는 것은 아님을 유의하라.
여러분이 알기 쉽게 적절히 기술하면 된다. 여기서는 설명을 위해서 선택 구조에 대한 알고리즘을 다음과같은 틀에 맞추어서 기술한다.

 



위의 알고리즘 틀은 다음과 같이 순서도로 표현될 수 있다.

 
                            <그림 4-1: 선택 구조에 대한 순서도>

마름모꼴에는 조건 식이 표현되고, 그 조건의 참, 거짓에 따라서 처리할 행동이 상자로 표현되고, 다음에 아래에 위치한 조그만 원이 실행 흐름을 연결하는 연결자를 표현한다. 즉, 조건의 결과에 따라서 프로그램 실행의 방향이 달라지나, 각 처리 후에는 다시 한 곳으로 연결되어 다음 처리 과정을 계속 표현한다.

이 시점에서 순서도에 사용되는 기호들을 간단히 정리한다.

 
기호
이름
      설명
 
터미널

     알고리즘의 시작과 끝을 정의

 
입력/출력

     입력이나 출력을 표시

 
수행

     계산이나 데이터 처리를 표시

 
흐름선

     순서도에서 기호들을 연결하는데 사용되고,
     실행의 흐름을 표시

 
선택

     흐름의 선택을 표시

 
연결자

     순서도의 다른 부분으로 부터 흐름이 나오고 들어가는 것을 표시

 
루프

     루프의 초기값, 종료값, 증감치를 표시

 
정의된 처리과정

     미리 정의되어 있는 루틴을 호출할 때 사용

입력/출력, 수행, 흐름선에 대해서는 1주차 강의 2장에서 이미 다루었고, 선택과 연결자에 관해서는 위에서 다루었다. 루프는 반복문을 다룰 때 설명하고, 정의된 처리과정에 관해서는 필요할 때 설명하겠다.

순서도는 알고리즘과 동일하게 문제의 해결 과정을 단계별로 기술하는데 사용된다. 그러나 알고리즘은 텍스트 형태로 표현되는 것에 반해서, 순서도는 도형으로 표현되어 이해하기가 더 쉽다. 본 강좌에서는 문제의 해결과정을 기술하는데 알고리즘과 순서도를 적절히 혼용하여 사용하고 있다.


top으로... 다음페이지로.. home으로.. top으로... 다음페이지로.. home으로..

top으로... 다음페이지로.. home으로..

 

top으로... 다음페이지로.. home으로..