Computer >> 컴퓨터 >  >> 프로그래밍 >> C 프로그래밍

C 언어의 알고리즘과 순서도(플로우차트) 완벽 가이드

알고리즘(algorithm)이란 문제를 해결하는 데 도움이 되는 단계별 절차를 의미합니다. 만약 이 절차를 영어 문장 형태로 작성한다면, 이를 슈도코드(PSEUDO CODE)라고 부릅니다.

알고리즘이 갖추어야 할 5가지 속성

하나의 알고리즘이 되기 위해서는 반드시 다음 다섯 가지 속성을 충족해야 합니다.

  • 입력(Input) – 외부로부터 하나 이상의 값을 받아들일 수 있어야 합니다.
  • 출력(Output) – 최소한 하나 이상의 결과를 산출해야 합니다.
  • 유한성(Finiteness) – 유한한 단계 안에서 반드시 종료되어야 합니다.
  • 명확성(Definiteness) – 각 단계는 모호함 없이 명확하게 정의되어야 합니다.
  • 효과성(Effectiveness) – 각 단계는 실제로 수행 가능하고 단순해야 합니다.

알고리즘 예시

세 개의 숫자 평균을 구하는 알고리즘은 다음과 같습니다.

  • 시작(Start)
  • 세 숫자 a, b, c를 입력받는다
  • 합계를 계산한다: sum = a + b + c
  • 평균을 계산한다: average = sum / 3
  • 평균값을 출력한다
  • 종료(Stop)

순서도(FLOW CHART)란?

알고리즘을 도식화하여 시각적으로 표현한 것을 순서도(flow chart)라고 합니다. 순서도를 사용하면 복잡한 논리 흐름도 한눈에 파악할 수 있어 프로그램 설계와 디버깅에 큰 도움이 됩니다.

순서도에서 사용하는 주요 기호

이름기호 모양용도
단자(Terminal)C 언어의 알고리즘과 순서도(플로우차트) 완벽 가이드 타원(Oval)시작(start/begin) 또는 종료(stop/end)를 나타냅니다.
입출력(Input/Output)
C 언어의 알고리즘과 순서도(플로우차트) 완벽 가이드
평행사변형(Parallelogram)
데이터의 입력과 출력을 나타냅니다.
처리(Process)C 언어의 알고리즘과 순서도(플로우차트) 완벽 가이드 직사각형(Rectangle)수행해야 할 모든 처리 과정(연산)을 표현합니다.
판단 상자(Decision Box)C 언어의 알고리즘과 순서도(플로우차트) 완벽 가이드 마름모(Diamond)조건을 검사하여 여러 대안 경로 중 어느 것을 따를지 결정합니다.
커넥터(Connector)C 언어의 알고리즘과 순서도(플로우차트) 완벽 가이드 원(Circle)순서도의 서로 다른 부분을 연결할 때 사용합니다.
흐름선(Flow)C 언어의 알고리즘과 순서도(플로우차트) 완벽 가이드 화살표(Arrows)두 기호를 연결하며 실행 흐름의 방향을 나타냅니다.
미리 정의된 처리(Predefined Process)C 언어의 알고리즘과 순서도(플로우차트) 완벽 가이드 이중 선 사각형(Double Sided Rectangle)다른 곳에 정의된 모듈(module) 또는 서브루틴(subroutine)을 나타냅니다.
페이지 커넥터(Page Connector)C 언어의 알고리즘과 순서도(플로우차트) 완벽 가이드 오각형(Pentagon)서로 다른 두 페이지에 걸친 순서도를 연결할 때 사용합니다.
for 루프 기호(For Loop Symbol)C 언어의 알고리즘과 순서도(플로우차트) 완벽 가이드 육각형(Hexagon)루프 변수의 초기화, 조건 검사, 증가 과정을 한 번에 표시합니다.
문서(Document)C 언어의 알고리즘과 순서도(플로우차트) 완벽 가이드 인쇄물(Printout)인쇄 준비가 된 데이터를 나타냅니다.

순서도 예시

아래는 앞서 살펴본 '세 개의 숫자 평균 구하기' 알고리즘을 순서도로 표현한 것입니다.

C 언어의 알고리즘과 순서도(플로우차트) 완벽 가이드

이처럼 알고리즘을 먼저 슈도코드나 글로 정리한 뒤 순서도로 시각화하면, 실제 C 언어 코드를 작성하기 전에 프로그램의 전체적인 논리 구조를 명확히 점검할 수 있습니다.