一、數據類(lèi)型:
(1) 基本數據類(lèi)型:
a、 整數類(lèi)型: (通用類(lèi)型<32位>:Integer-有符號;Cardinal-無(wú)符號)
具體:
有符號:Shortint<8位>,Smallint<16位>,Longint<32位 >
無(wú)符號:Byte<8位>,Word<16位>,LongiWord<32位 >
b、字符類(lèi)型: (通用類(lèi)型<8位>:Char -與AnsiChar等同)
具體:
AnsiChar<8位> :主要存放Ansi字符
WideChar<16位>:主要存放Unicode字符
c、布爾類(lèi)型: (通用類(lèi)型<8位>:Boolean-與ByteBool等同)
具體:
ByteBool<8位>,WordBool<16位>,LongBool<32位>
不同的布爾類(lèi)型主要用于魚(yú)其它編程語(yǔ)言及不同windows系統兼容。
d、枚舉類(lèi)型:
定義:type 枚舉類(lèi)型標識符=(key1[=val1],.。。。,keyn[=valn]) :n<=255
如果給某些key指定了值,則未指定值的key是前一個(gè)key值加1;
如果全部默認不指定值,則key1值為0,往后逐個(gè)加1。
e、子界類(lèi)型:
定義:type 子界類(lèi)型標識符=下界 ..下界
如:type SubInt=1..3 0;表示 1~30的整數
type SubChar=‘a(chǎn)‘..‘z‘;表示字符
※注:1、以上四種類(lèi)型稱(chēng)為有序類(lèi)型,即除第一個(gè)數為都有先行數、除最后一個(gè)數外都有后繼數。在這里
(計算機里),整數是有限的。有序類(lèi)型的數都有一個(gè)序號,稱(chēng)為序數。整數的序數為其本身,其他類(lèi)型第一
個(gè)數序數為0,依次遞增。
2、子界類(lèi)型上、下界必須是有同一有序類(lèi)型,且上界序數大于下界序數。
f、浮點(diǎn)類(lèi)型: (通用類(lèi)型<8字節>:Real-與Double等同)
具體:
Double<8字節>,Real48<6字節>Single<4字節>,
Extended<10字節>,Comp<8字節>,Currency<8字節>
g、字符串類(lèi)型: (通用類(lèi)型:String-與AnsiString等同)
具體:
ShortString :最多存放255個(gè)字符,第一個(gè)自己存放字符個(gè)數,不以NULL結尾
AnsiString :存放Ansi字符,以NULL結尾
WideString:存放Unicode字符,以NULL結尾
h、時(shí)間、日期類(lèi)型:TDateTime -實(shí)際是浮點(diǎn)類(lèi)型的別稱(chēng)
(2)復雜數據類(lèi)型:
a、指針類(lèi)型:
定義:type 指針類(lèi)型標識符=^基本類(lèi)型;
內在分配:New() 內存釋放:Destroy()
對于Pointer 和PChar 用GetMem()或AllocMem()分配內存,用FreeMem()釋放內存
分配內存后,就可以當成基本類(lèi)型一樣使用:指針類(lèi)型標識符^
實(shí)際上常如下運用指針:
var 變量標識符:^基本類(lèi)型;
為變量分配內存后就可以將(變量標識符^)當成普通變量使用。
b、記錄類(lèi)型:
定義:type 記錄類(lèi)型標識符=Record
字段1:類(lèi)型;
...
字段n:類(lèi)型;
end;
c、集合類(lèi)型:
定義: type 集合類(lèi)型標識符=Set of 基本類(lèi)型的子集或子界類(lèi)型;(<=255個(gè)元素)
d、變體(通用)類(lèi)型: Variant;
(3)數組類(lèi)型:
a、一維數組:
定義:type 數組標識符=Array[下標下限..下標上限] of 基本類(lèi)型;
b、多位數組:
定義: type 數組標識符=Array[下限1..上限1,...,下限n..上限n] of 基本類(lèi)型;
c、動(dòng)態(tài)數組(變量):
var 標識符:array of 基本類(lèi)型;
SetLength(標識符,個(gè)數);//分配空間
標識符:=nil;//釋放
二、語(yǔ)句
首先要說(shuō)一下begin ... end; 相當于c或者c++中的{ ... }。
(1)聲明語(yǔ)句
常量:const 常量標識符[:類(lèi)型]=常值;
變量:var 變量標識符:數據類(lèi)型;
(2)表達式語(yǔ)句
由運算符組成的合法語(yǔ)句
運算符優(yōu)先級: 運算符 優(yōu)先級
@ not 1 (最高)
*,/,div,mod,and,shl,shr,as, 2
+,-,or,xor 3
>,<,>=,<=,<>,=,in,is, 4 (最低)
(3) with ... do ... end 語(yǔ)句
主要在操作記錄類(lèi)型或組件時(shí)使用。
示例:type people=Record //定義記錄people
name:string;
addr:string;
age:integer;
sex:string;
end;
var Me:People; //定義people型的變量
with Me do
begin
name:=‘Paul‘;
addr:=‘Guangzhou‘;
age:=23;
sex:=‘male‘;
end;
(4)goto 語(yǔ)句
現在所有聲音都是說(shuō)要減少goto語(yǔ)句是使用,所以盡量少用為是。
示例:
Label MyLabel; //用Label保留字聲明MyLabel
MyLabel: //標記
、、、 //其它語(yǔ)句
goto MyLabel; //跳轉到MyLabel 處
(5)條件語(yǔ)句
a、if ... then ... 語(yǔ)句
if 布爾表達式 then ..;
或 if 布爾表達式 then
begin
...
end;
其它格式:
if ... then... else ...;
if ... then .. else if ... then ... else ...;
b、case ... of 語(yǔ)句
case 表達式 of
值1:...
值2:...
...
值n:...
end;
6)循環(huán)語(yǔ)句
a、for ... to ... do 語(yǔ)句
for 循環(huán)變量:=初值 to 終值 do ...;
或 for 循環(huán)變量:=初值 to 終值 do
begin
。。。
end;
b、while ... do 語(yǔ)句
while 布爾表達式 do ...;
或 while 布爾表達式 do
begin
...
end;
c、repeat ... until 語(yǔ)句
repeat ... until 布爾表達式;
(7)循環(huán)的中斷
break: 循環(huán)結束
continue:結束本次循環(huán)
goto:(略)
exit:退出當前函數或過(guò)程
halt():終止整個(gè)程序,參數為整數
RunError():(略)
三、過(guò)程與函數
(1) 過(guò)程(無(wú)返回值)
聲明: procedure <過(guò)程名> (<參數列表>);
(2)函數(有返回值)
聲明: function <函數名> (<參數列表>):返回值類(lèi)型;
用Result 或 <函數名>返回函數值;
即在函數中用 Result:=函數值;或 <函數名>:=函數值;返回;
二、語(yǔ)句
首先要說(shuō)一下begin ... end; 相當于c或者c++中的{ ... }。
(1)聲明語(yǔ)句
常量:const 常量標識符[:類(lèi)型]=常值;
變量:var 變量標識符:數據類(lèi)型;
(2)表達式語(yǔ)句
由運算符組成的合法語(yǔ)句
運算符優(yōu)先級: 運算符 優(yōu)先級
@ not 1 (最高)
*,/,div,mod,and,shl,shr,as, 2
+,-,or,xor 3
>,<,>=,<=,<>,=,in,is, 4 (最低)
(3) with ... do ... end 語(yǔ)句
主要在操作記錄類(lèi)型或組件時(shí)使用。
示例:type people=Record //定義記錄people
name:string;
addr:string;
age:integer;
sex:string;
end;
var Me:People; //定義people型的變量
with Me do
begin
name:=‘Paul‘;
addr:=‘Guangzhou‘;
age:=23;
sex:=‘male‘;
end;
(4)goto 語(yǔ)句
現在所有聲音都是說(shuō)要減少goto語(yǔ)句是使用,所以盡量少用為是。
示例:
Label MyLabel; //用Label保留字聲明MyLabel
MyLabel: //標記
、、、 //其它語(yǔ)句
goto MyLabel; //跳轉到MyLabel 處
(5)條件語(yǔ)句
a、if ... then ... 語(yǔ)句
if 布爾表達式 then ..;
或 if 布爾表達式 then
begin
...
end;
其它格式:
if ... then... else ...;
if ... then .. else if ... then ... else ...;
b、case ... of 語(yǔ)句
case 表達式 of
值1:...
值2:...
...
值n:...
end;
6)循環(huán)語(yǔ)句
a、for ... to ... do 語(yǔ)句
for 循環(huán)變量:=初值 to 終值 do ...;
或 for 循環(huán)變量:=初值 to 終值 do
begin
。。。
end;
b、while ... do 語(yǔ)句
while 布爾表達式 do ...;
或 while 布爾表達式 do
begin
...
end;
c、repeat ... until 語(yǔ)句
repeat ... until 布爾表達式;
(7)循環(huán)的中斷
break: 循環(huán)結束
continue:結束本次循環(huán)
goto:(略)
exit:退出當前函數或過(guò)程
halt():終止整個(gè)程序,參數為整數
RunError():(略)
三、過(guò)程與函數
(1) 過(guò)程(無(wú)返回值)
聲明: procedure <過(guò)程名> (<參數列表>);
(2)函數(有返回值)
聲明: function <函數名> (<參數列表>):返回值類(lèi)型;
用Result 或 <函數名>返回函數值;
即在函數中用 Result:=函數值;或 <函數名>:=函數值;返回;