为编程爱好者分享易语言教程源码的资源网

网站首页 > 易语言相关 > 易语言例程 正文

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

三叶资源网 2019-09-12 00:05:36 易语言例程 2064 ℃ 3 评论
.版本 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

资源下载:

文件下载

来源:三叶资源网,欢迎分享,公众号:iisanye,(三叶资源网⑤群:21414575

已有3位网友发表了看法:

  • 易语言TV

    易语言TV  评论于 [2019-09-17 15:40:35]  回复

    易语言编译三元一次

  • 易语言

    易语言  评论于 [2020-06-08 16:12:03]  回复

    易语言 解方程

  • yiyuyan

    yiyuyan  评论于 [2021-05-13 23:46:45]  回复

    解二次方程式子程序的序言

欢迎 发表评论:

百度站内搜索
关注微信公众号
三叶资源网⑤群:三叶资源网⑤群

网站分类
随机tag
数据库图片上传CreateMutexA易语言教程历史登录QQ模仿精易的窗口探测APK查询工具网页POSTSmartQQapk查壳工具易包域名转发HTML源码例程薅羊毛无水印哈罗单车UDP组播GIF录屏DLL函数查看器
最新评论