맨위로

C PROGRAMMING - 기초2012. 2. 13. 20:56

안녕하세요 ? 이번 강의에서는 C언어 변수와 수식표현에 대해서 알아보도록 하겠습니다. 이번강의는 소스코드를 분석 함으로써 변수와 수식표현에 대해서 알아보도록 하겠습니다. 먼저 강의를 시작하기 전에 이블로그에 와주신 모든 분들께 감사의 말씀드립니다. 이제 본격적으로 C 언어에 대해서 자세하게 알아봅시다.


변수와 수식표현


이번 강의에서는 소스코드를 분석함으로써 변수와 수식표현에 대해서 알아보기로 했습니다. 먼저 오늘 분석해볼 소스코드는 다음과 같습니다. 이소스는 화씨 온도를 섭씨 온도로 바꾸어 주는 프로그램입니다.

#include <stdio.h>

/* print Fahrenheit- Celsius table
    for fahr = 0, 20, ... , 300 */
main()
{
int fahr, celsius;
int lower, upper, step;

lower =0;
upper = 300;
step = 20;

fahr = lower;
while (fahr <=upper) {
celsius = 5 * (fahr - 32) / 9;
printf("%d\t%d\n", fahr, celsius);
fahr = fahr + step;
}
}


위의 소스코드를 실행시키면 아래와 같은 결과가 나오게됩니다.
 


우리는 이프로그램을 통해서 번수,설명문,수식표시,루프,형상화된 출력 등을 배울수 있습니다. 이제 프로그램을 한줄한줄 분석하면서 이 프로그램을 통해 배울수 있는것들을 모두 배워보도록 하겠습니다.


먼저 이프로그램의 둘째 줄과 셋째 줄 코드는

/* print Fahrenheit- Celsius table
for fahr = 0, 20, ... , 300 */
 
지난번 강의에서 알아본 주석입니다. 프로그램에 간단한 설명을 넣을때 사용하며 프로그램에 아무런 영향을 주지 않습니다. 프로그램 중간중간 이런 주석문을 사용하면 프로그램을 알기 쉽게 해줄수 있습니다. 주석문은 한 행 또는 여러 행을 차지 할수도 있고 명령어의 뒤에도 쓸수있습니다.


그다음 코드를 보면 main 함수 속에 들어있는 다음과같은 구문이 쓰여져있습니다. 이 구문은 변수를 선언하는 구문입니다. C 언어에서는 모든 변수가 사용되기전에 선언 되어져야합니다. 위의 프로그램은 다음과 같이 변수가 선언되어있습니다.

int fahr, celsius;
int lower, upper, step;

int 는 변수가 정수형(integer) 이라는것이며 fahr , celsius 등은 변수의 이름입니다. 변수에는 여러가지 행이 존재합니다. int(정수형) 이외에도 실수형변수(float)도 존재하며 부동소수점 형의 변수를 의미합니다. int,float 이외에도 다음과 같이 다양한 변수형이 존재합니다.

char               문자형, 1바이트
short              단정도 정수형
long               배정도 정수형
double           배정도 부동소수점형

이런 변수형의 자세한 내용은 나중에 알아보도록하고 프로그램을 계속해서 살펴도록하겠다.

lower =0;
upper = 300;
step = 20;
fahr = lower;


이 프로그램의 실제 계산은 선언한 변수값들을 지정하는 일부터 시작한다. 각문장뒤에는 ;(세미콜론)으로 끝나게 됩니다.

이프로그램은 반복적인 동일한 계산을 함으로써 그결과를 출력하는것이 이프로그램의 중요한 부분이다. 반복적이고 동일한 계산을 할때 사용되어지는 구문이 바로 while 문이다. while 문의 형태는 다음과 같다.

while( 조건 ) {
조건이 만족될시 수행될 문장
}


온도변환 프로그램에서 사용된 while 문은 fahr 이 upper 보다 작거나 같으면 celsius = 5 * (fahr - 32) / 9; 이 구문이 수행되게 됩니다. while 문은 위의 코드 같이 실행문이 중괄호에 싸여져있을수도 있지만 다음과 같은 형태도 될수 있다.

while (i < k)
i = 3 * i

우리가 지금까지 알아보고 있는 프로그램의 주요기능은 온도를 변환해주는것이다. 온도를 변환해주는것을 대부분 while 문에 루프에서 행해진다. 온도변환 식은 다음과 같다.

celsius = 5 * (fahr - 32) / 9;

이 식은 언뜻 보면 다음과 같이 바꾸어도 될것같다.


celsius = (5/9) * (fahr - 32);

하지만 위의식과 아래의 식은 같은 결과를 보여주지 않는다. C언어는 정수계산의 결과는 정수가 된다. 5/9 는 정수/정수 이기 때문에 정수 값을 같게된다. 그결과 0이라는 의도치 않은 결과를 보여주게된다.계속됩니다 ....








'C PROGRAMMING - 기초' 카테고리의 다른 글

C언어 - 상수정의  (0) 2012.02.18
C언어 - For 문  (6) 2012.02.16
C언어 - 변수와 수식표현②  (0) 2012.02.14
C언어 - 변수와 수식표현①  (17) 2012.02.13
C언어 - Hello,World  (7) 2012.02.05
C언어 - 시작  (43) 2012.02.04

Posted by STIH

댓글을 달아 주세요