#컴퓨터 공학부 3학년 과정인 알고리즘을 수강하면서, 교수님이 알고리즘을 구현할 때 언어로 파이썬을 사용하시는데,
파이썬으로 코드를 구현하기 전에 ADL을 이용하여 알고리즘을 기술한다.
그래서 ADL에 대해 정리해보고자 한다.
ADL (Algorithm Description Language)
- 알고리즘 기술을 위해 정의한 언어
- 사람이 이해하기 쉽고, 프로그래밍 언어로의 변환이 용이
- 의사 코드 (pseudo-code) : ADL과 약간의 자연어로 기술한 것
- ADL 데이터 : 숫자, 부울(Boolean) 값, 문자
- ADL의 명령문 :
- 종류 : 지정문, 조건문, 반복문, 함수문, 입력문, 출력문
- 명령문 끝에는 세미콜론(;)을 사용
지정문
- 형식 : 변수 ← 식;
- 식 (expression)
- 산술식
- 부울식
– 결과 : 참(true) 또는 거짓 (false)
– 표현- 논리 연산자(and, or, not)
- 관계 연산자(<, ≤, =, ≠, ≥, >)
- 문자식
- 제어 구조 : 순차적
조건문
- 제어 구조 : 선택적
- 종류 : if문과 case문
if문
if (cond) then S1
else S2
case문
case {
cond1 : S1
cond2 : S2
. . .
condn : Sn
else : Sn+1
}
반복문
- 제어 구조 : 일정한 명령문 그룹을 반복해서 수행하는 루프(loop) 형태
- 종류 : while문, for문, do-while문
while문
- 형식
while cond do
S - 무한 루프
while true do
S
for문
- 형식
for (initialization; cond; increment) do
S - 동등한 while문
initialization
while cond do {
S
increment;
} - 무한 루프
for ( ; ; ) do
S
(cond의 기정값이 true이므로)
do-while문
- 형식
do
S
while cond; - S가 최소한 한 번은 실행됨
루프 명령문
- goto 명령문 : 루프에서 바로 빠져나갈 때 사용
- exit문 : 자신을 둘러싸고 있는 가장 가까운 루프 밖의 명령문으로 제어를 이동시킴
함수문
- 형식
function-name(parameter_list)
S
end - 호출 함수로의 복귀
return expr;
여기서 expr은 함수의 실행 결과 - 함수 호출
function-name(argument-list)
인자 리스트(argument-list)는 타입과 수에 있어서 함수의 형식 매개 변수와 대응되어야 함 - 인자와 매개변수와의 연관
값 호출 (call by value) 규칙
각 인자의 실제 값이 호출된 함수로 전달
인자의 값이 주소(참조)가 되면 매개 변수에 주소 값이 전달되어 값은 데이터 지시
입력 함수
read (argument_list);
출력 함수
print (argument_list);
인자
변수나 인용 부호가 있는 문자열
기타 명령문
- 주석문 : //는 그 행 끝까지, /과 /은 주석문의 시작과 끝 표시
- 다차원 배열 : a[n1, n2, … , nn]
ADL 기술 규칙
- 함수의 입·출력 변수를 명확히 명세
- 변수의 의미를 알 수 있게 정의
- 알고리즘의 제어 흐름은 되도록 순차적
- 시각적 구분을 위해 들여쓰기 이용
- 코멘트는 짧으면서 의미는 명확히
- 함수를 적절히 사용
'전공 수업 CS > algorithms' 카테고리의 다른 글
[알고리즘] 삽입 정렬 알고리즘 (1) | 2022.10.11 |
---|---|
[알고리즘] 버블정렬 (0) | 2022.10.11 |
[알고리즘] 선택 정렬 알고리즘 (0) | 2022.10.11 |
[알고리즘] 정렬 알고리즘 정리 | 버블 정렬, 삽입 정렬, 선택 정렬, 합병 정렬, 퀵 정렬 (1) | 2022.09.26 |
[알고리즘] 알고리즘의 성능 평가 | 점근식 표기법 | 순환 (0) | 2022.09.26 |