의사 코드(Pseudocode)란?

특정 프로그래밍 언어에 의존하지 않고 알고리즘의 절차를 나타내기 위해 정한 작성법. 일본의 기본정보기술자시험 과목 B에서는 형의 선언, ←에 의한 대입, if·while·for 등의 제어 구조, 1부터 시작하는 배열의 인덱스 등을 정한 의사 코드로 프로그램을 제시한다.

일본어 명칭: 擬似言語

의사 코드(Pseudocode)은(는) 프로그래밍의 기초(의사 코드 트레이스) 등 1개 분야의 연습 문제 1개에 나와요.

분야: 프로그래밍의 기초(의사 코드 트레이스)

기본정보기술자시험 과목 B에서의 사용

2023년 4월부터의 기본정보기술자시험에서는 프로그램을 읽는 문제(과목 B)가 의사 코드로 통일되어, 그때까지 고를 수 있었던 C, Java, Python, 어셈블러 언어, 스프레드시트 문제는 없어졌습니다. 예를 들어 'integer: x ← 0'으로 변수를 선언하고 초기값을 대입하며, 'for (i from 1 to n step 1) … endfor'로 반복합니다. 배열은 {1, 2, 3}처럼 쓰고, 인덱스는 1부터 시작합니다. 특정 언어의 세세한 문법을 몰라도 알고리즘의 절차를 읽어 낼 수 있는지를 묻는 형식입니다.

읽을 때의 주의점

많은 프로그래밍 언어와 마찬가지로 ×·÷·mod는 +·−보다 먼저, 비교는 and보다 먼저, and는 or보다 먼저 계산합니다. ÷ 결과의 소수점 이하를 어떻게 다루는지나 and·or에서 오른쪽을 평가하는지 등 결과에 영향을 주는 약속은 문제 문장에 쓰여 있으므로 반드시 확인합니다. 배열의 인덱스가 1부터 시작한다는 점도, 0부터 시작하는 언어에 익숙한 사람이 틀리기 쉬운 부분입니다.

실제 프로그래밍 언어와의 대응

의사 코드의 'x ← y'는 C 언어나 Python의 'x = y'에, 비교의 '='는 '=='에, '≠'는 '!='에 해당합니다. 'for (i from 1 to n step 1)'는 C 언어의 'for (i = 1; i <= n; i++)'에 상당합니다. 의사 코드로 생각한 절차를 실제 언어로 바꿔 쓸 때는 배열 인덱스의 시작과 정수 나눗셈 결과의 차이에 주의합니다.

자주 묻는 질문

의사 코드 프로그램을 실행할 수 있나요?

의사 코드는 사람이 읽기 위한 작성법이므로, 그 자체를 실행하는 표준 처리계는 없습니다. 학습용으로 의사 코드를 해석하는 도구가 만들어지기도 하지만, 기본은 종이 위에서 변수의 값을 따라가는 트레이스로 동작을 확인합니다.

순서도(플로차트)와의 차이는 무엇인가요?

순서도는 처리의 흐름을 기호와 화살표로 나타내고, 의사 코드는 문장에 가까운 형태로 나타냅니다. 의사 코드는 세세한 절차까지 쓰기 쉽고, 실제 프로그램으로 바꿔 쓰기 쉽다는 것이 장점입니다.

해설 속 의사 코드(Pseudocode)

의사 코드(Pseudocode)이(가) 나오는 문제 (1)

  1. 다음 프로그램에서 x와 y의 값을 교환할 생각으로 대입문 2개를 작성했다. 실행한 후의 x와 y의 값의 조합은?

관련 용어

변수(Variable) 객체 지향(Object-oriented Programming) 나머지 연산(Modulo Operation) 단락 평가(Short-circuit Evaluation) 반올림 오차(Rounding Error) 반환값(Return Value) 배열(Array) 비트 연산(Bitwise Operation) 오프 바이 원 오류(Off-by-one Error) 인수(Argument)

용어집으로 돌아가기