panda ID:pandaxcl
81378次访问,排名1162(-1)好友0人,关注者3
pandaxcl的文章
原创 61 篇
翻译 0 篇
转载 0 篇
评论 153 篇
pandaxcl的公告

博客文档资源下载在本人的网站下载!!!

我也优先在我的网站论坛上面回答问题

在研究C++自动化编程好久之后,发现C++自动化编程在国内还是一个空白。所谓的C++自动化编程,简单点说就是采用了C++的高级模板技术配合产生式编程技法实现了C++代码的自我配置,自动维护代码之间的种种一致性问题。关于这个问题的讨论,将会在我的网站上面进行细致的讨论。如果有问题,欢迎来我的网站提问哦。看看下面的我的网站的链接。

EMail:pandaxcl@163.com

QQ:56637059

我的网站: http://www.autodev.net

最近评论
skyapples:不得不说,这真是一篇好文章,作者是用心做事情的人
skyapples:不得不说,这真是一篇好文章,作者是用心做事情的人
huxi043715:博主,在很强阿。你的文章也很容易懂。
wangwei200508:呵呵,谢了
您的这里指到自己硬盘了
<a href="file:///D:/work/lex_yacc/chapter01/lexyacc.rar.png" target="_top">这里</a>
imath:老大我引用了你的 这系列文章,嘿嘿
文章分类
收藏
    相册
    友情连接
    小熊猫
    我的另外一个博客
    我的网站-自动化编程社区
    我的论坛-自动化编程社区论坛
    存档
    软件项目交易
    订阅我的博客
    XML聚合  FeedSky
    订阅到鲜果
    订阅到Google
    订阅到抓虾
    订阅到BlogLines
    订阅到Yahoo
    订阅到GouGou
    订阅到飞鸽
    订阅到Rojo
    订阅到newsgator
    订阅到netvibes

    原创 梯形求积公式的逐次分半法(C语言实现)收藏

    新一篇: 用lex将xpm文件转换成为自定义的OpenGL使用的纹理文件格式 | 旧一篇: 撤销和重做(Undo和Redo)的C++完美实现(9)

    #if 0

    在好几个网友的要求下,先给出一个简单的逐次分半法梯形求积公式的C语言直接实现
    。不过还是提醒一下如果学习算法的话,最好还是自己实际进行编码的好。

    #endif

    #ifdef CODE1//g++ -DCODE1 thisfile.cpp
    #include <stdio.h>
    #include <math.h>
    // 梯形公式的逐次分半法求积函数
    double integral(
    double a,//积分区间起始值
    double b,//积分区间终止值
    double(*f)(double),//被积函数
    double eps//积分允许误差
    )
    {
    double n = 1;
    double h = (b-a)/2;
    double Tn = h*(f(a)+f(b));
    double T2n = 0;
    while(true)
    {
    double sumf = 0;
    for(int i=1;i<=n;++i)
    {
    sumf += f(a+(2*i-1)*h);
    }
    T2n = Tn/2+h*sumf;
    if(fabs(T2n-Tn)<3*eps)break;
    Tn = T2n;
    n *= 2;
    h /= 2;
    }
    return T2n;
    }
    // 自定义的被积函数,只要满足下面的形式的函数就可以了:)
    double func(double x)
    {
    return sin(x)*cos(x);
    }
    int main()
    {
    const double PI = 3.1415926535;
    printf("%s%.8f\n","sin(x)在[0,PI/2]的积分值为:",integral(0,PI/2,sin,1e-8));
    printf("%s%.8f\n","func(x)在[0,PI/2]的积分值为:",integral(0,PI/2,func,1e-8));
    return 0;
    }
    #endif// CODE1
    ////////////////////////////////////////////////////////////////////////////////
    //该程序的运行结果如下:
    /*******************************************************************************
    sin(x)在[0,PI/2]的积分值为:1.00000000
    func(x)在[0,PI/2]的积分值为:0.49999999
    *******************************************************************************/
    ////////////////////////////////////////////////////////////////////////////////
    #if 0

    下面是能够输入参数的程序:

    #endif
    #ifdef CODE2//g++ -DCODE2 thisfile.cpp
    #include <stdio.h>
    #include <math.h>
    // 梯形公式的逐次分半法求积函数
    double integral(
    double a,//积分区间起始值
    double b,//积分区间终止值
    double(*f)(double),//被积函数
    double eps//积分允许误差
    )
    {
    double n = 1;
    double h = (b-a)/2;
    double Tn = h*(f(a)+f(b));
    double T2n = 0;
    while(true)
    {
    double sumf = 0;
    for(int i=1;i<=n;++i)
    {
    sumf += f(a+(2*i-1)*h);
    }
    T2n = Tn/2+h*sumf;
    if(fabs(T2n-Tn)<3*eps)break;
    Tn = T2n;
    n *= 2;
    h /= 2;
    }
    return T2n;
    }
    // 自定义的被积函数,只要满足下面的形式的函数就可以了:)
    double func(double x)
    {
    return sqrt(x);//在这里修改你的被积函数
    }
    int main()
    {
    const double PI = 3.1415926535;
    double a,b,eps;//输入的参数保存在此
    scanf("%lf%lf%lf",&a,&b,&eps);//输入参数
    printf("积分下界=%f,积分上界=%f,误差=%f\n",a,b,eps);//显示输入的数据
    printf("%s%f%s%f%s%.8f\n","sqrt(x)在[",a,",",b,"]的积分值为:",integral(a,b,func,eps));
    return 0;
    }
    #endif// CODE1
    ////////////////////////////////////////////////////////////////////////////////
    //该程序的输入:
    /*******************************************************************************
    E:\>a
    0 0.5 1e-6
    *******************************************************************************/
    //相应的输出为:
    /*******************************************************************************
    积分下界=0.000000,积分上界=0.500000,误差=0.000001
    sqrt(x)在[0.000000,0.500000]的积分值为:0.23570147
    *******************************************************************************/
    ////////////////////////////////////////////////////////////////////////////////

    发表于 @ 2006年05月21日 10:25:00|评论(loading...)|编辑

    新一篇: 用lex将xpm文件转换成为自定义的OpenGL使用的纹理文件格式 | 旧一篇: 撤销和重做(Undo和Redo)的C++完美实现(9)

    评论:没有评论。

    发表评论  


    当前用户设置只有注册用户才能发表评论。如果你没有登录,请点击登录
    Csdn Blog version 3.1a
    Copyright © pandaxcl