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);
提示 这句编写错误
还有我想知道后面的是否有错误
展开
 我来答
wolfy1016
推荐于2016-01-25 · TA获得超过244个赞
知道小有建树答主
回答量:353
采纳率:0%
帮助的人:287万
展开全部
只有全局变量才能赋初始值,而且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.
追问
“0x0049dc8a”指令引用的“0x015af590”内存。该内存不能为“written”
“0x0049f88”指令引用的“0x015af58a”内存。该内存不能为“read”
在每台电脑上都会出现类似的问题,我认为不是电脑的问题 是在编程的时候什么地方出错了。 这个又是怎么回事啊
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
星月小木木
2016-01-15 · TA获得超过3.2万个赞
知道大有可为答主
回答量:2.4万
采纳率:0%
帮助的人:9451万
展开全部
在函数中如果数组的个数不定,可以使用开放数组参数
实参可以接受静态数组和动态数组
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;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
柯南zqtzqt
2012-04-10 · TA获得超过124个赞
知道答主
回答量:144
采纳率:0%
帮助的人:61.8万
展开全部
是错6个吗 你怎能终止循环呢?? 最后一个end后应加。 。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式