|
- Other types of arrays
- Procedure: Declaring an array parameter
- Passing an array as parameter to a procedure
- WLanguage functions and arrays
- Array of arrays, associative array, queue, stack, list
- Limitations: Elements of an array
- Arrays in the classes
- Adding the content of a structure to an array of structures without using a variable of the structure
Array (Type of variable) In french: Tableau (Type de variable)
An array is a structured type that is used to group a set of elements of the same type. Each element of the array can be accessed by its index.
// Declares an array initialized with the names of days of the week DayArray is array of strings = ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday"] // Handles the array DayArray[2] // Returns "Tuesday"
// Declares an array of integers ValueArray is array of int // Populates the array of integers by adding values Add(ValueArray, 5) Add(ValueArray, 10) Add(ValueArray, 15) // Browses the array values FOR EACH x OF ValueArray // x is successively equal to 5, 10, 15 ... END
// Declares an array of integers ValueArray is array <growth=1> of int // Enlarges the array to insert the value 1: 10 ValueArray[1] = 10 // Enlarges the array to insert the value 2: 20 ValueArray[2] = 20 // Enlarges the array to insert the value 3: 30 ValueArray[3] = 30 // Browses the array values FOR EACH x OF ValueArray // x is successively equal to 10, 20, 30 END
// Declares an array of integers ValueArray is array <growth=N> of int // Enlarges the array to insert the value 1: 10 ValueArray[1] = 10 // Enlarges the array to insert the value 5: 50 // The values 2, 3 and 4 are initialized to 0 ValueArray[5] = 50 // Browses the array values FOR EACH x OF ValueArray // x is successively equal to 10, 0, 0, 0, 50 END
Syntax
Declaring a one-dimensional array
<Array name> is array [<growth>] [ [<Dimension 1>] ] <Type of array elements>
Example:
arrString is array <growth=N> [10] strings
arrInt is array [5] ints
<Array name> is array [<growth>] of [<Dimension>] <Type of array elements>
<Array name>: Name of the array variable to declare. <growth>: Optional mode for enlarging the array:- nothing (by default) or "<growth=0>": the array is not automatically enlarged. For example, a runtime error will occur if the array contains 5 elements and if the program accesses the element 6 or 100.
- "<growth>" or "<growth=1>": the array is automatically enlarged by 1 element. For example, if the array contains 5 elements and if the program accesses the element 6, the array is automatically enlarged to handle the element 6 ; a runtime error will occur if the program accesses the element 100.
- "<growth=N>": the array is automatically enlarged by the number of necessary elements. For example, if the array contains 5 elements and if the program accesses the element 6, the array is automatically enlarged to handle the element 6 ; if the program accesses the element 100, the array is automatically enlarged to handle the element 100. The intermediate elements are initialized with the default value for this type of array elements.
New in version 28 Remark: To enlarge an array with several dimensions, use Dimension. <Dimension>: Optional dimension of the array. This parameter can:- be unspecified or correspond to * or 0: the array is initialized empty.
- correspond to a constant value or to an integer variable: the array is initialized with the specified number of elements. Each element is initialized with the default value of its type.
<Type of array elements>: Type of the elements found in the array. See the different types of variables.
Declaring an array with several dimensions (up to 10)
<Array name> is array of [ [<Dimension 1> [, <Dimension 2>]...[, <Dimension 10>]] ] <Type of array elements>
Example:
arrString is array [10,20] strings
arrInt is array [3,5,2] ints
<Array name> is array of [<Dimension 1> [by <Dimension 2>] ... [by <Dimension 10>]] <Type of array elements> OR <Array name> is array of [<Dimension 1> [, <Dimension 2>]... [, <Dimension 10>]] <Type of array elements>
<Array name>: Name of the array variable to declare. <Dimension 1>...<Dimension 10>: Dimension 1 to 10 of the array. The value of the dimension can correspond to:- * or 0: the dimension is initialized with 0 element.
- a constant value or an integer variable: the dimension is initialized with the specified number of elements. Each element is initialized with the default value of its type.
<Type of array elements>: Type of the elements found in the array. See the different types of variables.
Declaring an array parameter Hide the details
One-dimensional array: <Parameter name> is array of [<Dimension>] <Type of array elements>
Two-dimensional array <Parameter name> is array of <Dimension 1> by <Dimension 2> <Type of array elements>
N-dimensional array <Parameter name> is array of [<Dimension 1> [by <Dimension 2>] ... [ by <Dimension N>]] <Type of array elements>
<Parameter name>: Name of the array parameter to declare. <Dimension n>: <Dimension> may not be specified, it may correspond to * , 0 or to a constant value. <Type of array elements>: Type of the elements found in the array. See the different types of variables. Remark: The elements that make up the array can also be arrays, fixed arrays, associative arrays, queues, stacks or lists.
Referring to an array Hide the details
Referring to an element in a one-dimensional array: <Array name>[Index1] Referring to an element in a two-dimensional array: <Array name>[Index1, Index2] OR <Array name>[index1][index2] Referring to an element in a n-dimensional array: <Array name>[Index1,...,IndexN] OR <Array name>[Index1]...[IndexN]
<Array name>: Name of the array to use. <Index1>: Index of the element for the 1st dimension. <Index2>: Index of the element for the 2nd dimension. <IndexN>: Index of the element for the Nth dimension (N <= 10). Remarks Other types of arrays The Array keyword is used to define an array. Other types of "advanced" arrays are available: Procedure: Declaring an array parameter An array can be passed as parameter to a procedure. For example:
// Adds a customer into the array PROCÉDURE AddCustomer(arrCustomer is array of * CCustomer, sName is string, sInfo is string) // Builds the new customer object c is CCustomer(sName, sInfo) // Adds the object into the array Add(arrCustomer, c)
Remarks: - The type of the elements found in the array passed as parameter must be the same as the one of the declaration.
- The number of dimensions in the array passed as parameter must be the same as the one of the declaration.
- The number of elements found in each dimension of the array passed as parameter must correspond to the declaration:
- if the number of elements for the dimension is *, no check is performed.
- if the number of elements for the dimension is specified, the number of elements must be identical.
- No check is performed during the compilation: checks are performed at runtime.
Passing an array as parameter to a procedure An array can be passed as parameter to a procedure. To do so, use the following syntax:
<Procedure name>(<Array name>)
For example:
SuppArray is array of 10 by 50 strings // Call to the DisplayArray procedure DisplayArray(SuppArray)
WLanguage functions and arrays Several WLanguage functions can be used to handle the arrays. You have the ability to perform sorts, searches, etc. For more details, see Array management functions. Arrays in the classes When copying instances of classes, all the members of the class are copied into the new instance except for the arrays. Therefore, if the value of an array member is modified, this value is modified in all the instances. To get independent arrays in all instances of classes, a local array must be declared as follows:
SystemClass is Class aDefaultArray is local array of 1 int END
Adding the content of a structure to an array of structures without using a variable of the structure If you are using an array of structures with few members, it may be easier to directly add a structure by using the [ ] operator (square brackets). For example, for the following structure:
// Structure to store a letter and its ASCII code STKey is Structure sKey is string nAsciiCode is int END // Array of structures arrKeys is array of STKey
In most cases, content is added by using a variable of a type declared in the structure:
// Temporary structure for the addition stAKey is STKey // Stores the letter A stAKey.sKey = "A" stAKey.nAsciiCode = Asc("A") arrKeys.Add(stAKey)
With the [ ] operator, you get better legibility:
// Stores the letter A arrKeys.Add(["A", Asc("A")])
Related Examples:
|
Unit examples (WINDEV): Using the arrays
[ + ] Using the array type in WLanguage.
|
This page is also available for…
|
|
|
|
|
|
|