[e=1
].版本 2
变量名 | 类 型 | 静态 | 数组 | 备 注 |
类_脚本组件 | 类_脚本组件 | | |
调试输出 (类_脚本组件.
[e=0
].版本 2
变量名 | 类 型 | 静态 | 数组 | 备 注 |
text | 文本型 | | |
子_text | 文本型 | | |
A | 整数型 | | |
B | 整数型 | | |
I | 整数型 | | |
元素 | 文本型 | | 0 |
子项式 | 文本型 | | |
数组C | 文本型 | | 0 |
项式发布数量 | 整数型 | | |
项式发布符号 | 文本型 | | 0 |
R | 整数型 | | |
总项式数组 | 文本型 | | 0 |
总项式 | 文本型 | | |
D | 整数型 | | |
W | 整数型 | | |
结果 | 文本型 | | |
数组_随机数 | 文本型 | | 0 |
V | 整数型 | | |
是否加括号 | 逻辑型 | | |
text_F | 文本型 | | 0 |
F | 整数型 | | |
text_F_数组 | 文本型 | | 0 |
text =
“2+5*5+6/2*10086” text =
文本_子文本替换_批量单个对应替换 (text,
{ “(”,
“)”,
“×”,
“x”,
“X”,
“÷”,
“+”,
“-”,
“ ” },
{ “(”,
“)”,
“*”,
“*”,
“*”,
“/”,
“+”,
“-”,
“” })是否加括号 = 真
如果真 (取文本左边 (text, 1
) =
“-”)text =
“0” + text
如果真 (文本_寻找文本_分割 (text,
“()”, ,
) = -1
)text =
“(” + text +
“)”文本_逐字分割_汇编 (text, text_F)
计次循环首 (取数组成员数 (text_F
), F
)
如果真 (text_F
[F
] =
“(”)是否加括号 = 假
如果真 (text_F
[F
] =
“)”)是否加括号 = 真
到循环尾 ()
如果 (是否加括号 =
真)
如果 (内部_是否为符号 (text_F
[F
]) =
假)加入成员 (text_F_数组,
“(”)加入成员 (text_F_数组, text_F
[F
])
加入成员 (text_F_数组,
“)”)加入成员 (text_F_数组, text_F
[F
])


加入成员 (text_F_数组, text_F
[F
])

计次循环尾 ()加入成员 (text_F_数组,
“)”)text =
“”
计次循环首 (取数组成员数 (text_F_数组
), R
)text = text + text_F_数组
[R
]
计次循环尾 ()项式发布数量 =
文本_取中间_批量 (text,
“(”,
“)”, 数组C, , , , ,
) 文本_取中间_批量 (text,
“)”,
“(”, 项式发布符号, , , , ,
)
如果真 (项式发布数量 -
取数组成员数 (项式发布符号
) ≠ 1
)
计次循环首 (项式发布数量, R
)
如果真 (取数组成员数 (项式发布符号
) ≠ 0
)text = 数组C
[R
]文本_取枚举内层元素 (text, “(”, “)”, 元素)
判断循环首 (真)I = I + 1
子项式 = 元素
[取数组成员数 (元素
)]text =
子文本替换 (text,
“(” + 子项式 +
“)”,
基础算式 (子项式
), , ,
真)清除数组 (元素
)文本_取枚举内层元素 (text,
“(”,
“)”, 元素
)
如果真 (取数组成员数 (元素
) = 1
)子项式 = 元素
[取数组成员数 (元素
)]text =
子文本替换 (text, 子项式,
基础算式 (子项式
), , ,
真)跳出循环 ()


判断循环尾 ()加入成员 (总项式数组, text
)
计次循环尾 ()
如果 (取数组成员数 (项式发布符号
) = 0
)结果 = text

计次循环首 (取数组成员数 (总项式数组
) +
取数组成员数 (项式发布符号
), I
)
如果 (文本_判断奇偶数 (I
) = 0
)D = D + 1 总项式 = 总项式 + 项式发布符号
[D
]
W = W + 1 总项式 = 总项式 + 总项式数组
[W
]

计次循环尾 ()结果 =
基础算式 (总项式
)返回 (结果) (“(2+5)*5+6/2*10086”))
变量名 | 类 型 | 静态 | 数组 | 备 注 |
text | 文本型 | | |
TEXT_E | 文本型 | | |
数组_符号 | 文本型 | | 0 |
替换符号文本 | 文本型 | | |
数组_A | 文本型 | | 0 |
分割文本_A | 文本型 | | 0 |
i | 整数型 | | |
W | 整数型 | | |
D | 整数型 | | |
算术_数组 | 文本型 | | 0 |
算术_子I | 整数型 | | |
算术_子数 | 文本型 | | |
Y | 小数型 | | |
text = 参数
TEXT_E =
文本_子文本替换_批量_多换一_自动分割 (text,
“1234567890.”,
“ ”)TEXT_E =
子文本替换 (TEXT_E,
“ ”, , , ,
真)文本_逐字分割_汇编 (TEXT_E, 数组_符号
)替换符号文本 =
文本_子文本替换_批量单个对应替换 (参数,
{ “*”,
“/”,
“+”,
“-” },
{ “#”,
“#”,
“#”,
“#” })分割文本_A =
分割文本 (替换符号文本,
“#”,
)
如果真 (取数组成员数 (数组_符号
) -
取数组成员数 (分割文本_A
) ≠ -1
)调试输出 (“错误啦!”)
计次循环首 (取数组成员数 (分割文本_A
) +
取数组成员数 (数组_符号
), i
)
如果 (文本_判断奇偶数 (i
) = 0
) W = W + 1
加入成员 (算术_数组, 数组_符号
[W
])
D = D + 1
加入成员 (算术_数组, 分割文本_A
[D
])

计次循环尾 ()
判断循环首 (数组_寻找数组_一次 (算术_数组,
“/”) ≠ 0
)算术_子I =
数组_寻找数组_一次 (算术_数组,
“/”)算术_子数 = 算术_数组
[算术_子I - 1
] + 算术_数组
[算术_子I
] + 算术_数组
[算术_子I + 1
]删除成员 (算术_数组, 算术_子I - 1, 3
)插入成员 (算术_数组, 算术_子I - 1,
到文本 (基础单项式算法 (算术_子数
))
)
判断循环尾 ()
判断循环首 (数组_寻找数组_一次 (算术_数组,
“*”) ≠ 0
)算术_子I =
数组_寻找数组_一次 (算术_数组,
“*”)算术_子数 = 算术_数组
[算术_子I - 1
] + 算术_数组
[算术_子I
] + 算术_数组
[算术_子I + 1
]删除成员 (算术_数组, 算术_子I - 1, 3
)插入成员 (算术_数组, 算术_子I - 1,
到文本 (基础单项式算法 (算术_子数
))
)
判断循环尾 ()
判断循环首 (数组_寻找数组_一次 (算术_数组,
“-”) ≠ 0
)算术_子I =
数组_寻找数组_一次 (算术_数组,
“-”)算术_子数 = 算术_数组
[算术_子I - 1
] + 算术_数组
[算术_子I
] + 算术_数组
[算术_子I + 1
]删除成员 (算术_数组, 算术_子I - 1, 3
) Y =
基础单项式算法 (算术_子数
)
如果 (Y < 0
)加入成员 (算术_数组,
“-”)加入成员 (算术_数组,
到文本 (-Y
))
删除成员 (算术_数组, 1, 1
)

插入成员 (算术_数组, 算术_子I - 1,
到文本 (Y
))


判断循环尾 ()
判断循环首 (数组_寻找数组_一次 (算术_数组,
“+”) ≠ 0
)算术_子I =
数组_寻找数组_一次 (算术_数组,
“+”)算术_子数 = 算术_数组
[算术_子I - 1
] + 算术_数组
[算术_子I
] + 算术_数组
[算术_子I + 1
]删除成员 (算术_数组, 算术_子I - 1, 3
)插入成员 (算术_数组, 算术_子I - 1,
到文本 (基础单项式算法 (算术_子数
))
)
判断循环尾 ()返回 (算术_数组
[1
])
如果真 (文本_是否存在_逻辑 (text,
“*”))
算数组 =
分割文本 (text,
“*”, 2
)返回 (到小数 (算数组
[1
]) ×
到小数 (算数组
[2
]))
如果真 (文本_是否存在_逻辑 (text,
“/”))
算数组 =
分割文本 (text,
“/”, 2
)返回 (到小数 (算数组
[1
]) ÷
到小数 (算数组
[2
]))
如果真 (文本_是否存在_逻辑 (text,
“-”))
如果 (取文本左边 (text, 1
) =
“-”)
如果 (文本_取出现次数 (text,
“-”,
假) = 2
)text =
取文本右边 (text,
取文本长度 (text
) - 1
)算数组 =
分割文本 (text,
“-”, 2
)
如果真 (取数组成员数 (算数组
) = 1
)插入成员 (算数组, 1,
“0”)返回 (���到小数 (算数组 [1]) - 到小数 (算数组 [2]))
算数组 =
分割文本 (text,
“-”, 2
) 返回 (到小数 (算数组
[2
]) -
到小数 (算数组
[1
]))




算数组 =
分割文本 (text,
“-”, 2
)返回 (到小数 (算数组
[1
]) -
到小数 (算数组
[2
]))


如果真 (文本_是否存在_逻辑 (text,
“+”))
算数组 =
分割文本 (text,
“+”, 2
)返回 (到小数 (算数组
[1
]) +
到小数 (算数组
[2
]))
返回 (0)