Basic Pascal Tutorial/Chapter 1/Variables and Data Types/ko
From Lazarus wiki
Jump to navigationJump to search
│
български (bg) │
Deutsch (de) │
English (en) │
español (es) │
français (fr) │
日本語 (ja) │
한국어 (ko) │
русский (ru) │
中文(中国大陆) (zh_CN) │
1D - 변수와 데이터형 (저자: Tao Yue, 상태: 변경)
변수는 상수와 비슷하지만, 그 값은 프로그램이 실행되는 동안 변경할 수 있다. 변수는 파스칼에서 먼저 선언이 되어야 사용할 수 있다.
var
IdentifierList1 : DataType1;
IdentifierList2 : DataType2;
IdentifierList3 : DataType3;
...
IdentifierList 는 (,)로 구분된 식별자 목록으로. 이 목록에 있는 모든 식별자들은 같은 데이터형으로 선언된다.
파스칼의 기본 데이터 형은 아래와 같다.
- integer
- real
- char
- boolean
표준 파스칼은 문자열 데이터 형에 대한 기능은 없지만 현대의 파스칼 컴파일러는 갖고 있다. 숙련된 파스칼 프로그래머들은 또한 포인터를 이용해 동적 메모리 할당 기능을 이용하고, 객체지향 프로그래밍으로 객체를 만들기도 하는 등의 많은 다른 것들을 하지만, 당장은 표준 파스칼로 부터 시작해보도록 하겠다.
파스칼 자료형에 대한 더 자세한 내용.
- integer 자료형은 -32768 부터 32767까지 정수를 포함한다. 음수, 양수의 부호를 가지며, 16비트 값으로 저장이 된다. 이는 16비트 CPU가 보편적이던 때의 영향이다. 구버젼 호환을 위해, 32비트 부호를 포함한 정수 데이터 형은 longint라고 하며 훨씬 더 큰 값을 저장할 수있다.
- real 자료형은 3.4x10-38 부터 3.4x1038 까지 값을 가지며, 음수의 영역도 포함한다. Real 형 값은 가수와 승수를 포함하는 과학표기법 형태와 비슷하게 컴퓨터 내부에 저장이 된다. 파스칼에선, real 값을 고정소수점 표기법 또는 E 문자로 가수와 승수 부분을 분리하여 표기하는 과학적 표기법으로 프로그램에서 표기할 수 있다. 그래서, 452.13 과 4.5213e2는 같은 값이다.
- char 자료형은 문자를 저장한다. 문자를 표기할 때, 'a' 'B' '+'와 같이 작은 따옴표를 사용해야 한다. 표준 파스칼에선 16비트가 아닌 8비트 문자체계를 사용한다. 그래서 세계의 문자를 모두 표현할 수 있는 유니코드는 지원하지 않는다.
- WideChar는 2바이트 문자(DBCS: Double Byte Character Set)로 유니코드 문자를 저장할 수 있다.
- Free Pascal은 델파이에서 구현한 PChar 형을 사용할 수 있다. PChar 는 Char 자료형의 포인터를 정의하지만, 추가적인 연산을 허용한다. PChar 란 C언어에서 사용하는 null 값으로 끝나는 문자열 표현법의 파스칼 버젼이라고 이해하는 것이 가장 편할 것이다. 그러니까, PChar형 변수는 Char형의 배열에 대한 포인터로서, 그 배열의 끝은 null 문자(#0)로 끝난다. Free Pascal은 PChar 형 상수 또는 직접할당에 의한 초기화를 지원한다. 예로서 다음의 코드를 참조하기 바란다.
(역주: 예제 코드가 없음)
- Free Pascal은 Turbo Pascal같이 String 자료형을 지원한다. 이는 문자열을 저장하며, 선택사양으로 문자열의 크기를 지정할 수 있다. 또한 델파이에서와 같이 ansistrings (길이 무제한)을 지원한다. 다음과 같이 선언할 수 있다.
variable_name : string; // 문자열 길이를 지정하지 않으면, 기본 값이 255 이다.
variable_name : string[length]; // 여기서, 1 < length <= 255
- 미리 정의된 데이터형 ShortString 은 문자열의 크기가 255 이다.
- AnsiStrings은 문자열 길이의 제한이 없는 자료형이다. 참조점을 이용해 문자수가 세어지고, 이 문자열은 null문자로 끝난다. 내부적으로 ansistring은 포인터로서 취급이 된다. 실제 문자열의 데이터는 힙(heap)영역에 저장이 되고, 메모리가 허용하는한 문자열 데이터를 저장할 수 있다.
- Widestrings (유니코드 문자열을 표현하기 위해 사용됨) 은 ansistrings와 같은 형식으로 구현되었다. 참조점과 null로 종료되는 배열. 다른 점이라면 정규 Chars 대신에 WideChars의 배열이 사용된 다는 것이다.
- boolean 자료형은 2가지 값만을 갖는다. TRUE 와 FALSE.
아래는 변수를 선언하는 예이다.
var
age, year, grade : integer;
circumference : real;
LetterGrade : char;
DidYouFail : Boolean;
FPC 매뉴얼로 부터
자료형 | 표현범위 | 필요 바이트수 |
---|---|---|
Byte | 0 .. 255 | 1 |
Shortint | -128 .. 127 | 1 |
Smallint | -32768 .. 32767 | 2 |
Word | 0 .. 65535 | 2 |
Integer | smallint or longint | 2 or 4 |
Cardinal | longword | 4 |
Longint | -2147483648 .. 2147483647 | 4 |
Longword | 0..4294967295 | 4 |
Int64 | -9223372036854775808 .. 9223372036854775807 | 8 |
QWord | 0 .. 18446744073709551615 | 8 |
Free Pascal 은 다른 종류의 정수형들이 사용될 경우 자동으로 자료형을 변환한다.
자료형 | 표현범위 | 유효자리수 | 필요 바이트수 |
---|---|---|---|
Real | platform dependant | ??? | 4 or 8 |
Single | 1.5E-45 .. 3.4E38 | 7-8 | 4 |
Double | 5.0E-324 .. 1.7E308 | 15-16 | 8 |
Extended | 1.9E-4932 .. 1.1E4932 | 19-20 | 10 |
Comp | -2E64+1 .. 2E63-1 | 19-20 | 8 |
Currency | -922337203685477.5808 | 922337203685477.5807 | 8 |
자료형 | 필요 바이트수 | 참일 때 실제 자료값 |
---|---|---|
Boolean | 1 | 1 |
ByteBool | 1 | Any nonzero value |
WordBool | 2 | Any nonzero value |
LongBool | 4 | Any nonzero value |
previous | contents | next |