![]() |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
컴퓨터를 사용하여 문제를 해결하기 위해서는 이를 위한 프로그램을 작성하는 것이 필요하다. 따라서 컴퓨터를 사용한 문제 해결은 프로그램을 어떻게 작성할 것인가의 문제로 전환된다. 왜냐하면, 문제를 해결하는데 필요한 모든 세부 사항을 컴퓨터에게 알려주어야 하며, 이러한 세부사항들의 리스트가 곧 프로그램이기 때문이다. 여기서는 먼저 문제를 해결하는(프로그램을 개발하는) 소프트웨어 공학적인 한 방법을 설명한다. 이 방법은 모두 5단계로 구성한다
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
![]() |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
여기서는 2.1절에서 다룬 문제 해결 방법을 적용하여 문제를 해결하는 과정을 설명한다. 아주 간단한 문제를 생각해보자
여기서는 두 개의 수가 정수이라고 가정한다. 그리고 문제를 더욱 간단히 하기 위해서 두 개의 수가 사용자로부터 입력되지 않는다고 가정한다. 즉, 두 개의 수는 특정 초기 값을 갖는다.
단계 1에서 사용할 이름(변수)들을 먼저 선언하고 있는데 이것은 보통 일반적이다. 변수 선언에 관해서는2주차 강의3장에서 자세히 설명한다. 위의 알고리즘을 다음과 같이 순서도로 나타낼 수 있다.
순서도 1-2를 알고리즘 1-2와 비교해 보라. 알고리즘 1-2의 단계1, 2가 순서도 1-2에서 차례대로 처리 노드로 표현되고, 단계 3이 출력 노드로 표현되는 것을 알 수 있다.
위의 프로그램은 간단한 C 프로그램을 보여준다. 이 프로그램은 전체 7줄로 구성되어 있는데, ①,
②, ③, ⑦은 대부분의 C 프로그램에 포함되는 항목이다.
따라서 C 프로그램의 가장 기본적인 구조는 다음과 같이 나타낼 수 있다.
만약, 프로그램이 표준 입력이나 출력을 포함하지 않는다면, 첫 번째 문장 #include <stdio.h>를 삭제할 수 있다. 알고리즘 1-2(순서도 1-2)의 세 단계가 각각 main 함수의 본체내 ④, ⑤, ⑥의 문장으로 기술되었음을 알 수 있다. 즉, 알고리즘의 각 단계가 C의 한 문장으로 기술되었다.
다음은 main() 함수의 본체를 구성하는 세 문장에 대해서 간단히 설명한다. ④는 알고리즘 1-2의 첫 번째 단계를 기술하는 것으로서, a, b, r의 세 개 변수를 선언하고, a, b의 변수에는 초기 값을 할당한다. 변수는 값을 지칭할 이름을 나타내는데, 실제로는 값이 저장되는 곳을 나타낸다. 변수 앞의 int는 이 변수에 저장될 수 있는 값의 타입(type)이 정수(integer)라는 것을 나타낸다. 즉, a, b, r은 정수 타입 변수로 선언되었으며, 이 변수에는 반드시 정수 값만이 저장되어야 한다. 다음은 ④ 문장의 실행 결과이다.
⑤는 알고리즘의 두 번째 단계를 기술하는 것으로서, a, b의 두 수 값을 더해서 그 결과를 r에 저장한다는 것을 나타낸다. 여기서 '='는 배정 연산자로서 오른쪽에 위치한 산술 식의 값을 계산하여 그 결과 값을 왼쪽에 위치한 변수에 저장한다. 다음은 ⑤ 문장의 실행 결과이다. ⑥은 알고리즘의 세 번째 단계를 기술하는 것으로서, r의 값을 다음과 같이 출력한다:
printf 문에서 큰따옴표 안의 %d를 형식 코드(format code)라 한다. 큰따옴표 안에 형식 코드가 다음과 같이 여러 개 올 수 있다.
형식 코드들은 큰따옴표 다음에 오는 변수들의 값으로 순차적으로 대체된다.
다음은 위 printf()문의 실행 결과를 보여준다.
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
![]() |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
![]() |