구조적 프로그래밍이란?
바로 앞에 썼던 About C 시리즈의 글은 함수였습니다. 함수는 큰 프로그램 하나를 여러 개의 모듈로 분할하여 구현하는 구조적 프로그래밍의 기본입니다.
구조적 프로그래밍 스타일이란 “나누어 정복한다”는 것입니다. 각각의 기능을 함수로 구현하고, 합치는 것이지요. 두 수의 평균을 구하고 출력하는 프로그램을 3번 반복한다고 가정해 봅시다.
#include <stdio.h>
int main()
{
double a = 1.0, b = 4.0, c = 9.0;
double d = 5.0, e = 2.6, f = 12.0;
double average;
average = (a+b)/2;
printf("1.0과 4.0의 평균은, %f\n",average);
average = (c+d)/2;
printf("9.0과 5.0의 평균은, %f\n",average);
average = (e+f)/2;
printf("2.6과 12.0의 평균은, %f\n",average);
return 0;
}
/*
1.0과 4.0의 평균은, 2.500000
9.0과 5.0의 평균은, 7.000000
2.6과 12.0의 평균은, 7.300000
*/
하지만, 우리는 함수를 배웠습니다. 평균을 구하는 avearge라는 함수를 만들어서, 원할 때 호출하는 것으로 대체할 수 있겠습니다. 이렇게 하면, 코드의 유지 보수가 쉬워질 것입니다. 예컨대, 두 수의 평균이 아니라 차를 구해야 하는 부분이라면, 일일이 코드를 뜯어고치는 대신에 평균을 구하는 함수 부분만 고쳐주면 편할 테니까요.
#include <stdio.h>
void average(double x, double y); // 함수를 선언했습니다.
int main()
{
double a = 1.0, b = 4.0, c = 9.0;
double d = 5.0, e = 2.6, f = 12.0;
average(a, b);
average(c, d);
average(e, f);
return 0;
}
void average(double x, double y)
{
printf("%f와 %f의 평균은, %f\n", x, y, (x+y)/2);
}
처럼 해볼 수 있겠습니다. 제가 이해한 구조적 프로그래밍의 개념과 예시입니다.