怎样给多维数组赋值?(10分)

  • 主题发起人 主题发起人 shaofun
  • 开始时间 开始时间
S

shaofun

Unregistered / Unconfirmed
GUEST, unregistred user!
非常菜的问题:请把下面的C翻译成Pascal
double d1[4][3]={{-1,0,1},{-1,0,0},{0,0,0},{0,0,1}};
 
代码:
type TCube = array[0..1, 0..1, 0..1] of Integer;
const Maze: TCube = (((0, 1), (2, 3)), ((4, 5), (6,7)));
 
Var d1: array[1..4,1..3] of integer;
一个一个赋值;
 
我再贴:
代码:
type

TDigitalFilter=array[0..2,0..2]of SmallInt;

BlurFilter:TDigitalFilter=(
  (  -1,  -1,  -1),
  (  -1,   1,  -1),
  (  -1,  -1,  -1));
 
const
d1: array [0..3,0..2] of real = ((-1,0,1),(-1,0,0),(0,0,0),(0,0,1));
 
不是常量,是变量赋初值!
 
我的写法就是变量!一个一个赋值
pascal里面的变量的定义和赋值要分开
 
一个一个赋值谁不会啊,难道没有精练一点的写法吗?
 
从ObjectPascal的语法解释来看,不支持数组定义时初始化。看来只能一个赋值了。
ConstSection -> CONST (ConstantDecl ';')...
ConstantDecl -> Ident '=' ConstExpr
-> Ident ':' TypeId '=' TypedConstant
VarSection -> VAR (VarDecl ';')...
VarDecl -> IdentList ':' Type [(ABSOLUTE (Ident | ConstExpr)) | '=' ConstExpr]
ConstExpr -> <constant-expression>

 
那么怎样给数组赋值呢,非要一个一个地赋值吗?那多累呀!
 
這個問題一直困著我!
 
const
d1: array [0..3,0..2] of real = ((-1,0,1),(-1,0,0),(0,24,0),(0,0,1));
var
i, j:integer;
d2: array [0..3,0..2] of real;
begin
for i:=0 to high(D1) do
For j:=0 to high(D1) do
D2[i,j]:=D1[i,j];
end;
这样你满意了吧, 你个函数很难吗。才10分。
 
不满意,太绕弯了
难道Pascal连这点事也没办法吗?
 
不知道你要问什么!
 
type
TArr = array [0..3,0..2] of real;
const
d1: TArr = ((-1,0,1),(-1,0,0),(0,24,0),(0,0,1));
var
d2: TArr;
begin
d2 := d1;
end;
 
先定义一个type arr1=array[1..x,1..y] of integer;
var a1,a2:arr1;
begin
a1:=a2;
end.
 
谁说Pascal做不来,都懒得理你这种动不动就扣帽子的人。C好呀,还来研究什么Pascal呀,
靠!
 
我看只能这样了:
progam My1;
type
myarr:array [0..2,0..2] of integer;
const
conArr1:myarr=((1,2,3),(4,5,6),(7,8,9));
var
arr1:myarr;
begin
arr1:=conArr1;
end.
 
var
d1: array[1..4,1..3] of integer = ((-1,0,1),(-1,0,0),(0,0,0),(0,0,1));

不过在Unit里d1需要定义为全局变量
 
谢谢compux,可为什么必须定义为全局变量呢?另加50分继续讨论!
 
后退
顶部