首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >返回扩展数组

返回扩展数组
EN

Stack Overflow用户
提问于 2014-06-16 21:48:03
回答 2查看 741关注 0票数 0

我试图以Delphi的VCL形式返回一个扩展数组。守则如下:

代码语言:javascript
运行
复制
function Calc_Er(
  n: Integer; 
  RadioGroup3.ItemIndex : Boolean; 
  K1, K2 : Extended;
  factor1, factor2, p, hh, ten, r : Array of Real; 
  Pa: extended ) : Array of Extended;
begin
    if RadioGroup3.ItemIndex = 0 then
      begin
        if hh[n] < factor1[n] then
          begin
            Er[n] := K2 * (K1 + p[n]);
          end
        else if (hh[n] < factor2[n]) and (hh[n] > factor1[n]) then
          begin
            Er_stack := K2 * (K1 + p[n]);
            Er[n] := (h / 100 + hh[n]) / ((h / 100 / Er_stack[n]) + hh[n] * (ten[n] * h / r[n] + Pa) / Sqr(p + ten[n] * h / r[n] + Pa));
          end
        else
          begin
            Er[n] := Sqr(p[n] + Pa + ten[n] * h / r[n]) / (ten[n] * h / r + Pa);
          end;
      end
    else
      begin
        Er[n] := K2 * (K1 + p[n]);
      end;
end;

它将RadioGroup3显示为“未声明标识符”或“缺失参数类型”,尽管我在整个代码中都使用过它。我无法理解这个错误。请看一看!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-06-16 22:29:51

一般来说,我了解到您从来不想使用构造“数组.”在参数列表或函数的返回类型中。

首先声明类似的内容:

代码语言:javascript
运行
复制
type
  TExtArray = array of extended;
  TRealArray = array of real;

然后用这些代替“扩展数组”和“实数组”。

您还需要对动态数组调用SetLength,包括结果。

正如其他人所提到的,"RadioGroup3.ItemIndex“不能用作函数中的参数,不管它是否正确键入。只需传递一个整数值。

票数 6
EN

Stack Overflow用户

发布于 2014-06-16 23:02:12

David的回答基本上是正确的,但我应该指出,如果这是Delphi,您应该将其声明为TArray<extended>。这样就可以节省今后各种兼容性问题。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24252791

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档