| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1645 人关注过本帖
标题:C++菜鸟请教大家如何实现求积?
只看楼主 加入收藏
rainbow1
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:2
帖 子:277
专家分:839
注 册:2010-5-19
收藏
得分:0 
以下是引用ie5054在2010-8-13 18:32:45的发言:

rainbow1,我试过了,没用。呵呵。谢谢指点。
再等会的朋友出现
是没有用还是不对?如果不对的话,1.0f的f表示什么?是十六进制吗?直接用你代码中的乘积算法是不是不能应用十进制以外的进制?
2010-08-14 20:25
towhee
Rank: 2
来 自:石家庄火车站
等 级:论坛游民
威 望:1
帖 子:48
专家分:69
注 册:2010-8-8
收藏
得分:4 
你用的什么编译器?
此处fTotal = 1.0f;用在累加里面没什么大问题,可是用在累乘里面,是不是数据类型不够呢?不知道你要累乘的数据是否很大,或小数点后位数很多,你将fTotal改为double型试一下

最穷无非讨饭,不死终会出头
2010-08-15 10:43
weble
Rank: 2
等 级:论坛游民
帖 子:59
专家分:83
注 册:2009-4-12
收藏
得分:4 
不清楚你的m_pResultBuf是不是int类型?

路漫漫其修远兮,吾将上下而求索
2010-08-15 10:58
ie5054
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2010-8-13
收藏
得分:0 
楼上的朋友。还在吗。我还想请教你一个问题。

  fTotal = 0.0f;
  for(j=0;j<nPeriod;j++)          //累加
   fTotal *= pCalcInfo->m_pStkData[i-j].m_fVolume;
  pCalcInfo->m_pResultBuf[i] = fTotal

我想求fTotal的平方根,用什么表达式实现
就是求  fTotal^2
 
2010-08-17 15:36
ie5054
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2010-8-13
收藏
得分:0 
不清楚你的m_pResultBuf是不是int类型?

m_pResultBuf是大智慧C++接口里面的变量吧。。具体是不是int类型的我不是很清楚。

它的做用就是把参数带回给大智慧,
pCalcInfo->m_pResultBuf[i] = fTotal
这句的意思相当于。把fTotal的值带回给大智慧。。就是通过pCalcInfo->m_pResultBuf[i]这个来带回。
m_pResultBuf[i]这个带回的是一组数。随着i的变化。带回不同的值。
2010-08-17 15:41
ie5054
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2010-8-13
收藏
得分:0 
真心谢谢楼上各位热心的朋友给我的教导。祝你们开心快乐。

关于那个求积的问题。我研究很久了。最后发现C++程序这部分是没有问题。出问题的地方在于和大智慧数据交接的地方

经过多次研究。发现求积和求和不同。求和可以把以往所有的数据相加。就算是以住第一次数剧出现为零也没关系,因为是累加。求积就不行了。它把以住所有的数据相乘,如果第一次数剧或第一次之前为零。。相乘的话,那是没用了。所以我们要找到第一次数剧不为零的地方。让程序从这个不为零的地方开始累乘.


比如第一次出现线1的位置是8.

-----------------------------这样就不行。
线1:ma(c,5)/ma(c,8);
nn:BARPOS-BARSSINCE(线1);-------------//事实上。这个数值求出来也是8
要求积的线:"fxjfunc@函数"(线1,nn);


-----------------------------这样就能求出这条线的累乘。
线1:ma(c,5)/ma(c,8);
要求积的线:"fxjfunc@函数"(线1,8);


难道输进去的变量,一定要是常数吗。不能用求出来的数值代替吗。




//-------------------------C++程序如下
__declspec(dllexport) int WINAPI IETWOVAR(const CALCINFO* pCalcInfo)
{
        float f,fTotal;
        int nPeriod,i,j;
        const float* pValue;
        if(pCalcInfo->m_pfParam1 &&  pCalcInfo->m_pfParam2 &&   
       pCalcInfo->m_nParam1Start>=0 &&                           
       pCalcInfo->m_pfParam3==NULL)
        {
        pValue = pCalcInfo->m_pfParam1;
                f = *pCalcInfo->m_pfParam2;
        nPeriod=(int)f;
                for(i=nPeriod-1;i<pCalcInfo->m_nNumData;i++)               
                {                                                                                                               
                fTotal = 1.0f;
                for(j=nPeriod-1;j<=i;j++)
                        fTotal *= pValue[j];
                pCalcInfo->m_pResultBuf[i] = fTotal;                       
                }
            return nPeriod;
        }
}



---------------------------另我想再请教大家一个问题。
  fTotal = 0.0f;
  for(j=0;j<nPeriod;j++)          //累加
   fTotal *= pCalcInfo->m_pStkData[i-j].m_fVolume;
  pCalcInfo->m_pResultBuf[i] = fTotal

我想求fTotal的平方根,用什么表达式实现
就是求  fTotal^2


2010-08-17 15:46
ie5054
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2010-8-13
收藏
得分:0 
    float x0,x1,x2,fTo;
    x0=9/2;
    x1=(x0+(9/x0))/2;
    fTo=0.0f;
    do
    {
        x0=x1;
        x1=(x0+(a/x0))/2;
        if((x0-x1)>fTo)
           x2=x0-x1;
        else
           x2=(x0-x1)*-1;
    }
    while(x2>1e-6);
--------------------
比如我想求9的平方根,x1是输出结果。。为何上述公式编译报错?
各位大侠。求教了
2010-08-19 18:51
快速回复:C++菜鸟请教大家如何实现求积?
数据加载中...
 
   



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

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