|
楼主 |
发表于 2014-1-20 02:33:09
|
显示全部楼层
福建省厦门市
本帖最后由 素顏じ亦傾城ジ 于 2014-4-22 20:22 编辑
看看样式..
[e]
.版本 2
.子程序 运算_二分查找, 整数型, 公开
.参数 数组, 文本型, 数组
.参数 待查, 文本型
.参数 类型, 整数型
.参数 区分大小写, 逻辑型
.局部变量 位置, 整数型
.局部变量 数组总数, 整数型
.局部变量 对分, 整数型
.局部变量 数值A, 双精度小数型
.局部变量 数值B, 双精度小数型
.局部变量 文本, 文本型
位置 = 1
数组总数 = 取数组成员数 (数组)
.如果真 (数组总数 = 0)
返回 (1)
.如果真结束
.判断开始 (类型 = 0)
数值A = 到数值 (待查)
.如果真 (数值A ≥ 到数值 (数组 [数组总数]))
返回 (数组总数 + 1)
.如果真结束
.如果真 (数值A ≤ 到数值 (数组 [1]))
返回 (1)
.如果真结束
.判断循环首 (位置 < 数组总数 - 1)
对分 = (位置 + 数组总数) \ 2
数值B = 到数值 (数组 [对分])
.如果真 (数值A = 数值B)
位置 = 对分
跳出循环 ()
.如果真结束
.如果 (数值A < 数值B)
数组总数 = 对分
.否则
位置 = 对分
.如果结束
.判断循环尾 ()
.判断 (类型 = 1)
.如果真 (文本比较 (待查, 数组 [数组总数], 区分大小写) ≥ 0)
返回 (数组总数 + 1)
.如果真结束
.如果真 (文本比较 (待查, 数组 [1], 区分大小写) ≤ 0)
返回 (1)
.如果真结束
.判断循环首 (位置 < 数组总数 - 1)
对分 = (位置 + 数组总数) \ 2
.如果真 (文本比较 (待查, 数组 [对分], 区分大小写) = 0)
位置 = 对分
跳出循环 ()
.如果真结束
.如果 (文本比较 (待查, 数组 [对分], 区分大小写) < 0)
数组总数 = 对分
.否则
位置 = 对分
.如果结束
.判断循环尾 ()
.判断 (类型 = 2)
数值A = 取字节集数据 (到字节集 (到时间 (待查)), #双精度小数型)
.如果真 (数值A ≥ 取字节集数据 (到字节集 (到时间 (数组 [数组总数])), #双精度小数型))
返回 (数组总数 + 1)
.如果真结束
.如果真 (数值A ≤ 取字节集数据 (到字节集 (到时间 (数组 [1])), #双精度小数型))
返回 (1)
.如果真结束
.判断循环首 (位置 < 数组总数 - 1)
对分 = (位置 + 数组总数) \ 2
数值B = 取字节集数据 (到字节集 (到时间 (数组 [对分])), #双精度小数型)
.如果真 (数值A = 数值B)
位置 = 对分
跳出循环 ()
.如果真结束
.如果 (数值A < 数值B)
数组总数 = 对分
.否则
位置 = 对分
.如果结束
.判断循环尾 ()
.默认
.判断结束
返回 (位置 + 1)
.子程序 运算_函数计算, 文本型, 公开, 求正弦、余弦、正切、余切
.参数 Text, 文本型
.参数 单位, 逻辑型, , 真为弧度制,假为角度制
.局部变量 TempText, 文本型
.局部变量 FText, 文本型, , , 寻找值
.局部变量 FNum, 整数型, , , 寻找值的长度
.局部变量 ZText, 文本型, , , 函数括号内文本
.局部变量 RetText, 文本型, , , 函数括号内计算结果
.局部变量 i, 整数型
.局部变量 Find, 整数型, , , 寻找到的位置
.局部变量 YFind, 整数型, , , 寻找到右括号的位置
TempText = Text
.计次循环首 (4, i)
FText = 多项选择 (i, “sin(”, “cos(”, “tg(”, “ctg(”)
FNum = 多项选择 (i, 4, 4, 3, 4)
Find = 寻找文本 (TempText, FText, , 假)
.判断循环首 (Find ≠ -1)
YFind = 寻找文本 (TempText, “)”, Find, 假) ' 寻找右括号
.如果真 (YFind ≠ -1)
ZText = 取文本中间 (TempText, Find + FNum, YFind - Find - FNum)
.判断开始 (ZText = “”) ' 括号内无文本
TempText = 文本替换 (TempText, Find, FNum + 1, )
.默认
RetText = 运算_括号计算 (ZText)
.如果真 (RetText = “”) ' 失败返回空文本
返回 (“”)
.如果真结束
.判断开始 (i = 1) ' 正弦
RetText = 到文本 (求正弦 (选择 (单位, 到数值 (RetText), 到数值 (RetText) × #pi ÷ 180)))
.判断 (i = 2) ' 余弦
RetText = 到文本 (求余弦 (选择 (单位, 到数值 (RetText), 到数值 (RetText) × #pi ÷ 180)))
.判断 (i = 3) ' 正切
RetText = 到文本 (求正切 (选择 (单位, 到数值 (RetText), 到数值 (RetText) × #pi ÷ 180)))
.默认
RetText = 到文本 (1 ÷ 求正切 (选择 (单位, 到数值 (RetText), 到数值 (RetText) × #pi ÷ 180))) ' 余切
.判断结束
.如果真 (是否运算正确 (到数值 (RetText)) = 假)
返回 (“”)
.如果真结束
TempText = 文本替换 (TempText, Find, 取文本长度 (ZText) + FNum + 1, RetText)
.判断结束
.如果真结束
Find = 寻找文本 (TempText, FText, , 假)
.判断循环尾 ()
.计次循环尾 ()
返回 (运算_括号计算 (TempText))
.子程序 运算_括号计算, 文本型, 公开
.参数 Text, 文本型
.局部变量 i, 整数型
.局部变量 Zk, 整数型, , "0", 左括号位置数组
.局部变量 ZkNum, 整数型, , , Zk成员数量
.局部变量 SigText, 文本型, , , 单个文本
.局部变量 Asc, 整数型, , , 单个文本的Asc码
.局部变量 SwText, 文本型, , , 括号内文本
.局部变量 SwReText, 文本型, , , 括号内计算后文本
.局部变量 TempText, 文本型, , , 替换后的结果
TempText = Text
i = 1
.判断循环首 (i ≤ 取文本长度 (TempText))
SigText = 取文本中间 (TempText, i, 1)
.判断开始 (SigText = “(”)
加入成员 (Zk, i)
i = i + 1
.判断 (SigText = “)”)
ZkNum = 取数组成员数 (Zk)
.如果 (ZkNum > 0) ' 是否存在左括号
SwText = 取文本中间 (TempText, Zk [ZkNum] + 1, i - Zk [ZkNum] - 1) ' 取出括号内文本
SwReText = 运算_内部计算 (SwText) ' 计算括号内文本
.如果真 (SwReText = “”) ' 失败返回空文本
返回 (“”)
.如果真结束
TempText = 文本替换 (TempText, Zk [ZkNum], 取文本长度 (“(” + SwText + “)”), SwReText)
i = Zk [ZkNum] + 1
删除成员 (Zk, ZkNum, )
.否则
TempText = 文本替换 (TempText, i, 1, ) ' 去掉多余右括号
.如果结束
.判断 (Asc = 92)
TempText = 文本替换 (TempText, i, 1, “\”)
i = i + 1
.默认
Asc = 取代码 (SigText, )
.判断开始 ((Asc < 46 或 Asc > 57) 且 Asc ≠ 42 且 Asc ≠ 43 且 Asc ≠ 45 且 Asc ≠ 92 且 Asc ≠ 94) ' 去掉非法字符
TempText = 文本替换 (TempText, i, 1, )
.默认
i = i + 1
.判断结束
.判断结束
.判断循环尾 ()
ZkNum = 取数组成员数 (Zk)
.如果真 (ZkNum > 0) ' 去掉多余左括号
.计次循环首 (ZkNum, i)
TempText = 文本替换 (TempText, Zk [ZkNum - i + 1], 1, ) ' 从最后一个开始替换
.计次循环尾 ()
.如果真结束
返回 (运算_内部计算 (TempText))
[/e]
|
|