Difference between revisions of "Array"
(Static and Dynamic array sections) |
(one-dimensional/multidimensional) |
||
Line 2: | Line 2: | ||
An '''array''' is a type that groups a number of [[Variable|variables]] of the same type. Examples are an array of [[Char|char]], an array of [[Integer|integer]], and an array of [[Real|real]]. In fact, any type, including user defined types, may be used in an array. However, the elements of an array are always of the same type. Different types cannot be grouped into an array. For this purpose, see [[Record|record]]s. | An '''array''' is a type that groups a number of [[Variable|variables]] of the same type. Examples are an array of [[Char|char]], an array of [[Integer|integer]], and an array of [[Real|real]]. In fact, any type, including user defined types, may be used in an array. However, the elements of an array are always of the same type. Different types cannot be grouped into an array. For this purpose, see [[Record|record]]s. | ||
+ | |||
+ | Arrays reflect the mathematical concept of | ||
+ | * [[vector]]s (one-dimensional array) and | ||
+ | * matrices (two-dimensional array) | ||
==Static Arrays== | ==Static Arrays== | ||
Line 17: | Line 21: | ||
'''startindex''' must be less than or equal to '''endindex''', and both must resolve to an integer constant, either an integer value or a [[Const|const]] value that is an integer. Either or both numbers may be negative or zero. | '''startindex''' must be less than or equal to '''endindex''', and both must resolve to an integer constant, either an integer value or a [[Const|const]] value that is an integer. Either or both numbers may be negative or zero. | ||
− | + | ===One-dimensional array=== | |
− | + | One-dimensional array example: | |
<syntaxhighlight> | <syntaxhighlight> | ||
Line 28: | Line 32: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
− | + | ===Multidimensional array=== | |
+ | [[Multidimensional arrays]] are supported such as [x..y,z..t] and so on. | ||
+ | |||
+ | Multidimensional array example: | ||
<syntaxhighlight> | <syntaxhighlight> | ||
Line 38: | Line 45: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
==Dynamic Arrays== | ==Dynamic Arrays== | ||
If it is not possible to know the exact number of array elements needed at the time of the program compilation, the [[Dynamic array|dynamic array]] type can be used. A dynamic array can grow or shrink in size during program execution. | If it is not possible to know the exact number of array elements needed at the time of the program compilation, the [[Dynamic array|dynamic array]] type can be used. A dynamic array can grow or shrink in size during program execution. | ||
+ | |||
+ | ==Element Access== | ||
+ | To access an array element you need to include the element position between brackets ([]) along with the name of the array variable. The element can then be used simple variable. But if you want to use parameters you MUST use a structure because else it will cause errors or bugs... (I do not understand, what is meant here). | ||
+ | |||
+ | <syntaxhighlight> | ||
+ | Var | ||
+ | my_array : array[1..3] of Integer; | ||
+ | my_matrix : array[1..5,1..5] or Integer; | ||
+ | some_value : Integer; | ||
+ | ... | ||
+ | begin | ||
+ | my_array[2] := a + 2; | ||
+ | my_matrix[2,3] := some_value; | ||
+ | ... | ||
+ | some_value := my_array[2]; | ||
+ | some_value := my_matrix[4,3]; | ||
+ | end. | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | |||
{{Data types}} | {{Data types}} | ||
[[Category:FPC]] | [[Category:FPC]] |
Revision as of 09:15, 12 July 2016
│
Deutsch (de) │
English (en) │
español (es) │
suomi (fi) │
français (fr) │
Bahasa Indonesia (id) │
日本語 (ja) │
русский (ru) │
中文(中国大陆) (zh_CN) │
An array is a type that groups a number of variables of the same type. Examples are an array of char, an array of integer, and an array of real. In fact, any type, including user defined types, may be used in an array. However, the elements of an array are always of the same type. Different types cannot be grouped into an array. For this purpose, see records.
Arrays reflect the mathematical concept of
- vectors (one-dimensional array) and
- matrices (two-dimensional array)
Static Arrays
The declaration works similar to that for simple types, but you need to add the number of elements via an index range, as well as the array element type.
program
...
var
variablename: array [startindex..endindex] of type;
begin
...
startindex must be less than or equal to endindex, and both must resolve to an integer constant, either an integer value or a const value that is an integer. Either or both numbers may be negative or zero.
One-dimensional array
One-dimensional array example:
type
simple_integer_array = array [1..10] of integer;
var
Numbers: simple_integer_array;
Multidimensional array
Multidimensional arrays are supported such as [x..y,z..t] and so on.
Multidimensional array example:
type
more_complex_array = array [0..5,1..3] of extended;
var
specialmatrix: more_complex_array;
Dynamic Arrays
If it is not possible to know the exact number of array elements needed at the time of the program compilation, the dynamic array type can be used. A dynamic array can grow or shrink in size during program execution.
Element Access
To access an array element you need to include the element position between brackets ([]) along with the name of the array variable. The element can then be used simple variable. But if you want to use parameters you MUST use a structure because else it will cause errors or bugs... (I do not understand, what is meant here).
Var
my_array : array[1..3] of Integer;
my_matrix : array[1..5,1..5] or Integer;
some_value : Integer;
...
begin
my_array[2] := a + 2;
my_matrix[2,3] := some_value;
...
some_value := my_array[2];
some_value := my_matrix[4,3];
end.
simple data types |
|
---|---|
complex data types |