Assignment and Operations/ko

From Lazarus wiki
Jump to: navigation, search

English (en) español (es) français (fr) 日本語 (ja) 한국어 (ko) русский (ru) 中文(中国大陆)‎ (zh_CN)

1E - 값의 할당과 연산 (저자: Tao Yue, 상태: 변경없음)

일단 변수를 선언하고 나면, 그 안에 값을 저장 할 수 있어진다. 이걸 '할당'이라고 한다.

어느 값을 변수에 할당하는 것은 다음 과 같은 문법을 따른다.

변수_이름 := 표현;

단순하게 = 문자를 사용하는 할당 연산을 하는 다른 언어와 달리, 파스칼은 콜론(:)과 등호(=) 문자를 붙여서 사용한다. 이는 대부분의 컴퓨터 대수학에서 사용하는 것과 같다.

'표현'부분은 하나의 값이거나,

some_real := 385.385837;

아니면, 연산식이 될 수도 있다.

some_real := 37573.5 * 37593 + 385.8 / 367.1;

파스칼에서 연산을 위한 연산자들은

연산자 연산 피연산자 결과
+ 덧샘 또는 양수 부호 real 또는 integer real 또는 integer
- 뺄샘 도는 음수 부호 real 또는 integer real 또는 integer
* 롭셈 real 또는 integer real 또는 integer
/ 실수 나누기 real 또는 integer real
div 정수값 나누기 integer integer
mod 나머지 값연산 integer integer

divmod는 오로지 integers 데이터형에 대해서만 이뤄진다. /연산자는 realsintegers 데이터형에 대해 사용할 수 있는데, 결과는 항상 real 값이 된다. 다른 모든 연산자들은 realsintegers 데이터형에 대해 사용할 수 있다. 만일 realsintegers 데이터가 섞여있는 경우엔 결과는 항상 real로 반환이 되며, 이경우 데이터에 손실이 발생할 수 있다. 이 때문에 파스칼은 나눗기 연산과 정수형 나눗기 연산자 두개를 가지고있다. 7 / 2 = 3.5 (실수연산), 그러나 7 div 2 = 3 (그리고, 7 mod 2 = 1 나머지 값의 연산)는 정수 연산이다.

각각의 변수는 오직 같은 데이터형의 값만을 할당 받을 수 있다. 그렇기 때문에, 실수형 값은 정수형 변수에 할당할 수 없다. 그러나, 어떤 데이터 형의 경우 보다 상위 데이터 형으로 변환 될 수는 있다. 가장 흔한 경우는 정수형 값을 실수형 변수에 값을 할당하는 경우다. 만약에 아래와 같은 변수 선언부분이 있다고 치자.


var
  some_int : integer;
  some_real : real;

그리고, 아래와 같은 문장이 실행된다고 하면,

some_int := 375;
some_real := some_int;

some_real 변수의 내용은 375.0가 될 것이다..

하나의 데이터형을 또다른 데이터 형으로 바꾸는 것을 '형변환' (typecasting)이라고 부른다. 현대의 파스칼 컴파일러는 살짝 다르긴 하지만, C 언어의 형태로 명시적인 형변환을 지원한다. 그러나 이러한 형변환은 보통 저수준의 상태나, 객체지향 프로그래밍에서 사용하고, 처음 언어를 배우는 학생의 경우 이것을 이용할 필요는 없다. 아래는 GNU 파스칼 매뉴얼에서 가져온 형변환에 대한 정보이다.

파스칼에선, 음수기호 (-)는 값을 음수로 만드는데 사용될 수 있다. 양수기호 (+) 또한 값을 양수로 만드는데 사용할 수 있지만, 그 값을 그대로 둔다. 이유는 기본적인 값이 양수이기 때문이다.

두개의 연산자를 아래와 같이 연이어 사용하면 안된다.

some_real := 37.5 * -2;

이 식은 그냥 보기에 37.5를 음수인 -2와 곱하는 연산으로 지극히 정상으로 보일 수 있지만, 파스칼은 혼동스러워 할 것이다 - 파스칼은 이게 곱하기인지 빼기인지 알 수 없을 것이다. 이런 경우 괄호를 이용해서 연산을 명확하게 하는 것이 좋다.

some_real := 37.5 * (-2);

컴퓨터는 일반적인 연산에서 하듯 비슷한 연산 우선순위를 따른다. 곱셈과 나눗셈은 (* / div mod) 덧셈과 뺄셈에 우선하여 실행되고, 괄호는 항상 우선 순위를 갖는다. 예를 들어 3.5*(2+3) 의 답은 17.5.이다.

파스칼은 Boolean에 대해 표준 연산법으로 처리하지 않는다. Boolean 연산에 대해선 특별한 처리가 있고, 연산자는 문자를 대상으로 실행할 수 없다.

previous contents next