관심쟁이 영호

[C언어기초 #1.2]변수개념만으로 응용해보자! 본문

학교공부/C언어의 왕!

[C언어기초 #1.2]변수개념만으로 응용해보자!

관심쟁이 영호 2019. 11. 7. 21:20
반응형

안녕하세요! 최고왕입니다.

 

요즘 날씨가 추워지고 있는 거 같아요ㅠ

 

여러분들 꼭 따뜻하게 입고 감기 안 걸리게 조심하셔야 해요!

 

바로 시작하겠습니다!

 


오늘은 이전에 배운 변수를 응용하는 시간을 가져볼 거예요 ㅎㅎ

 

응용이라고 해봤자 별거 없지만 무엇이든 실제로 생각해보고 머리를 스토밍 시켜야 나의 것이 되는 것이기에

 

문제를 풀어가며 우리 것으로 만들어 보겠습니다!

 

문제를 약 2문제 풀고 거기에 대한 해설을 하는 방향으로 가볼게요.

 

1. 변수 x, y, z를 선언하라. 그리고 x에는 10, y에는 x변수를 이용하여 100 값을 저장, z값은 x와 y변수를 이용하여 0 값이 나오게 하라. 그리고 x, y, z를 출력하라.

2. 변수를 필요한 만큼 선언하고 사칙연산을 수행하는 것을 출력하라.

 (문제 예시 : a + b = ~ , a - b = ~, a * b = ~, a / b = ~로 나오게 하라.)

* 초반 단계에선 c언어의 작업환경을 맞춰주는 것부터 헷갈려요 ㅠ 하지만! 몇 번 해보다 보면 금방 외우니까 모르시겠다면

앞글을 참조하여 외워주시면(어차피 계속하다 보면 외워지겠지만) 될 것 같아요!

 

 

 

해설. 먼저 사진으로 보여드릴게요!

첫 번째 문제.

1. 첫번째 작업으로 작업환경을 갖추어야 합니다.  밑에 사진처럼 글을 적는 게 가장 먼저예요!

 

 

 

2. 두 번째로 x, y, z를 선언하라고 했어요! 선언해볼게요 ㅎㅎ

여기서 설명드리자면,

 

굳이 왜 0이라는 값을 초기화(값을 넣어주기)해두는 것이냐?

 

라는 생각을 하시는 분들이 있을 것 같아요!

 

음 먼저 말하자면 저렇게 하는 게 좋다는 거예요!  조금 심화된 내용이니 일단 지금은

 

저렇게 선언할 때 "0"이라는 값을 선언해두는 습관을 들여놓으면 좋아요!!

 

나중에 큰 프로젝트를 하게 된다면 변수를 이렇게 x, y, z 세 개만 선언하는 경우가 드물어요

 

상당히 귀찮죠 ㅠㅠ 그래서 한 번에 변수를 선언할 수가 있어요!

 

사진으로 한 번에 변수를 선언하는것을 보여드리겠습니다!

 

사진에서 보듯이 한번에 선언, 한번에 초기화가 가능해요!

 

이것은 코드를 여기다가 써드리겠습니다. 복붙 해보세요!!

 

int a = 1, b = 2, c = 3;

printf("a = % d b = %d c = %d \n", a, b, c);

 

3. 세 번째로 x, y, z에 값을 초기화해주겠습니다!

 

 

x, y, z를 선언해주었어요!

 

x에 10을 초기화해주었고

 

y에는 10 * x로 초기화해주었어요! 이것 말고도 다른 많은 방법이 있는 거는 아실 거예요!

 

z는 y에다가 x를 10 곱한 값을 빼주었어요!

 

c언어에도 현실 수학과 똑같이 사칙연산 우선순위가 적용돼요! 굳이 ()를 사용하지 않아도 똑같은 값이 나올 겁니다 ㅎㅎ

 

4. 이제 출력해보겠습니다!

먼저 말하자면 printf는 함수의 개념이고 나중에 가면 나와요!! 그때 배워보기로 하고

 

먼저 외워두셔야 할 것 중에 하나입니다!! 일단은 따라적으시거나 외워만 두시고 다음 강의 때 설명해드리겠습니다!

 

 

프로그램을 ctrl + f5를 이용하여 구동해주었더니 출력 화면이 나오네요!

 

정상적으로 문제를 푼 거 같습니다!

 

코드를 밑에다가 바로 적어두겠습니다.

 

#include 

int main(void) {

int a = 1, b = 2, c = 3;

printf("a = % d b = %d c = %d \n", a, b, c);


//문제에서 선언을 먼저 하라고 했어요! 선언부터 하겠습니다.
int x = 0;
int y = 0;
int z = 0;

//x는 10 값을 초기화(값을 넣어주기)하라고 했으니 x값을 초기화하겠습니다!

x = 10;

//x값을 이용하여 y값에 100이라는 값을 입력해주라고 했어요! y값을 초기화해주겠습니다.

y = 10 * x;

//x와 y를 이용하여 z값을 0으로 만들어주라고 했어요. z값을 초기화해주겠습니다.

z = y - (10 * x);

// x, y, z값을 출력해주겠습니다!

printf("x = % d, y = %d, z = % d", x, y, z);


}

두 번째 문제.

이것도 먼저 도화 질를 만들고 변수를 선언해주도록 할게요!

 

A방법

 

1. 도화지를 만들고 필요한 변수를 선언해준다.

x와 y를 선언해주었어요!

 

2. 변수를 초기화해준다.

 

이제 문제에 맞는 값을 초기화해주도록 할게요!

 

 

x와 y에 들어가는 초기화 값은 제 마음대로 설정했어요! (그냥 사칙연산 편하게 하려고 ㅎㅎ)

 

 

3. 출력 글을 쓴다.

바로 출력글을 써볼게요!

음 먼저 아까랑 조금 달라진 게 있죠?

 

printf 쪽에 변수 이름이 안 들어가고 변수 이름을 통해서 연산을 수행하는 것으로 바뀌었어요!

 

이렇게 한 이유를 조금 있다가 설명드릴게요!

 

출력 화면을 보겠습니다.

 

 

 

자! 이렇게 문제를 풀게 되었어요! ㅎㅎ

 

그럼 여러분들이 생각한 대로 문제를 풀어볼게요!

 

B방법

 

1. 똑같이 선언해준다.

 

2. x와 y를 초기화.

 

3. 변수 a, b, c, d를 선언

 

 

여기서 의문이 들어요..

 

"왜 아까와는 다르게 a, b, c, d를 x, y와 같이 선언해주지 않았지?"라고 생각하실 거예요!

 

이것을 설명해드리려면 가장 먼저

 

x, y의 값을 보아야 해요.

 

제가 먼저 x와 y값을 0으로 초기화해두었어요 ㅠㅠ

 

c언어에서는 main함수 (int main(void) {       이 부분          })의 내용을 가장 윗줄부터 차례차례 보기 때문에

 

x와 y값을 0으로 선언해주고 그다음에 a, b, c를 차례로(위줄부터) 선언하고 d를 x / y로 선언해주게 될 거예요

 

그러면 컴퓨터 입장에선 d = 0 / 0 이 될 것이고 0/0을 변수 상자에 넣을 수가 없게돼요. 왜냐면 숫자가 없기 때문이죠 ㅠ

 

그래서 오류를 발생하게 되요.

 

그래서 제가 x, y를 각각 100, 10을 먼저 초기화해주고 그다음 a, b, c, d를 초기화해주었어요 ㅎㅎ

 

무슨 말인지 아시려나..? 이해 못하시겠다면 댓글 남겨주세요! 

 

3. 출력 글을 써볼게요.

그냥 보기에는 아까 x와 y로만 구성된 것보다 훨씬 단조롭죠~?

 

4. 출력 창을 봅시다!

 

이렇게 나오네요!

 

근데 왜 최고왕은 첫 번째 방법으로 문제를 풀었느냐???

 

이유는 프로젝트가 엄청 커졌을 때를 생각해서입니다!(몇만 줄이나 되는 프로젝트도 있어요!)

 

만약 프로젝트가 엄청 커졌을 때는 많은 변수를 선언하게 되고 초기화하게 되죠!

 

저희 컴퓨터에는 무한의 메모리가 없어요 ㅠㅠ 그래서 a, b, c, d를 선언해주게 되면

 

한정된 메모리 공간에 a, b, c, d라는 변수 상자가 자리를 차지하게 될 것이고 컴퓨터의 성능은

 

자동적으로 저하되게 되죠!

 

물론 지금은 상자가 네 개밖에 안돼서 아무런 지장이 없지만

 

큰 프로젝트에선 많은 지장을 주게 돼요 ㅠㅠ 그래서 미리미리 이런 것은 나중을 위해

 

습관화해두면 좋은 것이죠!

 

이것으로 오늘 문제는 다 푼 것 같아요! 전체 코드를 올려드릴게요!

 

방법 A코드

#include 

int main(void) {

//x, y, a, b, c, d(사칙연산이 네 개라서 변수를 새로 4개만 설정해주었어요.)를 선언부터 해주겠습니다.

int x = 0;
int y = 0;


//x, y를 초기화해주겠습니다.
x = 100;

y = 10;

//x, y를 출력해주겠습니다.

printf("x + y = % d, x - y = %d, x * y = %d, x / y = %d ", x + y, x - y, x * y, x / y);
}

 

방법 B코드

#include 

int main(void) {

//x, y, a, b, c, d(사칙연산이 네 개라서 변수를 새로 4개만 설정해주었어요.)를 선언부터 해주겠습니다.

int x = 0;
int y = 0;
int a = x + y;
int b = x - y;
int c = x * y;
int d = x / y;


//x, y를 초기화해주겠습니다.
x = 100;

y = 10;

//x, y를 출력해주겠습니다.

printf("x + y = % d, x - y = %d, x * y = %d, x / y = %d ", a, b, c, d);

}

 

이것으로 오늘의 글을 마치겠습니다!


긴 글 읽어주셔서 매우 감사드립니다 ㅠ

 

다음 글은 전반적으로 설명드리지 않은 부분을 짚어서 설명하는 시간을 가져볼 예정입니다!

 

오늘도 감사합니다!

 

 

300x250
Comments