| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1305 人关注过本帖
标题:无聊发个求一元二次方程的代码
只看楼主 加入收藏
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
结帖率:100%
收藏
 问题点数:0 回复次数:12 
无聊发个求一元二次方程的代码
这是vc++/CLR代码,用vs的同学该知道怎么创建项目和编译,编译不了也没关系,代码干什么和怎么干的,一目了然,用自己的方法,也能照着做出同样的事。要移植为非托管代码的,自己写出类似的替代函数就可以了,因为需要划分的功能是一样的。

程序代码:
#include "stdafx.h"

using namespace System;

Double GetCoefficient(String^ tips);        // 交互获取方程系数

Int32 main(array<String^>^ args)
{
    Console::Title = L"一元二次方程的解";

    Console::Clear();
    Double coefficient_A, coefficient_B, coefficient_C;
    while ((coefficient_A = GetCoefficient(L"\n请输入二次项系数(输入零结束程序) A: ")) != 0)
    {
        coefficient_B = GetCoefficient(L"请输入一次项系数 B: ");
        coefficient_C = GetCoefficient(L"请输入常数项系数 C: ");
        Console::Clear();
        Console::WriteLine(L"您需要求解的方程是:{0} * x^2 + {1} * x + {2} = 0", coefficient_A, coefficient_B, coefficient_C);
        Double delta = coefficient_B * coefficient_B - 4 * coefficient_A * coefficient_C;
        if (delta == 0)
        {
            Double theUnknown = - coefficient_B / (2 * coefficient_A);
            Console::WriteLine(L"方程的根为: {0:F4}", theUnknown);
        }
        if (delta > 0)
        {
            Double theUnknown1, theUnknown2;
            theUnknown1 = (- coefficient_B + Math::Sqrt(delta)) / (2 * coefficient_A);
            theUnknown2 = (- coefficient_B - Math::Sqrt(delta)) / (2 * coefficient_A);
            Console::WriteLine(L"方程的根为: {0:F4}, {1:F4}", theUnknown1, theUnknown2);
        }
        if (delta < 0)
        {
            Console::WriteLine(L"方程没有实数根");
        }
    }

    return 0;
}

// 交互获取方程系数
Double GetCoefficient(String^ tips)
{
    Double returnValue;

    do
    {
        Console::Write(tips);
    } while (!Double::TryParse(Console::ReadLine(), returnValue));

    return returnValue;
}




[ 本帖最后由 TonyDeng 于 2014-12-12 23:51 编辑 ]
搜索更多相关主题的帖子: 干什么 color 项目 
2014-12-12 23:44
梦里云归
Rank: 2
等 级:论坛游民
帖 子:17
专家分:12
注 册:2014-9-20
收藏
得分:0 
才学C++,表示大多看不懂,还有编一个程序,函数名,变量什么的都要写的这么详细么?
2014-12-14 12:36
流浪诗人
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2014-12-10
收藏
得分:0 
我也看不懂,括号里面的也都会翻译出来吗
2014-12-14 15:03
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
收藏
得分:0 
我印象中 有人说CLR编程很恶心 可能楼主乐在其中罢
2014-12-14 15:36
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
以下是引用梦里云归在2014-12-14 12:36:38的发言:

才学C++,表示大多看不懂,还有编一个程序,函数名,变量什么的都要写的这么详细么?

是的,需要详细。

授人以渔,不授人以鱼。
2014-12-14 21:00
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
以下是引用流浪诗人在2014-12-14 15:03:56的发言:

我也看不懂,括号里面的也都会翻译出来吗

什么括号、翻译?

授人以渔,不授人以鱼。
2014-12-14 21:00
梦里云归
Rank: 2
等 级:论坛游民
帖 子:17
专家分:12
注 册:2014-9-20
收藏
得分:0 
回复 5楼 TonyDeng
那不是很麻烦了?不是很多代码的程序,我都是力求简洁的,字母太多实在是难得打
2014-12-15 14:54
soulmate1023
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:6
帖 子:256
专家分:831
注 册:2014-9-23
收藏
得分:0 
学习一下,顶版主
2014-12-15 14:59
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
以下是引用梦里云归在2014-12-15 14:54:18的发言:

那不是很麻烦了?不是很多代码的程序,我都是力求简洁的,字母太多实在是难得打

不能说明自己是干什么和是什么的标识符,不叫简洁。

授人以渔,不授人以鱼。
2014-12-15 20:52
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
下面的对应的C#代码:

程序代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace test8
{
    class Program
    {
        static void Main(String[] args)
        {
            Console.Title = "一元二次方程的解";

            Console.Clear();
            Double coefficient_A, coefficient_B, coefficient_C;
            while ((coefficient_A = GetCoefficient("\n请输入二次项系数(输入零结束程序) A: ")) != 0)
            {
                coefficient_B = GetCoefficient("请输入一次项系数 B: ");
                coefficient_C = GetCoefficient("请输入常数项系数 C: ");
                Console.Clear();
                Console.WriteLine("您需要求解的方程是:{0} * x^2 + {1} * x + {2} = 0", coefficient_A, coefficient_B, coefficient_C);
                Double delta = coefficient_B * coefficient_B - 4 * coefficient_A * coefficient_C;
                if (delta == 0)
                {
                    Double theUnknown = - coefficient_B / (2 * coefficient_A);
                    Console.WriteLine("方程的根为: {0:F4}", theUnknown);
                }
                if (delta > 0)
                {
                    Double theUnknown1, theUnknown2;
                    theUnknown1 = (- coefficient_B + Math.Sqrt(delta)) / (2 * coefficient_A);
                    theUnknown2 = (- coefficient_B - Math.Sqrt(delta)) / (2 * coefficient_A);
                    Console.WriteLine("方程的根为: {0:F4}, {1:F4}", theUnknown1, theUnknown2);
                }
                if (delta < 0)
                {
                    Console.WriteLine("方程没有实数根");
                }
            }
        }

        // 交互获取方程系数
        static Double GetCoefficient(String tips)
        {
            Double returnValue;

            do
            {
                Console.Write(tips);
            } while (!Double.TryParse(Console.ReadLine(),out returnValue));

            return returnValue;
        }
    }
}



授人以渔,不授人以鱼。
2014-12-15 21:11
快速回复:无聊发个求一元二次方程的代码
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.014162 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved