|
发表于 2012-9-15 19:28:38
|
显示全部楼层
内蒙古自治区赤峰市
一般这种赋值是为了 让数组成员 不超出限制
我写的很蹩脚的排列数组:
.版本 2
.子程序 _ZSK_排列数组, , 公开
.参数 参数_欲被排列的数组, 文本型, 数组
.参数 参数_欲放置的数组, 文本型, 数组
.参数 参数_分隔符, 文本型
.参数 参数_排列的证据在分隔符分出的第几个部分内, 整数型, 可空, 0或空为最后一个,-1为倒数第一个,-2为倒数第二个...
.参数 参数_是否替换保存, 逻辑型
.局部变量 局部_i, 整数型
.局部变量 局部_temp_sz, 文本型, , "0"
.局部变量 局部_int_最大项, 整数型
.局部变量 局部_temp_sz2, 文本型, , "0"
.局部变量 局部_sz_欲返回数组, 文本型, , "0"
.局部变量 局部_欲被排列的数组, 文本型, , "0"
局部_temp_sz = 参数_欲被排列的数组
局部_欲被排列的数组 = 参数_欲被排列的数组
.计次循环首 (取数组成员数 (局部_欲被排列的数组), 局部_i)
.如果真 (取数组成员数 (局部_temp_sz) = 1)
.判断开始 (参数_是否替换保存 = 真)
加入成员 (局部_sz_欲返回数组, 局部_temp_sz [1])
跳出循环 ()
.默认
加入成员 (参数_欲放置的数组, 局部_temp_sz [1])
跳出循环 ()
.判断结束
.如果真结束
.如果 (参数_排列的证据在分隔符分出的第几个部分内 = 0) ' 不能执行这个样子的
局部_int_最大项 = _ZSK_冒泡 (局部_temp_sz, 参数_分隔符, )
.否则
.如果 (取文本左边 (到文本 (参数_排列的证据在分隔符分出的第几个部分内), 1) = “-”) ' 如果从倒数开始
.如果 (局部_i > 取数组成员数 (局部_temp_sz))
加入成员 (局部_sz_欲返回数组, 局部_temp_sz [取数组成员数 (局部_temp_sz)])
跳出循环 ()
.否则
局部_temp_sz2 = 分割文本 (局部_temp_sz [局部_i], 参数_分隔符, )
.如果结束
局部_int_最大项 = _ZSK_冒泡 (局部_temp_sz, 参数_分隔符, 取数组成员数 (局部_temp_sz2) + 参数_排列的证据在分隔符分出的第几个部分内)
.否则
局部_int_最大项 = _ZSK_冒泡 (局部_temp_sz, 参数_分隔符, 参数_排列的证据在分隔符分出的第几个部分内)
.如果结束
.如果结束
.判断开始 (参数_是否替换保存 = 真)
加入成员 (局部_sz_欲返回数组, 局部_temp_sz [局部_int_最大项])
.默认
加入成员 (参数_欲放置的数组, 局部_temp_sz [局部_int_最大项])
.判断结束
.如果真 (取数组成员数 (局部_欲被排列的数组) ≠ 1)
删除成员 (局部_temp_sz, 局部_int_最大项, 1)
.如果真结束
.如果真 (取数组成员数 (局部_temp_sz) = 1)
.判断开始 (参数_是否替换保存 = 真)
加入成员 (局部_sz_欲返回数组, 局部_temp_sz [1])
跳出循环 ()
.默认
加入成员 (参数_欲放置的数组, 局部_temp_sz [1])
跳出循环 ()
.判断结束
.如果真结束
.计次循环尾 ()
.如果真 (参数_是否替换保存 = 真)
参数_欲放置的数组 = 局部_sz_欲返回数组
返回 ()
.如果真结束
返回 ()
.版本 2
.子程序 _ZSK_冒泡, 整数型, 公开
.参数 欲被冒泡数组, 文本型, 数组
.参数 分隔符, 文本型
.参数 第几次的分割, 整数型, 可空, 默认为最后一个
.局部变量 局部_temp_sz, 文本型, , "0"
.局部变量 局部_int_最大值, 整数型
.局部变量 局部_int_最大值所在项, 整数型
.局部变量 局部_i, 整数型
.局部变量 局部_sz_欲被冒泡数组, 文本型, , "0"
int_匹配项最大值 = 1
.如果 (取数组成员数 (欲被冒泡数组) = 1)
返回 (1)
.否则
局部_sz_欲被冒泡数组 = 欲被冒泡数组
.如果真 (取数组成员数 (局部_sz_欲被冒泡数组) ≥ 1)
局部_temp_sz = 分割文本 (局部_sz_欲被冒泡数组 [1], 分隔符, )
.如果真 (取数组成员数 (局部_temp_sz) = 0)
局部_int_最大值 = 到整数 (局部_sz_欲被冒泡数组 [1])
局部_int_最大值所在项 = 1
.计次循环首 (取数组成员数 (局部_sz_欲被冒泡数组), 局部_i) ' 选择法,地球人都知道
.如果真 (到整数 (局部_sz_欲被冒泡数组 [局部_i]) > 0)
.如果真 (到整数 (局部_sz_欲被冒泡数组 [局部_i]) > 局部_int_最大值)
局部_int_最大值 = 到整数 (局部_sz_欲被冒泡数组 [局部_i])
局部_int_最大值所在项 = 局部_i
.如果真结束
.如果真结束
.计次循环尾 ()
返回 (局部_int_最大值所在项)
.如果真结束
.判断开始 (是否为空 (第几次的分割))
局部_int_最大值 = 到整数 (局部_temp_sz [取数组成员数 (局部_temp_sz)])
.默认
局部_int_最大值 = 到整数 (局部_temp_sz [第几次的分割])
.判断结束
局部_int_最大值所在项 = 1
.如果真 (取数组成员数 (局部_sz_欲被冒泡数组) ≥ 1)
.计次循环首 (取数组成员数 (局部_sz_欲被冒泡数组), 局部_i) ' 选择法,地球人都知道
局部_temp_sz = 分割文本 (局部_sz_欲被冒泡数组 [局部_i], 分隔符, )
.判断开始 (是否为空 (第几次的分割))
.如果真 (到整数 (局部_temp_sz [取数组成员数 (局部_temp_sz)]) > 0)
.如果真 (到整数 (局部_temp_sz [取数组成员数 (局部_temp_sz)]) > 局部_int_最大值)
局部_int_最大值 = 到整数 (局部_temp_sz [取数组成员数 (局部_temp_sz)])
局部_int_最大值所在项 = 局部_i
.如果真结束
.如果真结束
.默认
.如果真 (到整数 (局部_temp_sz [第几次的分割]) > 0)
.如果真 (到整数 (局部_temp_sz [第几次的分割]) > 局部_int_最大值)
局部_int_最大值 = 到整数 (局部_temp_sz [第几次的分割])
局部_int_最大值所在项 = 局部_i
.如果真结束
.如果真结束
.判断结束
.计次循环尾 ()
.如果真结束
.如果真结束
.如果结束
返回 (局部_int_最大值所在项)
|
|