易语言解二元一次方程源码

.版本 2 .支持库 spec .程序集 程序集1 .子程序 _启动子程序, 整数型, , 本子程序在程序启动后最先执行 调试输出 (解方程 (“x+y-30=0”, “4x+2y-100=0”)) 返回 (0) ' 可以根据您的需要返回任意数值 .子程序 推y, 文本型 .参数 txt, 文本型 .局部变量 正则, 正则表达式类 .局部变量 项目一, 文本型 .局部变量 项目二, 文本型 .局部变量 项目三, 文本型 .局部变量 项x, 文本型 .局部变量 项y, 文本型 .局部变量 项c, 文本型 .局部变量 fx, 文本型 .局部变量 fy, 文本型 .局部变量 fc, 文本型 .局部变量 xsx, 文本型 .局部变量 xsc, 文本型 .局部变量 xsy, 文本型 .局部变量 y, 文本型 .判断开始 (取文本左边 (txt, 1) = “-”) txt = 取文本右边 (txt, 取文本长度 (txt) - 1) 正则.创建 (“[-|+]”, txt) 项目一 = “-” + 文本_取左边 (txt, 正则.取匹配文本 (1)) .默认 正则.创建 (“[-|+]”, txt) 项目一 = 文本_取左边 (txt, 正则.取匹配文本 (1)) .判断结束 项目二 = 正则.取匹配文本 (1) + 文本_取出中间文本 (txt, 正则.取匹配文本 (1), 正则.取匹配文本 (2)) 项目三 = 正则.取匹配文本 (2) + 文本_取出中间文本 (txt, 正则.取匹配文本 (2), “=”) .判断开始 (寻找文本 (项目一, “x”, , 假) > 0) 项x = 项目一 .判断 (寻找文本 (项目一, “y”, , 假) > 0) 项y = 项目一 .默认 项c = 项目一 .判断结束 .判断开始 (寻找文本 (项目二, “x”, , 假) > 0) 项x = 项目二 .判断 (寻找文本 (项目二, “y”, , 假) > 0) 项y = 项目二 .默认 项c = 项目二 .判断结束 .判断开始 (寻找文本 (项目三, “x”, , 假) > 0) 项x = 项目三 .判断 (寻找文本 (项目三, “y”, , 假) > 0) 项y = 项目三 .默认 项c = 项目三 .判断结束 .判断开始 (寻找文本 (项x, “-”, , 假) > 0) fx = “-” .默认 fx = “+” .判断结束 .判断开始 (寻找文本 (项y, “-”, , 假) > 0) fy = “-” .默认 fy = “+” .判断结束 .判断开始 (寻找文本 (项c, “-”, , 假) > 0) fc = “-” .默认 fc = “+” .判断结束 xsx = 子文本替换 (项x, “x”, , , , 真) .判断开始 (到数值 (xsx) = 0) xsx = fx + “1” .默认 .判断结束 xsy = 子文本替换 (项y, “y”, , , , 真) .判断开始 (到数值 (xsy) = 0) xsy = fy + “1” .默认 .判断结束 xsc = 项c .判断开始 (到数值 (xsc) = 0) xsc = fc + “1” .默认 .判断结束 .判断开始 (fx = “+”) y = 到文本 (到数值 (项c) × -1 ÷ 到数值 (xsy)) + “-” + 到文本 (到数值 (子文本替换 (xsx, “+”, , , , 真)) ÷ 到数值 (xsy)) + “x” .默认 y = 到文本 (到数值 (项c) × -1 ÷ 到数值 (xsy)) + “+” + 到文本 (到数值 (子文本替换 (xsx, “-”, , , , 真)) ÷ 到数值 (xsy)) + “x” .判断结束 y = 子文本替换 (y, “--”, “+”, , , 真) y = 子文本替换 (y, “++”, “+”, , , 真) y = 子文本替换 (y, “+-”, “-”, , , 真) y = 子文本替换 (y, “-+”, “-”, , , 真) 返回 (y) .子程序 解方程, 文本型 .参数 表达式1, 文本型 .参数 表达式2, 文本型 .参数 是否转化分数, 逻辑型, 可空, 默认不转化 .局部变量 正则, 正则表达式类 .局部变量 正则1, 正则表达式类 .局部变量 fz, 文本型 .局部变量 fm, 文本型 .局部变量 x, 文本型 .局部变量 y, 文本型 表达式1 = 推y (表达式1) 表达式2 = 推y (表达式2) 正则.创建 (“(.*)([-|+])(.*)x”, 表达式1) 正则1.创建 (“(.*)([-|+])(.*)x”, 表达式2) fz = 到文本 (到数值 (正则.取子匹配文本 (1, 1)) - 到数值 (正则1.取子匹配文本 (1, 1))) fm = 到文本 (到数值 (正则1.取子匹配文本 (1, 2) + 正则1.取子匹配文本 (1, 3)) - 到数值 (正则.取子匹配文本 (1, 2) + 正则.取子匹配文本 (1, 3))) x = 到文本 (到数值 (fz) ÷ 到数值 (fm)) y = 到文本 (到数值 (正则.取子匹配文本 (1, 1)) + 到数值 (正则.取子匹配文本 (1, 2) + 正则.取子匹配文本 (1, 3)) × 到数值 (x)) .如果 (是否为空 (是否转化分数) 或 是否转化分数 = 假) 返回 (x + “|” + y) .否则 返回 (小数化分数 (x) + “|” + 小数化分数 (y)) .如果结束 .子程序 小数化分数, 文本型 .参数 原始小数, 文本型 .局部变量 小数位数, 整数型 .局部变量 整数部分文本, 文本型 .局部变量 小数部分文本, 文本型 .局部变量 化整倍数, 整数型 .局部变量 i, 整数型 .局部变量 能约分, 逻辑型 .如果真 (寻找文本 (原始小数, “.”, , 假) = -1) 返回 (原始小数) .如果真结束 整数部分文本 = 文本_取左边 (原始小数, “.”) 小数部分文本 = 文本_取右边 (原始小数, “.”) 小数位数 = 取文本长度 (小数部分文本) .如果真 (小数位数 > 6) ' 小数位数太长,不要累死计算机了 小数部分文本 = 取文本左边 (小数部分文本, 6) .如果真结束 化整倍数 = 求次方 (10, 小数位数) .循环判断首 () .计次循环首 (到整数 (小数部分文本), i) .如果真 (i = 1) 到循环尾 () .如果真结束 .判断开始 (到整数 (小数部分文本) % i = 0 且 化整倍数 % i = 0) 小数部分文本 = 到文本 (到整数 (小数部分文本) ÷ i) 化整倍数 = 化整倍数 ÷ i 能约分 = 真 跳出循环 () .默认 能约分 = 假 .判断结束 .计次循环尾 () .循环判断尾 (能约分 = 真) 返回 (整数部分文本 + “又” + 小数部分文本 + “/” + 到文本 (化整倍数))

资源作者:

@zqq68003002

资源下载:

易语言解二元一次方程源码》有0个想法

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注