1-2. 변수와 수식 표현
실습 전 이론
01. 이번 챕터에선 변수와 수식을 통해 화씨 온도를 섭씨 온도로 바꿔 출력하는 프로그램을 만들어본다.
02. 코드를 그대로 복사, 붙여넣지 말자, 결국 같은 코드를 가져다 쓴다해도 직접쓰는게 배울땐 훨씬 좋다. 복붙은 휘발된다.
03. 코드가 이해가 안되면 넘어가지 마라, 번역을 한다고 생각하고 한줄한줄 무슨 과정이 이어지는지 생각하면서 봐야한다.
04. 이번 프로그램을 통해 변수 지정 및 반복문을 배워볼 수 있다.
05. /**/ 를 통해 주석을 사용하여 설명을 넣어놓을 수 있다.
05-1. /* 예시를 들면 이런식으로 주석이 들어간다.*/
06. C에서 모든 변수는 사용되기 전에 선언해 주어야한다.
07. 변수 지정 시 큰따옴표만 사용가능하다. (맙소사)
08. printf() 에 변수를 포함할 경우 무조건적으로 서식 지정자를 사용하여야 한다.
123 이라는 정수 값이 지정된 num 변수를 printf()에서 출력하려면
파이썬처럼 print(num)으로 사용하면 안되고, printf("%d",num) 같은 방식으로 변수 값을 불러와줘야한다.
찾아보니 printf는 메모리에 있는 값만 가져올 뿐 가져오는 항목의 타입을 알 수 없어 서식 지정자를 통해 이를 알려줘야한다고 한다.
*이또한 파이썬에서 온 역체감
실습
#include <stdio.h>
int 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;
}
return 1;
}
파이썬을 쓸 줄 알아서 그런가 아직까지는 쉽다.
위 이론에서 C 언어의 모든 변수는 사용 전 선언을 해야한다고 적어뒀듯
int fahr, celsius;
int lower, upper, step;
lower = 0;
upper = 300;
step = 20;
위와 같이 변수들을 선언한 후 변수에 값을 넣어준다.
쉽게 설명하면
int lower; -> 나는 lower 이라는 변수에 숫자(int)를 지정할꺼다! (정확히 말하자면 int는 정수형이다.)
lower = 300; -> 아 이전에 lower에는 int를 넣는다고 했으니 300은 문자열 300이 아닌 정수 300이겠구나.
라고 설명할 수 있을 것 같다.
while (fahr <=upper){
...
}
는 fahr 값이 upper 보다 작거나 같을 경우 while()내부의 코드가 계속 반복된다.
매 코드가 반복될때마다 fahr 변수에 step 만큼이 추가되어 다시 반복문이 실행되다가 upper 보가 커지면 반복문이 종료되는 구조라고 볼 수 있다.
코드를 실행해보면
왼쪽에는 fahr 에서 step의 값인 20 씩 올라가고 오른쪽엔 해당 fahr을 celsius로 변환하여 출력이 되고 있다.
printf("%3d\t%3d\n", fahr, celsius);
위 코드 처럼 %d를 %3d로 바꿔주면
이런식으로 조금 보기 편하게 문자열이 정렬되는 것을 확인할 수 있다. 최대 값이 세자리기 때문에 3을 넣어준 것
#include <stdio.h>
int main()
{
float fahr, celsius;
int lower, upper, step;
lower = 0;
upper = 300;
step = 20;
fahr = lower;
while (fahr <=upper) {
celsius = 5.0 * (fahr-32.0) / 9.0;
printf("%3.0f\t%6.1f\n", fahr, celsius);
fahr = fahr + step;
}
return 1;
}
변수를 지정할때 int가 아닌 float으로 변경되었고 서식 지정자를 사용할때 %d 에서 %f 로 바뀌었다.
%6.1f 는 전체6자리, 소수점 1자리의 부동소수점 형식으로 값이 출력되도록 지정한다.
*같은 원리로 %3.0f 는 세자리숫자, 소수점 자리는 보여주지 않는 방식이다
5.0, 32.0 과 같이 실수로 쓰지 않아도 계산은 되지만 식별을 위해 소수점까지 작성하였다.
실습 후 이론
01. int는 정수형을 뜻하는 것처럼 다양한 변수타입이 존재한다. 다음과 같다.
char 문자형, 1바이트
* char A 로 A를 지정할 경우 A 에는 1바이트의 문자만 지정할 수 있다.
** 그러므로 ABCD 같은 1바이트 이상의 문자를 지정할 경우 char A[] = "ABCD" 같은 형식을 통해 변수에 지정을 해주어야한다.
short 단정도 정수형
long 배정도 정수형
float 부동소수점형
double 배정도 부동소수점형
등이 있다.
*설명과 함께 정리를 해두려했는데 생각보다 관련내용이 많아 추후에 설명하기로;
02. 온도 변환 공식은 다음과 같다.
celsius = 5 * (fahr-32) / 9;
위 공식은
celsius = (5/9) * (fahr-32);
로 표현할 수도 있지만 C 언어상에서 정수끼리의 계산 결과는 무조건 정수로 출력된다. (소수점이 없음)
그러므로 5/9 는 0 이되고 fahr에 어떤 값이 들어가도 celsius는 항상 0인 결과가 나온다.
이런 특이사항도 있을 수 있다는 걸 알아두면 좋을듯



No comments to display
No comments to display