- UID
- 2
- 积分
- 2892817
- 威望
- 1396440 布
- 龙e币
- 1496377 刀
- 在线时间
- 13326 小时
- 注册时间
- 2009-12-3
- 最后登录
- 2024-12-26
|
MultiCharts编程-PowerLanguage-Dynamic Array动态数组
第10章 Dynamic Array动态数组
在第9章中说明了一般指定长度的数组定义,有时需要用到动态数组来存计算出的数据值。本章则为动态数组的定义、比较、设定数值范围、排序、求和等给出详细介绍。
Array_Compare | 说明 | 比较源数组和目标数组中的指定起始位置及指定数量的元素是否相同 源数组和目标数组可以是相同或不同的一维数组。 若比较的数组为数值数组,会比较每组元素的数值大小。 若比较的数组为字符串数组,会比较每组元素的ASCII值的大小。 若比较的数组为布林数组,会比较每组元素的布林值是否相同,若不相同时,真(true)大于假(false)。 | 语法 | Array_Compare(源数组,源索引,目标数组,目标索引,元素个数) | 参数 | 源数组——要比较的第一个数组 源索引——数值表达式,指定数组1的开始索引值 目标数组——要比较的第二个数组 目标索引——数值表达式,指定数组2的开始索引值 元素个数——数值表达式,要比较的元素个数 索引从0开始计数 | 返回 | 0——比较的每组元素完全相同; 1——源数组的元素大于目标数组; -1——源数组的元素小于目标数组。 | 范例 | 比较数组元素Array1[3]和Array2[2]的大小,以及 Array1[4]和Array2[3]的大小: Array:Array1[4](0),Array2[6](0); for
Value1=0
to
4
begin Array1[Value1]=Value1*2; end; for
value2=0
to
6
begin
Array2[value2]=value2*3; end; Value3=Array_Compare(Array1,3,Array2,2,2); 由上可知Array1[3]= Array2[2]且Array1[4]< Array2[3],则Value3=-1 若Array1为{false, false, false, false, false, false, true, false},Array2为{false, false, false, false, false, false, true, false},则Value3=0 若Array1为{a,b,c,d,e,f,g,h},Array2为{a,b,c,d,e,f,g,h},则Value3=1 |
Array_Copy | 说明 | 复制源数组中的指定起始位置及数量的元素至目标数组指定的起始位置。 源数组和目标数组可以是相同或不同的一维数组。 | 语法 | Array_Copy(源数组,来源索引,目标数组,目标索引,元素个数) | 参数 | 源数组——要复制的源数组 源索引——数值表达式,指定源数组的索引值 目标数组——要复制的目标数组 目标索引——数值表达式,指定目标数组的索引值 元素个数——数值表达式,要比较的元素个数 | 范例 | 复制Array1索引4开始的2个元素至Array2索引6开始的2个元素位置: Array_Copy(Array1,4,Array2,6,2); 复制Array1索引4开始的2个元素至索引6开始的2个元素位置: Array_Copy(Array1,4,Array1,6,2); |
Array_GetMaxIndex | 说明 | 取得数组的最大索引值。 数组的索引值从0开始,数组的元素个数为最大索引值加1。 | 语法 | Array_GetMaxIndex(数组名称) | 参数 | 数组名称——要查询的数组名称 | 范例 | 将Array1的最大索引值存入变量Value1,若索引有10个元素,则Value1=9: Value1=Array_GetMaxIndex(Array1); |
Array_GetType | 说明 | 取得数组的类型。 | 语法 | Array_GetType(数组名称) | 参数 | 数组名称——要查询的数组名称 | 返回值 | 2——布林型数组 3——字符串型数组 7——数值型数组 | 范例 | 查询Array1的类型,并将结果存入变量Value1 Array: Array1[10](false); Value1=Array_GetType(Array1); 则Value1=2 Array: Array1[10](“”); Value1=Array_GetType(Array1) 则Value1=3 Array: Array1[10](0); Value1=Array_GetType(Array1) 则Value1=7 |
Array_SetMaxIndex | 说明 | 重设定义为动态数组的大小;返回true代表重设成功。 数值可以重设为更大或更小;当数组变大时,增加的元素会设定成定义数组时的预设值。 | 语法 | Array_SetMaxIndex(数组名称,最大索引值) | 参数 | 数值名称——要设定的数组名称 最大索引值——数值表达式,数组要设定的最大索引值 | 返回值 | True——设定成功 False——设定失败 | 范例 | 重新设定动态数组Array1的大小为10个元素(最大索引值为9),并把结果赋给变量ResizeReport: Var: ResizeReport(false); Array: Array1[](0); ResizeReport = Array_SetMaxIndex(Array1,9); 如果设定成功,则ResizeReport返回True;否则为False |
Array_SetValRange | 说明 | 同时为数组指定范围的元素赋值 | 语法 | Array_SetValRange(数组名称, 起始索引,结束索引,数值) | 参数 | 数组名称——要赋值的数组名称 起始索引——数值表达式,指定数组赋值范围的开始索引值 结束索引——数值表达式,指定数组赋值范围的结束索引值 数值——数值表达式、字符串表达式或布林表达式,数组元素要设定的值。数值的类型要和数组定义类型一致。 | 范例 | 重新赋值Array1索引4至索引6的元素: Array_SetValRange(Array1,4,6,0); 若数组为{1,2,3,4,5,6,7,8},则赋值后数组为{1,2,3,4,0,0,0,8} Array_SetValRange(Array1,4,6,True); 若数组为{false, false, false, false, false, false, true, false},则赋值后数组为{false, false, false, false, true, true, true, false} Array_SetValRange(Array1,4,6,”a”); 若数组为{a,b,c,d,e,f,g,h},则赋值后数组为{a,b,c,d,a,a,a,h} |
Array_Sort | 说明 | 重新排序数组中的指定范围数值。 若为数值数组,依数值大小排序。 若为布林数组,依true=1、false=0的大小排序。 若为字符串数组,依字符串的ASCII值大小排序。 | 语法 | Array_Sort(数组名称, 起始索引, 结束索引, 排序方式) | 参数 | 数组名称——要排序的数组名称 起始索引——数值表达式,指定数组排序范围的开始索引值 结束索引——数值表达式,指定数组排序范围的结束索引值 排序方式——布林表达式,指定数组的排序方式,True为递增,False为递减 | 范例 | 重新排序Array1索引4至索引6的元素: Array_Sort(Array1,4,6,false); 若数组为{1,2,3,4,5,6,7,8},则赋值后数组为{1,2,3,4,7,6,5,8} 若数组为{false, false, false, false, false, false, true, false},则赋值后数组为{false, false, false, false, true, false, false, false} 若数组为{a,b,c,d,e,f,g,h},则赋值后数组为{a,b,c,d,g,f,e,h} |
Array_Sum | 说明 | 返回数值数组中指定范围的数值总和。 | 语法 | Array_Sum(数组名称,起始索引,结束索引) | 参数 | 数组名称——要加总的数组名称 起始索引——数值表达式,指定数组加总范围的开始索引值 结束索引——数值表达式,指定数组加总范围的结束索引值 | 范例 | 加总Array1索引4至索引6的元素,并将结果存入变数Value1: Value1=Array_Sum(Array1,4,6); 若数组为{1,2,3,4,5,6,7,8},则Value1=18 |
Fill_Array | 说明 | 将数组中的元素设定成指定的值。 | 语法 | Fill_Array(数组名称,数值) | 参数 | 数组名称——要设定值的数组名称 数值——数值表达式、字符串表达式或布林表达式,要指派给数组元素的值。数值的类型要和数组定义类型一致。 | 范例 | 将Array1中的每个元素设定为True Array: Array1[10](False); Fill_Array(Array1,True); |
|
论坛官方微信、群(期货热点、量化探讨、开户与绑定实盘)
|