delphi7中的一个数组
delphi7编程时编写了一个不等式b2》=1.6*sqrt(1.3*6*b1/686.4)后在和一个一维数组比较后再输出有效值我的编写是这样的varb1,b2,b3:E...
delphi7编程时 编写了一个不等式 b2》=1.6*sqrt(1.3*6*b1/686.4)后 在和一个一维数组比较后 再输出有效值 我的编写是这样的
var
b1,b2,b3 : Extended;
i:integer;
sarray: array[0..13] of Double = (1.0,1.2,1.4,1.8,2.0,2.2,2.5,2.8,3.0,3.2,3.5,4.0,4.5,5.0);
begin
b1:=StrToFloat(edit6.text) ;
b2:=1.6*sqrt(1.3*b1*6/686.4);
for i:=0 to 13 do
begin
b3:= sarray[i];
if (b2<=b3) then
label31.Caption:=FloatToStr(b3);
break;
end;
end;
请问 我错在哪些地方了?
[Error] zhujiemian.pas(251): Cannot initialize local variables
[错误]zhujiemian.pas(251):不能初始化局部变量
sarray: array[0..13] of Double = (1.0,1.2,1.4,1.8,2.0,2.2,2.5,2.8,3.0,3.2,3.5,4.0,4.5,5.0);
提示 这句编写错误
还有我想知道后面的是否有错误 展开
var
b1,b2,b3 : Extended;
i:integer;
sarray: array[0..13] of Double = (1.0,1.2,1.4,1.8,2.0,2.2,2.5,2.8,3.0,3.2,3.5,4.0,4.5,5.0);
begin
b1:=StrToFloat(edit6.text) ;
b2:=1.6*sqrt(1.3*b1*6/686.4);
for i:=0 to 13 do
begin
b3:= sarray[i];
if (b2<=b3) then
label31.Caption:=FloatToStr(b3);
break;
end;
end;
请问 我错在哪些地方了?
[Error] zhujiemian.pas(251): Cannot initialize local variables
[错误]zhujiemian.pas(251):不能初始化局部变量
sarray: array[0..13] of Double = (1.0,1.2,1.4,1.8,2.0,2.2,2.5,2.8,3.0,3.2,3.5,4.0,4.5,5.0);
提示 这句编写错误
还有我想知道后面的是否有错误 展开
展开全部
只有全局变量才能赋初始值,而且14个值都要赋满
var
sarray: array[0..13] of Double = (1.0,1.2,1.4,1.8,2.0,2.2,2.5,2.8,3.0,3.2,3.5,4.0,4.5,5.0);
一定放到全局变量中。
这个位置就行:
var
Form1: TForm1;
implementation
{$R *.dfm}
var
sarray: array[0..13] of Double = (1.0,1.2,1.4,1.8,2.0,2.2,2.5,2.8,3.0,3.2,3.5,4.0,4.5,5.0);
procedure TForm1.FormCreate(Sender: TObject);
begin
ShowMessage(FloatToStr(sarray[1]));
end;
end.
var
sarray: array[0..13] of Double = (1.0,1.2,1.4,1.8,2.0,2.2,2.5,2.8,3.0,3.2,3.5,4.0,4.5,5.0);
一定放到全局变量中。
这个位置就行:
var
Form1: TForm1;
implementation
{$R *.dfm}
var
sarray: array[0..13] of Double = (1.0,1.2,1.4,1.8,2.0,2.2,2.5,2.8,3.0,3.2,3.5,4.0,4.5,5.0);
procedure TForm1.FormCreate(Sender: TObject);
begin
ShowMessage(FloatToStr(sarray[1]));
end;
end.
追问
“0x0049dc8a”指令引用的“0x015af590”内存。该内存不能为“written”
“0x0049f88”指令引用的“0x015af58a”内存。该内存不能为“read”
在每台电脑上都会出现类似的问题,我认为不是电脑的问题 是在编程的时候什么地方出错了。 这个又是怎么回事啊
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
在函数中如果数组的个数不定,可以使用开放数组参数
实参可以接受静态数组和动态数组
procedure p1(a:array of Byte);
begin
ShowMessage( IntToHex( Integer(@a),2));
ShowMessage(IntToStr(a[0]));
end;
procedure TForm1.btn1Click(Sender: TObject);
var
a:array[0..5] of Byte;
begin
ShowMessage(IntToHex( Integer(@a),2));
p1(a);
end;
function Find(A: array of Char): Integer;
以上函数使用字符数组作为参数传值,其中A:array of Char虽然有着与动态数组
dynamic array相近的形式,但是在这里它并不代表着动态数组。这里A:array of Char
可以使用任意静态或动态数组。
另外,如果一定使A:array of Char为动态数组,则须使用以下形式:
type TDynamicCharArray = array of Char;
function Find(A: TDynamicCharArray): Integer;
例子(e.g.)
function Find(A: array of Char): Integer;
begin
setlength(A,100);//出错,应为setlength只能用于动态数组。
end;
function Find(A: TDynamicCharArray): Integer;
begin
setlength(A, 100);//正确。
end;
实参可以接受静态数组和动态数组
procedure p1(a:array of Byte);
begin
ShowMessage( IntToHex( Integer(@a),2));
ShowMessage(IntToStr(a[0]));
end;
procedure TForm1.btn1Click(Sender: TObject);
var
a:array[0..5] of Byte;
begin
ShowMessage(IntToHex( Integer(@a),2));
p1(a);
end;
function Find(A: array of Char): Integer;
以上函数使用字符数组作为参数传值,其中A:array of Char虽然有着与动态数组
dynamic array相近的形式,但是在这里它并不代表着动态数组。这里A:array of Char
可以使用任意静态或动态数组。
另外,如果一定使A:array of Char为动态数组,则须使用以下形式:
type TDynamicCharArray = array of Char;
function Find(A: TDynamicCharArray): Integer;
例子(e.g.)
function Find(A: array of Char): Integer;
begin
setlength(A,100);//出错,应为setlength只能用于动态数组。
end;
function Find(A: TDynamicCharArray): Integer;
begin
setlength(A, 100);//正确。
end;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
是错6个吗 你怎能终止循环呢?? 最后一个end后应加。 。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询