判斷數組的數據類型?數組類型是具有相同類型的元素按一定的順序組成的序列數組中數據元素被順序安排在内存中一段連續的區域,可以通過數組名來訪問在Object Pascal中數組分為靜态數組和動态數組,我來為大家講解一下關于判斷數組的數據類型?跟着小編一起來看一看吧!
數組類型是具有相同類型的元素按一定的順序組成的序列。數組中數據元素被順序安排在内存中一段連續的區域,可以通過數組名來訪問。在Object Pascal中數組分為靜态數組和動态數組。
靜态數組在程序初始化時必須分配内存單元,明确數組的大小和元素的數據類型。而動态數組在定義和聲明時隻指定數組的類型,而不指定數組的大小,在程序運行時動态地開辟内存空間。
本節我們介紹靜态數組的使用。
5.1一維數組的定義數組通常分為一維、二維和多維數組。一維數組的定義格式:
type
<數組類型名> = array[<下标類型>] of <基類型>;
如:
type
One2TenArray = array[1..10] of Integer;
上面的語句定義了One2TenArray數組類型,其元素下标從1到10,每個元素的類型為整型。
在Object Pascal中:
舉例如下:
type
Color = (red, green, blue, yellow, black, white);
Ten = 0..10;
ColorArray = array[Color] of integer;
TenArray = array[Ten] of Color;
數組變量的聲明與其他變量的聲明相同,如:
var
a1, a2: ColorArray;
c1, c2: TenArray;
也可以直接聲明,如:
var
a1, a2: array[0..10] of Real;
sa: array[Boolean] of String;
使用數組名加方括号,方括号中是數組元素的下标值來訪問。如:
a1[3]
sa[True]
在Object Pascal中:
在Object Pascal中,标準函數Low和High,可以返回數組的最小下标值和最大下标值;Length函數可以返回數組的長度。
一維數組的應用示例:産生10個随機數,計算10個随機數的最大值、最小值、和、平均數。界面如下圖:
代碼如下:
procedure TForm1.Button1Click(Sender: TObject);
var
a: array[1..10] of integer;
i, sum, max, min: integer;
mean: Real;
begin
// 計算按鈕單擊事件
for i := 1 to 10 do
begin
randomize;
a[i] := random(i * 100);
Memo1.Lines.Add(IntToStr(a[i]))
end;
sum := 0;
max := a[1];
min := a[1];
for i := 1 to 10 do
begin
sum := sum a[i];
if a[i] > max then max := a[i];
if a[i] < min then min := a[i];
end;
mean := sum / Length(a);
Edit1.Text := IntToStr(sum);
Edit2.Text := FloatToStr(mean);
Edit3.Text := IntToStr(max);
Edit4.Text := IntToStr(min);
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
// 清除按鈕單擊事件
Memo1.Lines.Clear;
Edit1.Text := '';
Edit2.Text := '';
Edit3.Text := '';
Edit4.Text := '';
end;
二維靜态數組是指一個數組中的元素又是一個一維數組,定義格式:
type
<數組類型名> = array[<下标類型1>] of array[<下标類型2>] of <基類型>;
也可以采用如下格式:
type
<數組類型名> = array[<下标類型1, 下标類型2>] of <基類型>;
如:
type
TIArr = array[1..10] of array[1..10] of integer;
TDoubleArr = array[1..10, 1..10] of Real;
var
i1: TIarr;
d1: TDoubleArr;
m1: array [1..5,1..10] of real;
示例:輸出九九乘法表,界面如下圖:
代碼如下:
procedure TForm1.Button1Click(Sender: TObject);
const
SPACE8 = ' ';
SPACE10 = ' ';
var
a: array [1..9] of array [1..9] of integer;
i, j: integer;
s: string;
begin
for i := 1 to 9 do
for j := 1 to 9 do
a[i,j] := 0;
for i := 1 to 9 do
for j := 1 to i do
a[i,j] := i * j;
s := SPACE10;
for i := 1 to 9 do
s := s inttostr(i) SPACE10;
Memo1.Lines.Add(s);
s := '';
for i := 1 to 9 do
begin
s := s inttostr(i) SPACE8;
for j := 1 to i do
begin
if a[i,j] = 0 then continue;
if a[i,j] < 10 then
s := s ' ' inttostr(a[i,j]) SPACE8
else
s := s inttostr(a[i,j]) SPACE8;
end;
Memo1.Lines.Add(s);
s := '';
end;
end;
多維靜态數組的一般定義格式:
type
<數組類型名> = array[<下标類型1, 下标類型2, ..., 下标類型n>] of <基類型>;
如:
type
TW3 = array of [1..10, 1..10, 1..10] of integer;
var
a: TW3
更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!