순서도(Flowchart 1)
출처 : http://contents.edu-i.org/gongmo/2000/785/deep_learn/basic/flow_mean.htm
순서도의 의의와 역할
● 순서도의 의의
컴퓨터에 의해 처리하고자 하는 문제를 분석하여 그 처리 순서를 단계화시켜 상호간의 관계를 일정한 기호 를 사용하여 일목 요연하게나타낸 그림을 순서도라 한다.
순 서도는 사무 간소화나 작업 합리화를 위해 우리 사회에 많이 사용되어 오고 있지만 특히 컴퓨터에 의해 어떤 업무를 처리하기 위해서는 이 도표가 없어서는 안될 만큼 중요시 되고 있다. 그것은 프로그램을 작성하는데 있어서 문제 해결을 위한 논리적인 순서만 완전히 수립되면 컴퓨터 언어를 이용하여 코오딩하는 등의 나머지 작업은 대수롭지 않은 것이기 때문이다. 또한 프로그램 의 형태는 컴퓨터 기종이나 컴퓨터 언어에 따라 다르지만 이것을 유도하는 논리적인 방식에는 차이가 없어 완성된 순서도는 모든 컴퓨터에 적용될 수 있기 때문에 순서도가 업무를 처리하는데 있어서 가장 중요한 자료가 되기도 한다. 이처럼 컴퓨터에 있 어서 순서도는 프로그램을 작성하는 경우 무엇보다도 처리의 순서나 흐름이 중요하므로 이 순서도를 얼마나 잘 작성하느냐 하는 것은 곧 얼마나 우수한 프로그램이 되느냐 하는 문제 해결의 열쇠가 되는 것이다.
● 일반적인 순서도의 역할
⑴ 프로그램 코오딩의 기초가 된다.
전산처리되는 업무는 대개가 복잡하여 하루 이틀에 프로그래밍이 끝나지는 않는다. 이렇게 복잡한 업무를 순서도를 작성하지 않 고 직접 컴퓨터 언어를 이용하여 코오딩한다는 것은 무리가 따르며, 설사 코오딩이 이루어진다 해도 정확성이 없고 최대한의 능력을 발휘할 수도 없다. 이것은 초안없이 원고를 작성하는 것과 같은 불안이 따르기 때문에 반드시 순서도에 의한 코오딩이 이루 어져야 한다.
⑵ 타인에게 전달하기 용이하다.
이미 개발된 업무를 다른 사람에게 인계할 때나 매우 중요한 업무에서 경영자 등의 여러 인원에게 업무의 내용을 이해시킬 경우 도표로된 순서도를 그 자료로 사용함이 다른 자료보다 이해도가 빠르고 문제 처리의 과정을 한눈에 파악할 수 있다.
⑶ 디버깅(debugging)이 용이하다.
디버깅이란 프로그램이 완전한 것이 될 때까지 프로그램상에 있는 에러를 수정하는 작업으로 프로그램 작성에 있어서 가장 중요 한 단계이기도 하다. 시급히 요구되는 결과표를 눈앞에 두고 에러 때문에 처리 못하는 처지를 상상만 해도 알 수 있을 것이다. 순서도는 논리적인 체계를 순서에 의해 도표로 나타낸 것이기에 언어의 규칙에 따라 코오딩된 프로그램보다 정확성이 높고, 또 이해하기 빠르다는 것은 두말할 필요가 없다. 따라서 테스트 런(test run) 결과 어레가 발생할 때는 순서도를 검토 확인해서 수 정하는 것이 업무 처리에 효율적이다.
⑷ 프로그램 보관시 자료가 된다.
이미 개발된 시스템을 잘 보존하기 위해서는 프로그램의 보존이 필수적으로 따라야 하는데, 이때 카아드 덱(card deck)이나 테 이프화된 프로그램만을 보관하는 것은 원본이 없는 서류를 보관하는 것과 흡사하다. 그러므로 언어나 기종에 구애받지 않는 순서 도를 보관하여 어떠한 경우에도 완전하도록 대처해야 한다.
이상의 순서도의 역할을 미루어 볼 때 순서도를 작성한다는 것은 프로그래밍에 있어서 가장 중요한 위치를 차지한다고 볼 수 있 다.
순서도의 종류
컴퓨터 처리에 있어서 사용되는 순서도는 일반적으로 표시 정도의 세분도에 의하여 구분되며, 크게 시스템 플로우챠트(system flowchart)와 프로그램 플로우챠트(program flowchart) 두 종류로 나누어진다.
시스템 플로우챠트는 자료의 흐름을 중심으로하여 시스템 전체의 작업 내용을 총괄적으로 도시한 것을 말하며 주로 시스템 분석 가가 시스템 설계나 분석을 할 때에 작성된다.
프로그램 플로우챠트는 시스템 전체의 작업, 즉 시스템 플로우챠트 중에서 컴퓨터 처리를 하는 부분을 중심으로 자료 처리에 필 요한 모든 조작의 순서를 도시한 것으로서 주로 프로그래머가 작성하게 된다.
순서도의 기호와 그 사용 예
1) 순서도의 기호
순 서도는 원래 프로그램 작성을 위한 안내자 역할을 하기 때문에 작성자 자신만이 이해하고 사용하는 자신의 전용물로만 생각해서는 안된다. 그러므로 자신의 작업 능률을 높이는 목적 이외에 작업에 관계되는 모든 사람이 이해할 수 있고 누구나 식별할 수 있는 일정한 기호를 사용하는 것이 좋다.
여기서는 국제 표준화 기구(International Organization for Standardization)에서 추천한 기호를 소개한다.
① 단말(terminal)
시작, 끝, 중단 등과 같은 것을 나타내는 기호이다.
② 천공 카아드(punched card)
입출력 매개체가 천공된 카아드임을 나타내는 기호이다.
③ 입출력(input/output)
일반적인 입력과 출력 처리를 나타내는 기호이다.
④ 서류(document)
각종 원시 데이터가 기록된 서류나 종이 매체에 출력되는 결과 및 문서화된 각종 서류를 나타내는 기호이다.
⑤ 종이 테이프(paper tape)
종이로 된 천공 테이프 매체에 의한 입력과 출력을 나타내는 기호이다.
⑥자기 테이프(magnetic tape)
자기 테이프 매체에 의한 입력과 출력을 나태는 기호이다.
⑦ 자기 디스크(magnetic disk)
자기 디스크 매체에 의한 입력과 출력을 나태는 기호이다.
⑧ 자기 드럼(magnetic drum)
자기 드럼 매체에 의한 입력과 출력을 나태는 기호이다.
⑨ 디스켓(diskette)
지정된 작동, 각종 연산, 값이나 기억 장소의 변화, 데이터의 이동 등 모든 처리를 나타내는 기호이다.
⑩ 처리(process)
지정된 작동, 각종 연산, 값이나 기억 장소의 변화, 데이터의 이동 등 모든 처리를 나타내는 기호이다.
⑪ 표시(display)
결과나 필요한 메시지를 온라인으로 연결된 영상표시 장치, 콘솔 등에 출력하는 것을 나타내는 기호이다.
⑫ 준비(preparation)
기억 장소의 할당, 초기값 설정 등의 준비 작업을 나타내는 기호이다.
⑬ 비교 판단(decision)
주어진 조건과 비교하여 해당되는 조건을 찾아서 흐름이 결정되게 할 때 사용되는 기호이다.
⑭ 연결(connector)
주어진 조건과 비교하여 해당되는 조건을 찾아서 흐름이 결정되게 할 때 사용되는 기호이다.
⑮ 흐름 방향(flow direction)
처리의 흐름을 표시하는데 사용되는 기호이며, 위에서 아래로 혹은 왼족에서 오른족으로가 아닌 경우 화살표가 필요하다.
●주석(annotation)
기능을 좀더 알기 쉽게 부가적인 설명이 필요할 때 사용되는 기호이다.
●페이지 연결(page connector)
순서도가 다음 페이지로 연결되어 사용되고 있다는 것을 나타내는 기호이다.
●정의된 처리(predetermined process)
이미 다른 순서도에서 정의되고 명령된 처리 순서나 방법을 다시 처리할 필요가 없을 때 사용하는 기호이다.
●수작업(manual operation)
사람의 손으로 조작되는 각종 데이터 처리 작업을 나타내는 기호이다.
●보조 작업(auxiliary operation)
중앙 연산 처리 장치의 통제를 직접 받지 않는 장치에서 행해지는 작업을 나타내는 기호이다.
●통신 연결(communication link)
통신을 이용한 정보의 전송 기능을 나타내는 기호이다.
●오프라인 저장(off-line storage)
정보나 자료를 컴퓨터 외부 저장시켜 두는 기능을 나타내는 기호이다.
●병합(merge)
정렬된 두 개 이상의 파일을 하나로 합치는 작업을 나타내는 기호이다.
●추출(extract)
만들어진 파일에서 필요한 부분만을 분리하여 새로운 파일을 만드는 작업을 나타내는 기호이다.
●수작업 입력(manual input)
컴퓨터 내부에서 처리되는 중에 키보드 또는 스위치 등의 수작업 방법에 의해 필요한 정보를 넣어서 입력하는 기능을 나타내는 기호이다.
●온라인 저장(on-line storage)
온라인으로 접근 가능한 각종 보조 기억 장치에 의한 입출력 기능을 나타내는 기호이다.
●분류(sort)
일정한 순서없이 배열된 데이터를 일정한 기준에 따라 순서대로 배열하는 작업을 나타내는 기호이다.
☞ 템플리트(template)자 : 순서도를 작성하는 경우 이들 기호의 규격을 통일하여 쉽게 순서도를 작성할 수 있도록 하기 위해 사용되는 자로서, 여기에는 자주 사용되는 순서도 기호가 새겨져 있다.
2) 자주 쓰이는 순서도 기호의 사용 예
● 단말(terminal) 작업의 시작과 끝을 나타내는 기호이므로 다음과 같은 요령으로 사용된다.
● 준비(preparation) 작업을 하기 위한 준비로 필요한 기억 장소의 확보 및 배열(array) 확보 또는 초기치를 정해주는데 사용된다.
● 입출력(I/O symbol)
● 처리(process) 자료의 이동 또는 연산 내용을 기호 내에 서술한다.
● 비교 판단(decision)
3) 몇가지 알아두면 좋은 사항
● 기억 장소 내용의 교환
기억 장소 A의 내용과 B의 내용을 바꾸려 할 경우 예1)의 경우는 결과적으로 A,B 모두 B의 초기치를 갖게 된다. 그 결과를 보완 한 것이 예2)와 같다.
기억 장소 A의 내용을 1씩 증가시키는 요령
A A+1의 정의는 기억 장소 A의 값과 1을 합하여 얻어진 값을 다시 기억 장소 A에 저장시킴을 의미한다. 즉 A의 값이 기존값에 비해 1 증가된 결과가 된다. 이를 반복 수행하면 A는 1씩 증가하기를 한없이 수행한다. 이를 무한 루우핑(looping)이라 한다. A가 초 기치 0을 갖고 있었다면 A값은 1부터 계속 증가될 것이다. 또한 순서도는 시작과 끝이 반드시 존재해야 하기 때문에 위의 형태는 옳지 않다. A값을 1부터 100까지 변화시키기 위한 기본 형태는 다음과 같이 보완될 수 있다.
위의 순서도는 단지 A값을 변화시켜 본 것에 불과하나 변화되는 A값을 찍기 위해 출력 명령을 다음a, b와 같이 추가했을 때 결 과는 어떤가를 생각해 보라.
순서도 a에서 출력 지시는 단 1회에 국한되나 b의 경우 A값을 출력하는 명령은 조건을 만족할 때까지 반복함을 알 수 있다.
두 가지 작업의 교대 수행
지금 한 번은 작업 a를 다음번에는 작업 b를 하기를 반복하려고 한다. 다음 순서도는 조건을 만족할 때까지 이를 수행할 것이다 .
그러나 이를 수행하기 위한 다음 방식은 오히려 복잡하여도 그 기법을 알고 있으면 응용 범위는 넓힐 수 있다.
위와 같은 방식을 스위칭 방식이라고 한다.
[출처] 순서도 (Flow Chart)|작성자 dusun4
'컴퓨터 > 언어,프로그래밍' 카테고리의 다른 글
C 총정리판 (0) | 2009.03.14 |
---|---|
[C/C++] 자료형의 종류와 범위 (0) | 2009.03.14 |
순서도의 의의와 역할 (0) | 2009.03.14 |
순서도 작성법 (0) | 2009.03.12 |
C언어 자료형 범위 (0) | 2009.03.12 |