二维数组(2-D array)是一张表:有行有列,两个下标。
DECLARE <identifier> : ARRAY[<lower1>:<upper1>, <lower2>:<upper2>] OF <data type>
DECLARE Grid : ARRAY[1:2, 1:3] OF INTEGER
Grid[1,1] ← 1
Grid[1,2] ← 2
Grid[1,3] ← 3
Grid[2,1] ← 4
Grid[2,2] ← 5
Grid[2,3] ← 6
OUTPUT Grid[2,3]
第一个下标是行(row),第二个是列(column)。
嵌套循环遍历表格
每个维度(dimension)一层循环。内层循环走完一整行,外层才前进一步。
DECLARE Grid : ARRAY[1:2, 1:3] OF INTEGER
DECLARE Row, Col : INTEGER
FOR Row ← 1 TO 2
FOR Col ← 1 TO 3
Grid[Row, Col] ← Row * Col
NEXT Col
NEXT Row
FOR Row ← 1 TO 2
FOR Col ← 1 TO 3
OUTPUT "Grid[", Row, ",", Col, "] = ", Grid[Row, Col]
NEXT Col
NEXT Row
⚠️ 内层的 NEXT 闭合内层计数器。把 NEXT Row 写在 NEXT Col 之前就把两层循环交叉了,毫无意义——评分者一眼就看得出来。
常见错误
- 把行和列弄反。
Grid[2,3] 是第 2 行、第 3 列。
- 写成
Grid[Row][Col]。剑桥写一对方括号,里面用逗号。
- 如上所述把
NEXT 两行交叉。