프로그래밍[Univ]/C언어

[C언어 소스] [while function] 온도 변환기 // C언어에 대한 이모저모 소개

Cloud Travel 2008. 3. 22. 12:16

#include <stdio.h>
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("%3d %6d\n", fahr, celsius);
        fahr = fahr + step;
    }
}
---------------------------------------------------------------------------------
이 프로그램 소스는 섭씨를 입력하면 화씨로 바꿔주는 프로그램이아니라

프로그램에 섭씨의 범위를 정해주어 그 범위의 값들을 화씨로 바꿔주는 프로그램입니다.
이 소스를 가지고 간단히 C언어의 여러가지에 대하여 공부해봐요~☆

---------------------------------------------------------------------------------

1. #include <stdio.h> 대하여 알아봅시다.
#include는 프로그램을 시작하기전에 특정 파일 또는 문서를 추가 한다는 명령어다.
#include 뒤에는 < > 와 " " 를 사용하여 파일이나 문서를 지정할수 있습니다.
 < >과 " "의 차이점
 1) < >은 이미 리눅스안에 저장되있는 파일이나 폴더를 지정 하는 것이다.
 2) "   "은 절대 경로를 이용하여 자신이 만든 파일이나 문서를 지정하는 것이다.
 
☆ " " 자체가 절대경로를 나타내는 것임을 인지하자.
 따라서 #include <stdio.h>의 의미는 stdio.h라는 파일을 포함하고
 시작한다는 것을 의미한다.
 그럼 다음 단계로 넘어가자.

2. main ( ) 대하여 알아봅시다.
main은 함수의 이름을 의미한다. 함수의 이름은 원하는 대로 줄수 있지만
주요 프로그램의 함수 이름은 main으로 해주어야한다.
main 뒤에 붙은 괄호 "( )" 는 함수들 사이를 데이터가 오고갈때 쓰는 매게변수를 의미한다.
매개변수가 없을 경우에도 반드시 괄호는 써주어야한다.
따라서 main ( )의 의미는 함수이름이 main이며 매개변수는 없다는 것을 의미한다.

3. { }에 대하여 알아보자.
{}는 문장들을 묶어주는 역활을 한다.
main바로 밑의 {은 main 함수의 시작을 의미하며 }을 만나는 점까지를 하나의 덩어리로 인식한다. 중간에 while 뒤에 {은 while이라는 함수의 시작을 의미하며, 이것 또한 }을 만나는 점을 하나의 덩어리로 인식한다.
괄호에 대한 인식을 위해 한 가지 예를 들겠다.
Ex) { { { ( ( { } ) ) } } } => 색갈별로 괄호의 짝이 형성된다.

4. int fahr, celsius; 에 대하여 알아보자.
일단 int 에 대하여 알아보자.
 1) int는 프로그램의 변수형태가 정수로 사용됨을 의미한다.
     int 이 외의 변수형태를 나타내주는 것으로는
     float, char, short, long, double가 있다.
   
   ☆의미
     int : 정수   float : 실수   char : 문자형, 1바이트   short : 단정도 정수형  
     long : 배정도 정수형   double : 배정도 부동소수점형
 2) fahr, celsius는 변수의 이름
을 나타내준다.
 3) ";" 세미콜론은 자신이 쓴 명령어가 끝났음을 나타내준다.
   
뒤에 더 설명을 안해주므로 이 점을 인지해주기 바란다.
즉, int fahr, celsius;는 정수형태로 변수를 지정하고
변수의 이름은 fahr과 celsius 라는 것을 나타내준다.
위의 정리를 이용하여  int lower, upper, step;을 해석하면 정수형태로 변수를 지정,
변수의 이름을 lower과 upper과 step로 지정했다는 것을 의미한다.


5. lower = 0; 에 대하여 알아보자.
위에서 배운 int에 의하여 fahr, celsius, lower, upper, step을 정의하였다.
그에 따라서 생긴 변수들의 초기값을 지정해주는 것이다.
따라서, lower = 0; upper = 300; step = 30;
각각 의 초기값이 0, 300, 30임을 나타내준다.

이 변수를 바꺼준다면 위의 결과 이 외의 다른 결과를 얻을 수 있을 것이다.

6. fahr = lower;
숫자를 문자로 정의하여 함수식을 세울 때 편리함을 주기 위한 것이다.

7. while (fahr <= upper) 의 의미를 파해치자.
while은 또 다른 함수의 이름이다. while은 ( ) 안의 조건을 만족하기 전까지
while함수내에 있는 실행명령으를 반복하라는 의미
를 가지고있다.
while (fahr <= upper){
        celsius = 5 * ( fahr - 32 ) / 9;
        printf("%3d %6d\n", fahr, celsius);
        fahr = fahr + step;

       }
의 의미(while 함수 입장에서 봤을 때)는
fahr <= upper을 만족하기 전까지는
연두색 글씨로 된 명령어들을 수행하라는 의미를 나타낸다.

8. celsius = 5 * ( fahr - 32 ) / 9; 와   fahr = fahr + step;
이 것은 사칙연산을 실행하라는 의미를 나타낸다.
C언어 제 4 강 Flow-chart 그리기의 맨 마지막에 있는 참고에 나타낸 거와 같이
왼쪽이 결과 값, 오른쪽이 실행 명령이 오게된다.
명령어는 위에서부터 아래방향으로 실행하므로 그 점을 주의하자.

9. printf("%3d %6d\n", fahr, celsius);
마지막이다. 하지만 설명할 것이 많은 부분이다. 집중을 입지말자!^^
printf("내용")은 내용을 나타내라는 명령어이다.
이 것을 사용할때는 여러가지 주의점과 여러가지 인수표현이 사용된다.
 1) 주의점
   일단 가장중요한 " " 부분입니다. 한글로 " " 을 사용하면 ASCll 코드가 인식되지
  않아서 컴파일시 오류를 토해냅니다. " "을 쓰실 때는 항상 영타로 바꿔놓고
  사용
하세요. 그리고 printf("내용") 빨간색으로 표시 된 부분을 띄어쓰는 것은
   않좋은 버릇이래요.
 2) 인수표현
   %d  : decimal, 10진수를 나타낸다.
   %
c  : character, 문자 하나하나를 나타낸다.
   %s  : String, 문자열을 나타낸다.
   %ld : Long decimal, 긴 수를 나타낸다.

   %f  : float, 소수를 나타낸다.                                 간단한 비교를 알고싶다면
   %lf : long float, 긴 소수를 나타낸다.                      여기를 클릭
하여 3번목록을 보세요.
  각각의 %와 알파벳 사이에 숫자는 그 숫자 자리만큼 표시하라는 의미를 가지고있다.
  컴파일러 마다 인식하는 것이 다리다고합니다.
사용법 :
printf("1번째 인수표현, 2번째 인수표현, ... , n번째 인수표현", 변수1,변수2, ... , 변수n)
인수표현의 개수에 맞추어 변수의 개수를 맞춰준다.

 3) 줄 표현
    \n : new line, 새로운 줄에 출력하라는 명령어.
    \t  : tab, 출력 할때 tab키를 사용하여 띄어쓰기를 한 뒤 출력하라는 명령어.
즉, printf("%3d %6d\n", fahr, celsius);는  3자리로 fahr값을 나타내고, 6자리로celsius 값을 나타내라는 의미를 가지고 있다.
---------------------------------------------------------------------

사용자 삽입 이미지

결과 값이다~~~~~

여기 까지 따라와주신 분틀 수고 많이 하셨습니다. 다음 소스에서 만나요~

전 슝~