Difference between revisions of "Basic Pascal Tutorial/Chapter 5/Multidimensional arrays"

From Free Pascal wiki
Jump to navigationJump to search
m (bypass language bar/categorization template redirect [cf. discussion])
 
(10 intermediate revisions by 7 users not shown)
Line 1: Line 1:
 +
{{Basic Pascal Tutorial/Chapter 5/Multidimensional arrays}}
 +
{{TYNavigator|Chapter 5/1-dimensional arrays|Chapter 5/Records}}
 +
 
5D - Multidimensional Arrays (author: Tao Yue, state: unchanged)
 
5D - Multidimensional Arrays (author: Tao Yue, state: unchanged)
  
 
You can have arrays in multiple dimensions:
 
You can have arrays in multiple dimensions:
<font color="#006699"><strong>type</strong></font>
+
 
    datatype <font color="#000000"><strong>=</strong></font> <font color="#006699"><strong>array</strong></font> <font color="#000000"><strong>[</strong></font>enum_type1<font color="#000000"><strong>,</strong></font> enum_type2<font color="#000000"><strong>]</strong></font> <font color="#006699"><strong>of</strong></font> datatype<font color="#000000"><strong>;</strong></font>
+
<syntaxhighlight lang=pascal>
 +
type
 +
  datatype = array [enum_type1, enum_type2] of datatype;
 +
</syntaxhighlight>
  
 
The comma separates the dimensions, and referring to the array would be done with:
 
The comma separates the dimensions, and referring to the array would be done with:
a <font color="#000000"><strong>[</strong></font><font color="#ff0000">5</font><font color="#000000"><strong>,</strong></font> <font color="#ff0000">3</font><font color="#000000"><strong>]</strong></font>
+
 
 +
<syntaxhighlight lang=pascal>
 +
a [5, 3]
 +
</syntaxhighlight>
  
 
Two-dimensional arrays are useful for programming board games. A tic tac toe board could have these type and variable declarations:
 
Two-dimensional arrays are useful for programming board games. A tic tac toe board could have these type and variable declarations:
<font color="#006699"><strong>type</strong></font>
+
 
  StatusType <font color="#000000"><strong>=</strong></font> <font color="#000000"><strong>(</strong></font>X<font color="#000000"><strong>,</strong></font> O<font color="#000000"><strong>,</strong></font> Blank<font color="#000000"><strong>)</strong></font><font color="#000000"><strong>;</strong></font>
+
<syntaxhighlight lang=pascal>
  BoardType <font color="#000000"><strong>=</strong></font> <font color="#006699"><strong>array</strong></font><font color="#000000"><strong>[</strong></font><font color="#ff0000">1</font><font color="#000000"><strong>.</strong></font><font color="#000000"><strong>.</strong></font><font color="#ff0000">3</font><font color="#000000"><strong>,</strong></font><font color="#ff0000">1</font><font color="#000000"><strong>.</strong></font><font color="#000000"><strong>.</strong></font><font color="#ff0000">3</font><font color="#000000"><strong>]</strong></font> <font color="#006699"><strong>of</strong></font> StatusType<font color="#000000"><strong>;</strong></font>
+
type
<font color="#006699"><strong>var</strong></font>
+
  StatusType = (X, O, Blank);
    Board <font color="#000000"><strong>:</strong></font> BoardType<font color="#000000"><strong>;</strong></font>
+
  BoardType = array[1..3,1..3] of StatusType;
 +
var
 +
  Board : BoardType;
 +
</syntaxhighlight>
  
 
You could initialize the board with:
 
You could initialize the board with:
<font color="#006699"><strong>for</strong></font> count1 <font color="#000000"><strong>:=</strong></font> <font color="#ff0000">1</font> <font color="#006699"><strong>to</strong></font> <font color="#ff0000">3</font> <font color="#006699"><strong>do</strong></font>
+
 
  <font color="#006699"><strong>for</strong></font> count2 <font color="#000000"><strong>:=</strong></font> <font color="#ff0000">1</font> <font color="#006699"><strong>to</strong></font> <font color="#ff0000">3</font> <font color="#006699"><strong>do</strong></font>
+
<syntaxhighlight lang=pascal>
    Board<font color="#000000"><strong>[</strong></font>count1<font color="#000000"><strong>,</strong></font> count2<font color="#000000"><strong>]</strong></font> <font color="#000000"><strong>:=</strong></font> Blank<font color="#000000"><strong>;</strong></font>
+
for count1 := 1 to 3 do
 +
  for count2 := 1 to 3 do
 +
    Board[count1, count2] := Blank;
 +
</syntaxhighlight>
 
You can, of course, use three- or higher-dimensional arrays.
 
You can, of course, use three- or higher-dimensional arrays.
  
{|style=color-backgroud="white" cellspacing="20"
+
{{TYNavigator|Chapter 5/1-dimensional arrays|Chapter 5/Records}}
|[[1-dimensional_arrays|previous]] 
 
|[[op_contents|contents]]
 
|[[Records|next]]
 
|}
 

Latest revision as of 15:20, 20 August 2022

български (bg) English (en) français (fr) 日本語 (ja) 中文(中国大陆)‎ (zh_CN)

 ◄   ▲   ► 

5D - Multidimensional Arrays (author: Tao Yue, state: unchanged)

You can have arrays in multiple dimensions:

type
  datatype = array [enum_type1, enum_type2] of datatype;

The comma separates the dimensions, and referring to the array would be done with:

a [5, 3]

Two-dimensional arrays are useful for programming board games. A tic tac toe board could have these type and variable declarations:

type
  StatusType = (X, O, Blank);
  BoardType = array[1..3,1..3] of StatusType;
var
  Board : BoardType;

You could initialize the board with:

for count1 := 1 to 3 do
  for count2 := 1 to 3 do
    Board[count1, count2] := Blank;

You can, of course, use three- or higher-dimensional arrays.

 ◄   ▲   ►