全局通栏广告

爱盲论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 活动 交友 discuz
查看: 2023|回复: 9
打印 上一主题 下一主题

大家来用自己擅长的编程语言来写一个解一元二次方程的程序吧。

[复制链接]

22

主题

90

帖子

874

积分

中级会员

Rank: 3Rank: 3

积分
874
跳转到指定楼层
楼主
发表于 2022-12-23 11:13:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
楼主 一路向南说:
如题,我先来一个,不足之处请指教。
易语言版:
.版本 2

.程序集 窗口程序集_启动窗口
.程序集变量 a, 小数型
.程序集变量 b, 小数型
.程序集变量 c, 小数型
.程序集变量 判别式, 小数型
.程序集变量 判别式结果, 小数型
.程序集变量 x1, 小数型
.程序集变量 x2, 小数型

.子程序 __启动窗口_创建完毕

编辑框1.获取焦点 ()

.子程序 _按钮1_被单击

a = 到数值 (编辑框1.内容)
b = 到数值 (编辑框2.内容)
c = 到数值 (编辑框3.内容)
.如果真 (a = 0)
    信息框 (“这不是一元二次方程”, #信息图标, “提示”, )
    返回 ()
.如果真结束
判别式 = 求次方 (b, 2) - 4 × a × c
.判断开始 (判别式 < 0)
    信息框 (“此方程无解”, #信息图标, “提示”, )
.判断 (判别式 = 0)
    判别式结果 = 求次方 (判别式, 1 ÷ 2)
    x1 = -b + 判别式结果
    x2 = x1
    信息框 (“您需要解的方程为:” + 到文本 (a) + “x^2 +” + 到文本 (b) + “x +” + 到文本 (c) + “,此方程有一个实数根,为:” + 到文本 (x1 ÷ 2 × a), #信息图标, “提示”, )
.默认
    判别式结果 = 求次方 (判别式, 1 ÷ 2)
    x1 = -b + 判别式结果
    x2 = -b - 判别式结果
    .如果 (到整数 (判别式结果) ≠ 判别式结果)
        信息框 (“您需要解的方程为:” + 到文本 (a) + “x^2 +” + 到文本 (b) + “x +” + 到文本 (c) + “,此方程有两个实数根,为:x1=” + 到文本 (-b) + “ +根号下” + 到文本 (判别式) + “/” + 到文本 (2 × a) + “x2=” + 到文本 (-b) + “ -根号下” + 到文本 (判别式) + “/” + 到文本 (2 × a), #信息图标, “提示”, )
    .否则
        信息框 (“您需要解的方程为:” + 到文本 (a) + “x^2 +” + 到文本 (b) + “x +” + 到文本 (c) + “,此方程有两个实数根,为:x1=” + 到文本 (x1 ÷ 2 × a) + “x2=” + 到文本 (x2 ÷ 2 × a), #信息图标, “提示”, )
    .如果结束

.判断结束

本帖来自微秘
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

14

主题

82

帖子

832

积分

中级会员

Rank: 3Rank: 3

积分
832
沙发
发表于 2022-12-23 11:27:16 | 只看该作者
沙发 牧童@说:
我来用Java实现一个吧!
import java.util.Scanner;
public class demo {
    public static void main(String[] args) {
        //一元二次方程的两个解
        double x1;
        double x2;

        //一元二次方程的三个系数
        //ax^2+bx+c=0
        int a,b,c;

        //输入a,b,c的值
        System.out.println("请依次输入一元二次方程a,b,c的值");
        Scanner sc=new Scanner(System.in);
        a=sc.nextInt();
        b=sc.nextInt();
        c=sc.nextInt();

        //delta是根

        double delta=b*b-4*a*c;

        //x1=(-b+sqrt(b*b-4*a*c))/2a
        //x2=(-b-sqrt(b*b-4*a*c))/2a
        x1=(-b+Math.sqrt(delta))/2*a;
        x2=(-b-Math.sqrt(delta))/2*a;

        //判断delta的值
        if(delta==0){
            System.out.println("此方程有两个相同的解");
            System.out.println("x1=x2="+x1);
        }

        else if(delta>0){
            System.out.println("此方程有两个解");
            System.out.println("x1="+x1);
            System.out.println("x2="+x2);
        }

        else
            System.out.println("此方程无解");

    }
}

本楼来自 掌阅圈
回复 支持 反对

使用道具 举报

49

主题

1559

帖子

4618

积分

高级会员

Rank: 4

积分
4618
板凳
发表于 2022-12-23 17:08:39 | 只看该作者
板凳 科技爱好者说:
感觉E语言很好学的样子,但是用不了啊。
本帖来自安卓秘书
回复 支持 反对

使用道具 举报

14

主题

82

帖子

832

积分

中级会员

Rank: 3Rank: 3

积分
832
地板
发表于 2022-12-23 17:38:48 | 只看该作者
地板 牧童@说:
回复 3楼 科技爱好者
Java更简单
本楼来自 掌阅圈
回复 支持 反对

使用道具 举报

14

主题

82

帖子

832

积分

中级会员

Rank: 3Rank: 3

积分
832
5#
发表于 2022-12-23 17:41:17 | 只看该作者
5楼 牧童@说:
等下我用kotlin写一个,让你们看看什么叫简洁
本楼来自 掌阅圈
回复 支持 反对

使用道具 举报

8

主题

400

帖子

2096

积分

高级会员

Rank: 4

积分
2096
6#
发表于 2022-12-23 18:44:02 | 只看该作者
6楼 彪彪说:
谁能打包个安卓的啊
本楼来自 天坦百宝箱
回复 支持 反对

使用道具 举报

333

主题

5234

帖子

1万

积分

金牌会员

Rank: 5Rank: 5

积分
13606

活跃会员优秀版主

7#
发表于 2022-12-23 20:07:17 来自手机 | 只看该作者
7楼 海阔天空说:
回复 地板牧童@

目前我的这个小程序就是用这玩意写的。

来源:万能通
回复 支持 反对

使用道具 举报

14

主题

82

帖子

832

积分

中级会员

Rank: 3Rank: 3

积分
832
8#
发表于 2022-12-23 21:34:00 | 只看该作者
8楼 牧童@说:
回复 7楼 海阔天空
嗯嗯,可以,我现在拿Java写安卓感觉太麻烦。用kotlin了
本楼来自 掌阅圈
回复 支持 反对

使用道具 举报

130

主题

1395

帖子

3620

积分

高级会员

Rank: 4

积分
3620
9#
发表于 2022-12-24 00:55:48 | 只看该作者
9楼 云迪说:
不知道编程好不好学呀,需具备哪些基础条件呢?其实我很想学,但就是感觉可能知识有限学不了。
本帖来自安卓秘书
回复 支持 反对

使用道具 举报

14

主题

82

帖子

832

积分

中级会员

Rank: 3Rank: 3

积分
832
10#
发表于 2022-12-24 01:03:23 | 只看该作者
10楼 牧童@说:
回复 9楼 云迪
我是小学生,现在在搞android开发,你觉得呢?只要你动起来会发现很简单
本楼来自 掌阅圈
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋| 爱盲论坛  

GMT+8, 2024-10-12 08:16 , Processed in 0.066520 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表