Variable (변수)


변수는 

값을 저장하기 위한, 이름 붙여진 공간이다.

아래 프로그램을 보자.

line 5:

int x;

공간을 만들고, 

거기에 x라는 이름을 붙여서 변수를 만든 것이다.

int는 integer의 약자로, 정수를 의미한다.

이것은 변수에 저장될 수 있는 값을 한정한다.

즉, 변수 x에는 정수가 저장됨을 의미한다.

int 같은 것을 변수의 data type (데이터형)이라고 한다.


비유를 들면 이렇다.

휘발유 내차;

경유 너차;

내차에는 휘발유를 넣어야 하고,

너차에는 경유를 넣어야 하는 것과 같다.


line 5-7:

변수 x, y, z, 세 개를 선언하는 것이다.

모두 정수를 저장할 수 있는 변수이다.


int x, y, z;

같은 data type을 갖는 변수들이면,

위와 같이 한 줄로 선언해도 된다.


line 9-12:

x = 10;

y = 20;

z = x + y;

기억하라!

정신 바짝 차리고!

C언어에서는,

= 표시는 '대입(assignment)', 즉 값을 집어 넣는다는 뜻이다.

오른쪽에 있는 것을 왼쪽으로!



Variable Name (변수의 이름)

x, y, z

변수이름들이었다.


변수이름의 길이

C언어는 변수이름을 마음대로 더 길게 지을 수도 있다.

얼마나 길게? 

정해진 것 없다.

그러나, 적당히.


변수이름에 사용가능한 문자

영어 돼!  

숫자 돼!

기호 '_' (밑줄기호)만 돼!

한글 안 돼!

기억하자, 한글은 안 된다.


변수이름의 첫글자는?

영어 알파벳 아무거나,

기호 '_'(밑줄기호)만 돼!

숫자 절대 안돼!

기억하자, 숫자는 안 된다.


C언어에서 이미 쓰고 있는 것은 안됩니다.

이미 C언어에서 사용하고 있는 단어들은

안됩니다.

예를 들어, data type이름인 'int'같은 것들은 안되는 겁니다.


그리고, 대소문자 구별합니다.

변수이름 a와 A는 완전히 다른 것이다.


이런 여러 가지 약속들만 지켜준다면,

마음대로 변수 이름들을 지을 수 있습니다.

아래 표는 '되는 이름'과 '안 되는 이름'들을 보여준다.


 되는 이름

안 되는 이름 

 grade

int, return 

_grade

 @grade

 grade_100

 100_grade

 Grade

그레이드 

 my_name_is_john

my name is john 


너무 독특한 이름만 아니면,

웬만한 것 다 OK다.


마지막으로, 진짜 중요한 것 하나.

변수는 사용되기 전에 반드시 선언되어야 한다.




변수, variable, 이름을 짓는 방법에 대해서 설명합니다.




반응형
LIST

쓸모있는 프로그램을 만들어보자.

화면에 별 소용도 없는 Hello 같은 인사말을 출력하는

프로그램말고,

요긴하게 쓸 수 있는 프로그램을 만들어 보자.


계산기는 어떨까?

헐,,

목표가 너무 높은거 아냐.

그래서,

아주 간단한 계산기를 만들어보자.

2개의 숫자를 입력하면,

두 숫자의 합을 출력해주는 프로그램을 만들어보자.

C언어로 말이다.


이걸 만들려면,,

2개의 숫자를 입력받는 방법을 알아야 하고,

2개의 숫자를 더하는 방법을 알아야 하고,

합을 출력하는 방법을 알아야 한다.

알아야 할 것 투성이다.


완성 프로그램

하나하나 설명해 가면서 만드는 것도

의미는 있지만,

일단, 다 만들어 놓고,

한 줄 한 줄 설명해보자.

일단, 구현한 계산기 프로그램과 실행결과이다.

 


line 5-7:

계산기는 숫자를 2개 입력받아야 하는데,

이를 저장하기 위한 변수 x와 y.

그리고 두 수의 합 x+y를 저장하기 위한 변수 sum이다.

변수는 무엇인가?

고등학교 수학시간에 배웠지 않았나?

변수 x... 그런거..

그런거다 라고 이해하면 된다.

그러면 

x, y, sum앞에 붙은 int는 무엇인가?

int는 integer, 즉 정수를 말한다.

변수 x, y, sum은 정수를 저장하는 변수라는 뜻이다.


line 9:

콘솔에 친절하게도

'첫 번째 숫자를 입력하세요'라는 메시지를 출력하기 위한 것이다.

사실 이거 안 해도 된다.


line 10:

이게 핵심이다.

scanf.

scanf 는 scan + function이다.

즉, 입력함수이다.

출력함수 printf의 반대이다.

키보드로 입력하는 것들을 읽어들인다.  

%d는 무엇인가?

d는 decimal, 즉 10진수를 말한다.

&x는 무엇인가?

변수 x와 연관있다는 것이다.

이제, scanf("%d", &x); 를 해석하면,

"10진수를 입력받아 변수 x에 넣는다"라는 뜻이 된다.


line 12-13:

두 번째 숫자를 입력받는 과정이다.

scanf("%d", &y);를 해석하면

"10진수를 입력받아 변수y에 넣는다."라는 뜻이 된다.


line 15:

sum = x + y;

이것의 뜻은 절대로 "x+y는 sum과 같다"라는 뜻이 아니다.

C언어에서는,

"x+y를 더한 결과를 변수 sum에 넣는다." 라는 뜻이다.


line 16:

프로그램 이해를 위한, 마지막 고비이다.

낯익은 printf가 보이고,

%d도 보인다.

통밥으로 맞춰보자. 무슨 뜻인지...

혹시 이걸 맞췄다면 당신은 "센스쟁이"

정답은,

"10진수 3개를 출력하는데, 변수 x, y, sum 순서로 출력한다."

라는 뜻이다.


또 다른 계산기를 만들어보자.

두 수를 입력받아,

두 수의 차를 출력하는 계산기 프로그램을 만들어보자.

위 프로그램을 응용해서 말이다.

이건, 너무 쉬우니, 더 이상 설명하지는 않는다.


쓸모있는 깨알팁 하나 투척,,

계산기가 나름 요긴하게 

쓰이긴 하겠지만,

기대 이하였을 것이다.

그래서,

만회할 겸,

생활속의 지혜 하나 드리는 걸로 '' 칩시다.




입력함수인 scanf를 이용하여

2개의 숫자를 입력받아

그 합을 계산해서 출력하는 프로그램을 작성하는 과정을 보여주는

동영상입니다.



반응형
LIST


콘솔창에 출력하는 함수: printf


print function = printf

Hello World 예제에서 보았듯이,

console창에 무엇인가 출력하려면

printf라는 것을 사용해야 한다.

printf는 print + functin으로 '출력하는 함수'라는 뜻이다.


출력하려는 내용은...

printf 라고 쓰고, 

괄호를 ( ) 친 다음,

그 안에 큰 따옴표로 묶어서 써주면 된다.

즉,

printf ("Hello World");


줄바꿈을 위한 \n

printf를 사용하다 보면,

\n를 종종 보게 된다.

이것의 의미는 '다음 줄로 이동' 이라는 뜻이다.

따라서

printf("Hello \n World\n");

Hello가 출력되고,

\n은 그 다음줄로 바꾸고,

World를 출력하고,

마지막의 \n은 그 다음 줄로 바꾸게 된다.


요즘은 입체모양도 프린트 할 수 있다.

printf 함수는 고작해야

console창에 메시지를 출력하는 수준이지만,

3D printing 기술의 발전은

입체모양도 출력할 수 있게 한다.



입체 모델을 얻는 기술도 중요

3D 프린터를 주위에서 쉽게 볼 수 있게 되면서,

이제는 3D 프린팅 자체는 그리 신기한 기술이 아니다.

물론, 더 많이 발전해야 겠지만,

그런데, 3D 프린팅을 하려면,

3D 모델이 있어야 하는데,

그 모델을 얻는 기술도 3D printing만큼이나 중요하다.


3D 스캐닝

3D 모델을 얻는 방법인데,

요즘 워낙 기술들이 많이 발전됐다.

레이저를 이용해서 초정밀 스캐닝을 할 수도 있고,


사진을 이용해서 할 수도,,

각도를 달리해가면서

사진을 찍어서, 3차원 모델을 만들 수도 있다.

아래 그림에서는

사람의 얼굴을 각도를 달리해 가면서

여러 장의 사진을 찍은 후에,

그것을 이용해서 3D 얼굴을 만들어 낸 것이다.

신기하죠...근데 실제로 해보면 어려워요..C언어로 프로그램짜서 만들었지요.



출력함수 printf에 대해서 자세히 설명합니다.



반응형
LIST

+ Recent posts