Problem

2/10

访问数组元素

Theory Click to read/hide

引用数组元素

数组的大部分用处在于它的元素可以单独访问。
这样做的方法是使用索引对元素进行编号。
Index 是指向特定数组元素的值

记住!
PASCAL 中的数组编号从零开始!

(这是强制性的 - 您必须从头开始。记住这一点尤为重要)

访问数组 A 的示例: <前> x := (A[3] + 5) * A[1] //读取A[3]和A[1]的值 A[0] := x + 6 // 将新值写入 A[0] 让我们分析一下处理数组元素的程序。 <前> 变量 i:整数; a:整数数组; 开始    我:= 1;    设定长度(一,5); //创建一个包含 5 个元素的数组      [0] := 23; // 数组的 5 个元素中的每一个(索引从 0 到 4)    一 [1] := 12; // 写一个特定的值     [2] := 7;    一 [3] := 43;     [4] := 51;     a[2] := a[i] + 2 * a[i - 1] + a[2 * i]; // 将索引为 2 的元素的值更改为表达式的结果     // 因为 i=1,所以将变量 i 的值代入我们得到的表达式     // 下一个表达式  a[2] := a[1] + 2*a[0] + a[2];     writeln(a[2] + a[4]); 结尾。
作为运行的结果该程序将索引为 2 和索引 4 的数组元素之和的值等于 116 将出现在屏幕上。从示例中可以看出,我们可以访问数组的任何元素.并且还使用各种公式计算所需的元素数量(例如,在程序 A[i-1] 或 A[2*i] 中,在这些情况下,将计算元素的索引并取决于i.)的值

让我们看一个示例程序 <前> var a:整数数组; 开始    设定长度(一,5);     [5] := 5; a[-1] := 0; 结尾。

因为该数组声明为包含 5 个元素,因此元素将被编号 从 0 到 4。我们看到第6行的程序引用了一个不存在的元素а [5] 并且在第 7 行到同样不存在的 a[-1]。

原来是程序越界了
数组越界正在访问数组中不存在的索引元素。
在这种情况下,程序通常会因运行时错误
而崩溃

 
 

Problem

在第 8 行到第 11 行,将索引 1 到 4 处的数组元素设置为前一个数组元素值的两倍。 
在这个任务中,你不能分配具体的数字,你必须通过名称和索引来引用数组的前一个元素
也就是说,条目 a[1] = 46 将被视为不正确。