delphi二维数组如何定义
答案:3 悬赏:20
解决时间 2021-01-14 09:21
- 提问者网友:焚苦与心
- 2021-01-13 12:59
delphi二维数组如何定义
最佳答案
- 二级知识专家网友:拾荒鲤
- 2021-01-13 13:17
在 delphi (Object Pascal 语言)中,使用 array 关键字进行数组定义。
如果需要定义二维数组可以采取以下定义形式:
一、静态数组定义
静态数组定义,通常用于数组元素的数目确定的情况。定义形式如下:
示例:
type
//定义二维数组类型
TMultiArr = array[1..3,1..3] of string;
var
MultiArr: TMultiArr;
//定义 行12*列12 的 Integer 数组
IntArr: array[1..12] of array[1..12] of Integer;
//定义 行5*列5 的 string 数组
StrArr: array[1..5,1..5] of string;
二、动态数组定义
动态数组常用于当数组的元素数目不确定的时候,其定义形式如下:
SamArr: array of array of Integer; //定义二维数组,数组元素不确定
type TMessageGrid = array of array of string; //定义二维数组类型,数组元素不确定
var Msgs: TMessageGrid; //声明一个二维数组类型变量
二维动态数组的元素数目,可以通过 SetLenth 来动态指定,示例代码如下:
procedure TForm1.Button3Click(Sender: TObject);
type TMultiArr = array of array of string;
var
a: TMultiArr;
I, J: Integer;
s: string;
begin
SetLength(a, 10);
for I := Low(a) to High(a) do
begin
SetLength(a[I], I);
for J := Low(a[I]) to High(a[I]) do
a[I, J] := IntToStr(I) + ',' + IntToStr(J) + ' ';
end;
for I := Low(a) to High(a) do
begin
s := '';
for J := Low(a[I]) to High(a[I]) do
s := s + ' ' + a[I, J];
Memo1.Lines.Add(s);
end;
end;
代码运行截图:
如果需要定义二维数组可以采取以下定义形式:
一、静态数组定义
静态数组定义,通常用于数组元素的数目确定的情况。定义形式如下:
示例:
type
//定义二维数组类型
TMultiArr = array[1..3,1..3] of string;
var
MultiArr: TMultiArr;
//定义 行12*列12 的 Integer 数组
IntArr: array[1..12] of array[1..12] of Integer;
//定义 行5*列5 的 string 数组
StrArr: array[1..5,1..5] of string;
二、动态数组定义
动态数组常用于当数组的元素数目不确定的时候,其定义形式如下:
SamArr: array of array of Integer; //定义二维数组,数组元素不确定
type TMessageGrid = array of array of string; //定义二维数组类型,数组元素不确定
var Msgs: TMessageGrid; //声明一个二维数组类型变量
二维动态数组的元素数目,可以通过 SetLenth 来动态指定,示例代码如下:
procedure TForm1.Button3Click(Sender: TObject);
type TMultiArr = array of array of string;
var
a: TMultiArr;
I, J: Integer;
s: string;
begin
SetLength(a, 10);
for I := Low(a) to High(a) do
begin
SetLength(a[I], I);
for J := Low(a[I]) to High(a[I]) do
a[I, J] := IntToStr(I) + ',' + IntToStr(J) + ' ';
end;
for I := Low(a) to High(a) do
begin
s := '';
for J := Low(a[I]) to High(a[I]) do
s := s + ' ' + a[I, J];
Memo1.Lines.Add(s);
end;
end;
代码运行截图:
全部回答
- 1楼网友:天凉才是好个秋
- 2021-01-13 14:26
两种形式,任选其一,例如:
aMatrix : array[1..10] of array[1..50] of Real;
bMatrix : array[1..10, 1..50] of Real;
aMatrix : array[1..10] of array[1..50] of Real;
bMatrix : array[1..10, 1..50] of Real;
- 2楼网友:夜余生
- 2021-01-13 14:03
a: array [0..1] of array [0..9] of integer;
或
a: array of array of integer;
或
a: array of array of integer;
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯