본문 바로가기

Programming/Codeup.kr기초100제 && 컴퓨터 이야기

[기초-입출력] 정수 한 개 입력받아 그대로 출력하기 && 변수에 대해서

프로그램에서 변수는 수학에서의 변수와 약간 다른 의미를 가진다. 수학에서의 변수는 그 변수값을 구하거나 그것을 이용해 다른 연산을 하기 위해 필요로 하지만. 프로그램에서의 변수는 값을 저장해놓고 나중에 다시 사용하기 위해 필요하다. 예를 들어 다음 코드를 보자

x=3    (밑에서도 설명하겠지만 프로그램에서 ' = ' (등호)는 우변을 좌변에다가 바인딩하겠다는 뜻이다. 같다의 참/거짓을 판별하기 위해선 ' == ' 을 쓴다.)

여기서 3을 x에다가 바인딩(저장이라 생각하자) 시켜주게되면 x는 3이라는 값을 링크시킨다. 이렇게만 보면 변수 바인딩만 가능하다고 생각된다.

x=3*5

그러나 여기서는 명령문이다 3곱하기5를 한뒤에 그값을 x에 바인딩 시켜라 라는 뜻이다. 여기서 주의해야 할 것이 있다. 다른 서적이나 강의를 듣다보면 변수를 값을 가지는 상자라고 말하여 진다. 하지만 나중에 다룰 포인터 같은 곳에서 메모리 개념을 생각하자면 변수는 상자라기 보단 링크주소 ㄹ라고 하는게 더 맞는 표현이다. 만약 상자라고 하면 다음과 같은 문제도 생긴다

x=3

y=x

x=5

상자의 개념으로 이 코드를 생각하면 조금 이상해진다.

그림과 같이 보면 Y=5가 되야 정상이다. 하지만 코드를 실행해 보면 Y=3이 나온다. 자, 그럼 아까 언급하였던 링크값은 무슨 말일까?

일단 x는 3를 가르킨다(x=3) 그후 y는 x를 가르키는데(y=x) x라는 링크를 타고 가보니 3이어서 3을 가르키게 된다. 그후 x는 5를 가르킨다(x=5) 이런 개념으로 생각하는게 더 좋을 듯 하다.


변수는 반드시 변수 선언을 하고 사용하기전 변수 초기화를 통해 값을 0 이나 적당한 값으로 바꿔야 하는 과정이 필요로한다. c언어로 예를 들어보자면

int y;

printf("%d",y);

를 하게 된다면 분명 이상한 값을 출력하거나 오류가 발생할 것이다.



 

문제 설명

키보드로 입력한 정수값을 그대로  출력하는 프로그램을 작성해보자.

입력

정수값 한 개가 입력된다.

출력

입력된 정수를 그대로 출력한다.

입력 예시

15

출력 예시

15

도움말

c언어에서 정수 변수를 선언하기 위해선

int 변수이름;

이라 해야한다. 이때 변수이름의 규칙이 있는데 다음과 같다.

1. 변수의 이름은 알파벳, 숫자, 언더바(_)로만 구성해야 합니다. 2. 대소문자를 구분합니다. (number과 Number은 다른 변수입니다.) 3. 변수 이름의 첫글자는 숫자로 시작할 수 없습니다. 4. 변수 이름에 공백을 포함할 수 없습니다. 5. 예약어(키워드)를 사용할 수 없습니다. (int, main 등)    [출처 c언어 위키독스]

입력은

scanf("%d", &변수이름);

으로 하며

printf("%d",변수이름);

으로 출력한다.


Python에서는 살짝 다르지만 기본적으로 변수이름 규칙은 같다.

파이썬에서 변수선언할려면 변수가 값을 가져야한다. 따라서 선언과 동시에 입력을 받을 수 있다.

변수이름=input("")

그후 출력도 간단한데 변수 자체를 출력한다고 하면된다.

print(변수이름)


c언에선 파이썬과달리 문자열, 정수, 실수 변수가 직접 지정해줘야만 한다. 번거롭지만 오류잡기엔 좋다.