引发CONSTRAINT_ERROR:polynom.adb:85索引检查失败

时间:2015-03-04 13:58:31

标签: ada

我创建了一个像这样的数组:

type coef_list是Integer的数组(整数范围0..50);

但是当我调用此函数时会显示该消息:

t:=次(r,q); - 乘以两个多项。

为什么呢?我需要一个动态数组?与Ada.Vectors但如何使用它?如果有任何简单的例子来指导我,请分享? THX

1 个答案:

答案 0 :(得分:1)

Ada程序(以及类似的功能)需要这种结构:

procedure Foo is
   -- declarations goes here
begin
   -- code goes here
end Foo;

在您的代码中,polynomialsMain都缺少begin。 您还在value1 : integer := 1; begin之后添加了声明(print_polynoms等),这是非法的。

您的代码存在其他问题:

  1. 您重新定义了内置类型String
  2. 类型zero未在任何地方定义。
  3. 类型String_Pointer未在任何地方定义。
  4. 此语法没有意义:type Polynom is new Integer(p,p1,p2,p3,p4,q,q1,q2);从不使用类型Polynom。为什么要申报呢?
  5. 变量zero未在任何地方定义。
  6. 为什么这里有一个内部程序Main?无论如何它什么都不做。永远不会被称为。可能最好将print_polynoms移出Main,直接作为polynomials的内部函数。
  7. polynomials程序不执行任何操作,print_polynoms永远不会被调用。
  8. 此外,您粘贴的代码似乎与您尝试编译的代码不同。 (main未在第9行宣布