2008. 10. 20. 16:58ㆍDelphi
2장. 프로그래밍 기본 요소
1. 기본 자료형
구분 |
자료형 |
크기 |
범위 |
정수형 |
Shortint |
1 |
-128 ~127 |
Integer |
2 |
-32768~32767 | |
LongInt |
4 |
-2147483648~2147483647 | |
Byte |
1 |
0~255 | |
Word |
2 |
0~65535 | |
실수형 |
Real |
6 |
2.9*10E-39~1.7*10E38 |
Single |
4 |
1.5*10E-45~3.4*10E38 | |
Double |
8 |
5.0*10E-324~1.7*10E308 | |
Extended |
10 |
3.4*10E-4932~1.1*10E4932 | |
Comp |
8 |
-2*10E63+1~2*10E63-1 | |
Currency |
8 |
-922337203685477.5808~ |
예제)
|
참고사항)
ㄱ)주석문
시작기호 |
끝기호 |
설명 |
{ |
} |
{}기호 사이의 모든 내용은 컴파일되지 않습니다. |
(* |
*) |
{}기호 사이의 모든 내용은 컴파일되지 않습니다. |
// |
|
한 줄이 주석문으로 처리되어 컴파일되지 않습니다. |
ㄴ) ; (세미콜론)
한줄이 끝났음을 알려주는 기호입니다.코드가 길어질 때 여러 라인에 걸쳐서 작성할 수 있도록 해줍니다. 단순문을 구분합니다.
ㄷ) .(점)
유닛 혹은 프로그램의 끝이란 것을 표시하기 위해서 사용됩니다.
ㄹ)begin..end;
코드의 한 단위를 싸서 다른 단위와 구분하기 위해서 사용합니다. 즉 복합문을 한 블록으로 싸기 위한 것입니다.
예제)
if x=7 then |
자주 사용되는 루틴1)
함수 |
설명 |
예제 |
Low(X) |
X의 범위중 가장 최소값을 리턴합니다. |
begin |
High(X) |
X의 범위중 가장 최대값을 리턴합니다. | |
Ord(X) |
X의 서수값을 리턴합니다. |
|
Pred(X) |
이전값을 리턴합니다. |
|
Succ(X) |
다음값을 리턴합니다. |
|
Dec(X) |
x값을 하나 감소시킵니다. |
|
Inc(X) |
x값을 하나 증가시킵니다. |
|
Abs(X) |
x의 절대값을 리턴합니다. |
I=Abs(-2.3); {I=2.3}
|
ArcTan(X) |
X의 arctan값을 리턴합니다. |
|
Cos(X) |
X 의 코사인 값을 리턴합니다. |
|
Exp(X) |
x의 지수값을 리턴합니다. |
var S:string; |
Frac(X) |
x의 소수점 이하 부분을 리턴합니다. |
|
Int(X) |
실수 x의 정수부분을 리턴합니다. |
var R:Real; begin |
Ln(X) |
x의 자연로그 값을 리턴합니다. |
var |
Pi |
3.1415926... |
|
Round(X) |
x의 반올림 혹은 반내림값을 리턴합니다. |
Label1.caption:=FloatToStr(1.6); |
Sin(X) |
x의 사인값을 리턴합니다. |
|
Sqr(X) |
x의 제곱값을 리턴합니다. |
|
Sqrt(X) |
X의 제곱근값을 리턴합니다. |
|
Trunc(X) |
실수형 x의 값에 대해서 소수점 부분을 잘라내고 정수부분만 리턴합니다. |
|
자주 사용되는 루틴2)
함수 |
기능설명 |
예제 |
concat(s1,s2,s3) |
문자열들을 순서대로 합쳐서 리턴합니다. |
s:=concat('Hot','Dog'); |
CompareStr(s1,s2) |
대소문자를 구분해서 스트링을 비교합니다. |
var |
CompareText(s1,s2) |
서수값에 의해 스트링을 비교하여 대소문자를 구분하지 않습니다. |
var |
Copy(s,pos,len) |
문자열 s에서 pos위치부터 시작해서 len길이 만큼 리턴합니다. |
|
Delete(s,pos,len) |
문자열 s에서 pos위치부터 시작해서 len길이 만큼 지웁니다. | |
FmtStr |
형식화된 스트링을 모읍니다. |
|
Format |
스트링을 형식화합니다. |
|
Insert(src,tgt,pos) |
문자열 tgt의 pos위치에서부터 문자열 src를 삽입합니다. |
s:='8931387'; |
Length(s) |
문자열 s의 길이를 리턴합니다. |
|
LowerCase(s) |
문자열 s를 소문자로 바꿔줍니다. |
|
Pos(substring,s) |
문자열 s에서 substring을 찾아 시작되는 첫 위치값을 리턴합니다. |
s:=' 123.4'; while Pos(' ',s)>0 do S[Pos(' ',s)]:='0';{공백을 0으로 바꾸기} |
SetLength(s,newlen) |
동적으로 문자열s의 길이를 다시 지정합니다. |
|
Str(x,s) |
정수타입을 문자열 변수로 변환합니다. |
var |
StringOfChar(S,n) |
문자S를 주어진 n만큼 리턴합니다. |
S:=StringOfChar('ABC',3); |
StrPas |
널종료 스트링을 파스칼 스트링으로 변환합니다. |
C나 C++와의 호환성 때문에 문자열 끝에 #0혹null을 붙여줍니다. |
StrUpper |
문자열을 대문자로 변환합니다. |
|
StrLower |
문자열을 소문자로 변환합니다. |
|
UpperCase |
A부터z까지의 아스키 소문자를 대문자로 전환합니다. |
|
Val(s,v,code) |
문자열을 대응되는 숫자로 전환합니다. |
|
2. 구조화된 자료형
1) 배열
type |
2) set
동일한 타입의 여러 요소들이 모여 있는 집합?입니다.
integer,Boolean,Char,열거형, subrange 형만 가능합니다.
begin |
3) Record
다음 예제를 보시면 쉽게 이해될 것입니다.
DB 테이블의 레코드라고 이해하시면 될 것 같습니다.
var begin
|
3. 기타 자료형
1) Variant(가변형)
자료형을 명확히 설정되지 않을 때 사용합니다.
다음 예를 보세요.
var |
2) 사용자 정의 자료형
a) 열거형
Procedure Tform1.Button1Click(Sender: Tobject); |
b) subrange타입
|
3) procedural 타입
a) procedural 타입이란?
procedural타입은 프로시저와 함수를 변수에 할당될 수 있고 파라미터로서 넘겨질 수 있는 객체로 취급할 수 있게 해주는 타입입니다. 전역프로시저 포인터와 매소드 포인터 두 범주가 있습니다. 전역 프로시저 포인터는 Object절 없이 선언된 procedural타입입니다. 전역 프로시저 타입은 전역 프로시저 혹은 함수를 참조할 수 있고 전역 프로시저 혹은 함수의 주소 값을 저장하고 있는 포인터입니다. 전역 프로시저 포인터의 예는 다음과 같습니다.
|
메소드 포인터는 Object 절을 사용해서 선언된 procedural타입입니다. 메소드 포인터는 한 객체의 메소드(프로시저 혹은 함수)를 참조할 수 있고 두 개의 포인터로서 엔코딩됩니다. 첫 포인터는 메소드의 주소 값을 저장하고 두번째 포인터는 메소드가 속한 객체에 대한 참조를 저장합니다.
|
b) Procedural 값
Nil, procedural 타입에 대한 변수 참조, 전역 프로시저 혹은 함수 식별자(identifier), 메소드 지정자.
예를 들면,
|
변수 MathFunc 와 Onclick 은 다음과 같이 값을 할당할 수 있습니다.
MathFunc := Tan;
Onclick:= MainForm.ButtonClick;
그리고 다음과 같이 호출될 수 있습니다.
X:= MathFunc(X); {X:=tan(X)와 동일}
OnClick(Self); {MainForm.ButtonClick(Self)와 동일}
값이 할당되었는지를 알아보기 위해서는 Assigned 함수를 사용합니다.
4) 변수의 종류와 범위
전역변수 |
지역변수 |
var Implementation
|
|
5) Type Cast(형변환)
루틴 |
설명 |
CurrToStr |
Currency 값을 스트링으로 변환해서 리턴합니다. |
FloatToDecimal |
실수형 값을 Decimal값으로 변환합니다. |
FloatToStr |
실수형 값을 스트링형으로 변환합니다. |
IntToStr |
정수형을 스트링으로 변환합니다. |
StringToWideChar |
Ansi스트링을 유니 스트링으로 변환합니다. |
StrToCurr |
스트링을 Currency 값으로 변환합니다. |
StrToFloat |
스트링값을 실수형으로 변환합니다. |
StrToInt |
스트링값을 정수형으로 변환합니다. |
4. 연산자
1) 대입연산자
:= (..의 값은 ..이다.)
= (같다.)
2) 산술연산자
연산자 |
연산 |
연산항의 데이터 타입 |
연산결과 |
+ |
더하기 |
|
|
- |
빼기 |
|
|
* |
곱하기 |
|
|
/ |
나누기 |
integer/integer |
Real (에러조심) |
Div |
몫 |
|
|
Mod |
나머지 |
|
|
3) 관계연산자
연산자 |
연산 |
= |
같다. |
<> |
같지 않다. |
< |
작다 |
> |
크다 |
<= |
작거나 같다 |
>= |
크거나 같다 |
4) 논리연산자
연산자 |
설명 |
Not |
아니다(부정) |
And |
그리고(둘다) |
Or |
이거나(둘중에 아무거나) |
Xor |
양쪽이 같으면 거짓, 다르면 참. |
5) is 와 as
구분 |
is |
as |
쓰임 |
동적으로 형을 확인 (true|false 리턴) |
형을 변환(형을 리턴) |
예제 |
|
5. 날짜와 시간처리
델파이는 날짜와 시간값을 저장하는데 TdateTime 자료형을 제공합니다. 도움말을 참조하십시오.
6. 상수
선언 |
예제 |
Const |
… type |
출처 : http://www.webax.kr/bbs/index.php?bbsMode=view&id=12&page=4&code=tech_pds