자 료 형 (Data types)
단 순 형 |
문 자 열 형 |
구 조 형 |
포 인 터 형 |
가 변 형 |
정수형 |
단문자열형 |
배열형 |
무형 포인터 |
가변형 |
문자형 |
장문자열형 |
레코드형 |
유형 포인터 |
|
대수형 |
광폭(Wide)문자열형 |
집합형 |
|
|
열거형 |
|
|
|
|
범위형 |
|
|
|
|
실수형 |
|
|
|
|
1.숫 자 형
1.1 정수형(Integer)
정수형은 일반적인 숫자를 표현하는데 사용되는 자료형
자 료 형 |
범 위 |
크 기 |
Shortint |
-128~127 |
1바이트 / 부호있는 8비트 |
Smallint |
-32768~32767 |
2바이트 / 부호있는 16비트 |
Longint |
-2147483648~2147483647 |
4바이트 / 부호있는 32비트 |
Byte |
0~255 |
1바이트 / 부호없는 8비트 |
Word |
0~65535 |
2바이트 / 부호없는 16비트 |
Integer |
-2147483648~2147483647 |
4바이트 / 부호있는 32비트 |
Cardinal |
0~2147483647 |
4바이트 / 부호없는 32비트 |
1.1.A 변수선언방법
1의 값은 -128에서 127사이의 범위에 포함된다.
1.1.B 정수형 변수에 변수 대입방법
var
I : Shortint;
J : Word;
begin
J := I;
I := J;
end; |
정수형의 범위를 벗어난 값을 대입하려고 하면 엉뚱한 값이 대입됨.
1.2 실수형(real type)
소수점 이하의 값을 다룰 때 사용
실 수 형 |
범 위 |
크 기 |
Real |
2.9*10^-39 ~ 17*10^38 |
6바이트 |
Single |
1.5*10^-45 ~ 3.4*10^38 |
4바이트 |
Double |
5.0*10^-324 ~ 1.7*10^308 |
8바이트 |
Extended |
3.4*10^-4932 ~ 1.1*10^4932 |
10바이트 |
Comp |
-263~263-1 |
8바이트 |
Currency |
-922337293685477.5808
~922337203685477.5807 |
8바이트 |
2.문 자 형
2.1 단 문 자 열 형
오브젝트 파스칼의 문자형으로는 세 가지 기본 자료형이 준비되어 있다.
문 자 형 |
표 현 범 위 |
AnsiChar |
1바이트 크기 또는 ASCII 코드 값이 해당하는 문자 |
WideChar |
2바이트 크기 또는 유니코드(Unicode) 문자 |
Char |
AnsiChar형과 같음 |
2.1.A 변수선언방법 <문자의 좌우에는 작은 따옴표를 사용해야 한다.>
var
C : Char;
begin
C := 'a';
end; |
2.1.B ASCII 코드 값과 함께 # 기호를 사용 방법
C := #65; //ASCII 코드에서 65번째 문자를 가리킨다. |
다음과 같은 의미를 가진다.
#기호와 ASCII 코드는 키보드로 입력할 수 없거나 또는 ENTER키와 같이 일반적인
문자로 표현하기 어려운 문자를 사용하기 원할 때 편리하다.
2.2 장 문 자 열 형 (String Type)
문자열형은 여려 개의 문자로 이루어진 문자열을 가질 수 있는 자료형입니다.
문 자 열 형 |
설 명 |
ShortString |
최대 255자 길이의 문자열을 가질 수 있습니다. |
AnsiString |
임의의 길이의 ASCII문자열을 가질수 있습니다. |
WideString |
임의의 길이의 유니코드 문자열을 가질수 있습니다. |
String |
컴파일러 지시자에 따라 ShortString이나 AnsiString이 됩니다. {$H+}가 사용된 경우에는 AnsiString이 되고,
{$H-}가 사용된 경우에는 ShortString이 됩니다. |
2.2.A 문자열 선언방법
- 단문자 열형
var
SS : shortsrting[10]; |
- 장문자 열형
- *컴파일러 지시자를 사용
*컴파일러 지시자 $H
-컴파일러 지시자 $H는 기본적으로 설정된 상태(ON)입니다. 다시 말해서, 컴파일러 지시자의 프로 젝트 설정대화상자의 상태를 바꾸지 않았다면, String은 AnsiStirng과 같은 의미를 가집니다.
- wide 문자열형의 경우
3.배 열 형
3.1 배열형
배열형은 동일한 자료형의 값들을 여러 개 저장하는데 사용됩니다.
3.1.A 배열형 선언
var
A : array [1..10] of integer; |
3.1.B 배열형 대입
3.2 집합형
집합형은 수학에서 흔히 사용 되는 집합을 표현하는데 사용되는 것으로, 집합형을 사용하면 일반적 인 집합을 표현하고 계산하는 등의 작업을 쉽게 수행할 수 있습니다.
3.2.A 집합형 선언방법
var
CharSet : Set of Char; |
3.2.B 집합형 대입
CharSet : = [ 'a' , 'c', 'f' ]; |
4.기 타
4.1 대수형
대수형은 참과 거짓, 0과 1 등 두가지 값을 표현할 수 있는 기본 자료형이다.
대 수 형 |
크기 및 표현 범위 |
ByteBool |
1바이트의 True / False |
WordBool |
2바이트의 True / False |
LongBool |
4바이트의 True / False |
Boolean |
ByteBool과 같음 |
실제로 델파이에서는 주로 Boolean형이 많이 사용되고, 나머지 대수형은 주로 외부 언어나 모듈과 함께 사용된다.
4.2 열거형
열거형은 말 그대로 몇 개의 항목들을 나열하고 그 순서를 값으로 가질 수 있는 자료형이다.
type
color = ( Red, Blue, Green, Black, White, Gray );
// Colors 형의 변수는 열거한 세 가지 값들 중에서 한가지를 가질 수 있다. |
열거형으로 선언된 변수는 나열된 값들 중에서 한 가지를 가질 수 있다.
4.2.A 선언방법
var
MyFavoriteColor : Colors;
begin
MyFavoriteColor := Red; //MyFavoriteColor의 값은 Red이다.
end; |
열거형 변수를 선언할 때 나열된 값들은 해당 열거형 변수에 대해서만 일종의 상수로 취급.
따라서 이렇게 나열된 상수들은 같은 범위 내에서 다른 용도로 사용될 수 없다.
4.3 범위형
-범위형은 앞에서 설명했던 단순형들 중에서 특정 자료형이 표현할 수 있는 범위의 일부만을 범위로 가지는 자료형이다.
-범위형도 열거형과 마찬가지로 사용자가 범위를 정할 수 있으므로 사용자 정의 자료형이다.
4.3.A 범위형 선언방법
4.3.B 영문 소문자만을 가질 수 있는 범위형 변수를 선언
type
YourColors = Green..White; |
범위형 변수를 사용할 때에는 일반적인 단순형 변수와 같은 방법으로 취급할 수 있다. 단지, 범위형을 정 의할 때정한 최소값과 최대값의 범위를 벗어나지 않도록 주의해야 한다.
4.4 순서형
순서형에서는 특별한 연산이 가능. 어떤 값보다 바로 앞에 있거나 뒤에 있는 값을 구하는 연산과 어 떤 값이처음부터 몇 번째 위치에 있는지 알아내는 연산이 있다. 전자의 경우에는 Pred와 Succ를 사 용하고, 후자의경우에는 Ord를 사용한다.
Succ(5) = 6;
Pred(5) = 4;
Ord(5) = 5;
Succ('a') = 'b';
Pred('z') = 'y';
Ord('a') =97;
Ord(false) = 0;
Succ(false) = true;
Pred(false) = true;
Pred(Green) = Red;
Ord(Pred(Green)) = Ord(Red) = 0; |
4.5 레코드형
- 동일한 형의 여러 데이터를 다루기 위해서 배열을 사용하는 것과 달리 서로 같거나 다른 자료형의 여러 데이터를 다루기 위해서 레코드형을 사용할 수 있습니다.
4.5.A 레코드형 선언
type
Cities = (Seoul, Incheon, Pusan, Masan ) ;
AddrInfo = record
Name : String;
Sex : Char ;
City : Cities;
Post 1 : shorting;
Post 2 : shorting;
end; |
4.5.B 레코드형 대입
var
MyAddr : AddrInfo;
MyAddr. Name : = '문열‘;
MyAddr. Sex : = 'M'
MyAddr. City : = Seoul;
MyAddr. Post1 : =100;
MyAddr. Post2 : =200; |
4.6 포인터형(Pointer type)
- 포인터형은 어떤 대상을 가리키는 값을 표현하는 자료형
- 포인터형변수는 변수가 저장된 메모리 영역을 가리킨다
-포인터형 변수는 일정한 범위의 값이 아니라 변수가 저장된 메모리 영역의 주소를 값으로 가진다.
4.6.A 포인터형 변수가 메모리의 유효한 영역을 가리키게 하는 방법
·간접 어드레싱(indirect addressing)
-실제로 선언된 변수의 주소를 포인터에 대입하는 방법
·동적 변수(dynamic variable)
-시스템에서 어떤 메모리 영역을 할당받은 후, 포인터가 그 영역을 가리키게 하는 방법
4.6.B 델파이에서 포인터를 선언하는 방법
· 무형 포인터 (untyped pointer)
- 포인터가 일정한 형의 변수를 가리키는 것이 아니라 임의의 형의 변수를 가리킬 수 있는 것
pointer 라는 예약어를 사용한다
·유형 포인터 (typed pointer)
- 일정한 형의 변수를 가리키는 것
자료형 이름 앞에 ^기호를 사용
·포인터가 가리키는 값을 사용하할 때
var
PI : PInteger;
I : Integer;
PI := I^; //pi 가 가르키는 값에 I를 대입 |
변수 다음에 ^ 기호 사용
4.7 가 변 형 (Variant type)
- 가변형은 실행시 임의의 자료형을 포함할 수 있는 자료형이다.
즉>프로그램이 실행중일 때, 가변형의 변수들은 정수형,실수형,문자열형,대수형등의 값을 가질수있다.
- 자료형의 변수들을 대입할 수 있다.
4.7.A 선언방법
4.7.B 변수 대입 방법
var
V1, V2 : variant;
I : Integer
S : String;
I := 100;
S := '-100';
V1 := I ;
V2 := S; |