수학이나 명제에서의 증명 못지 않게
엄밀한 정확성이 요구되는 컴퓨터 프로그램을 입증하는 것 또한 매우 중요하다.
정확한 프로그램이 되기 위해서는 구문 오류(syntax error)를 포함하지 않아야 하고,
예상치 못하게 끝나서도 안되며, 주어진 입력에 대해 정확한 결과를 도출해내야만 한다.
이를 위하여 프로그램의 정확성에 대한 입증이 필요하다.
프로그램의 입증은 제어구조(control structure)에서 필요한데 다음과 같은 4가지의 문장 구조를 입증한다.
- 순서문(Sequential statements)
- 조건문(Conditional statements)
- 반복문(Repeated statements)
- 무조건적 이동문(Unconditional transfer statements)
1부터 n까지의 정수값을 합하는 C언어 프로그램의 정확성을 입증해보자.
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main()
{
int i, n, sum = 0;
scanf("%d", &n);
for (i = 1; i <= n; i++) {
sum += i;
printf("%d, %d\n", i, sum);
}
return 0;
}
sum = 1
sum = 1 + 2
sum = 1 + 2 + 3
sum = 1 + 2 + 3 + 4
sum = 1 + 2 + 3 + 4 + ... + (n - 1) + n
따라서 수학적 귀납법의 방식과 같이 1부터 n까지의 합을 정확하게 구하는 것이 입증된다.
'했던것들 > 이산수학' 카테고리의 다른 글
관계의 표현(diagram, graph, matrix) (0) | 2022.05.26 |
---|---|
관계 (Relation) (0) | 2022.05.26 |
여러가지 증명법 (0) | 2022.05.25 |
연역법(deduction)과 귀납법(induction) (0) | 2022.05.25 |
집합(set) (0) | 2022.05.24 |