如何写算术公式的代码?

dqm12345678 2011-11-08 09:09:41
例如:
计算滤波的公式:
前一次滤波后的AD值+(当前AD值 - 前一次滤波后的AD值)*系数
其中系数已知,为80%。
请问代码改如何写呢?大虾帮忙~ 感谢~
...全文
114 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
qiuxin425 2011-11-09
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 dqm12345678 的回复:]
引用 4 楼 qiuxin425 的回复:
C/C++ code


//调用
GetFilterValue(&dLastVal, &dCurVal);

//定义
double GetFilterValue(double *dLastVal, double *dCurVal)
{
double dReturn = *dLastVal + (*d……
[/Quote]

就是赋值的意思

//调用
dLastVal = GetFilterValue(dLastVal, dCurVal);

//定义
double GetFilterValue(double dLastVal, double dCurVal)
{
double dReturn = dLastVal + (dCurVal - dLastVal) * 0.8;

return dReturn;
}

qiuxin425 2011-11-09
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 yisiyou 的回复:]
//调用
GetFilterValue(dLastVal, dCurVal);

//定义
double GetFilterValue(double dLastVal, double dCurVal)
{
double dReturn = dLastVal + (dCurVal - dLastVal) * 0.8;
dLastVal = dReturn ;

retu……
[/Quote]

你也太会抄了 但你的函数肯定错了

如果你不用指针 就用成员变量吧 要不你怎么保存上一次的AD值
yisiyou 2011-11-09
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 qiuxin425 的回复:]
引用 8 楼 yisiyou 的回复:
//调用
GetFilterValue(dLastVal, dCurVal);

//定义
double GetFilterValue(double dLastVal, double dCurVal)
{
double dReturn = dLastVal + (dCurVal - dLastVal) * 0.8;
dLastVal = dR……
[/Quote]

你看清楚楼主的要求没?
“当前AD值”是指未滤波时候的AD值。
我是把你的直接复制过来的,没看清楚你的代码,原来也是有问题的。
将dLastVal定义成全局变量,不行吗?你搞笑,我只是为了方便,直接复制下,用的着抄你的么?
dqm12345678 2011-11-08
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 qiuxin425 的回复:]
C/C++ code


//调用
GetFilterValue(&dLastVal, &dCurVal);

//定义
double GetFilterValue(double *dLastVal, double *dCurVal)
{
double dReturn = *dLastVal + (*dCurVal - *dLastVal) * 0.8;
……
[/Quote]

但是double *dLastVal, double *dCurVal这两个值时未知的啊。都是要求的值。还有 *dLastVal = *dCurVal;

怎么理解?
“当前AD值”是指未滤波时候的AD值。你代码好像不是这个意思吧,可能我的题目没表达清楚。
qiuxin425 2011-11-08
  • 打赏
  • 举报
回复
调用时最好把上一次定义为类的成员变量,当前AD随你,定义成成员变量或者局部变量都可以
qiuxin425 2011-11-08
  • 打赏
  • 举报
回复

//调用
GetFilterValue(&dLastVal, &dCurVal);

//定义
double GetFilterValue(double *dLastVal, double *dCurVal)
{
double dReturn = *dLastVal + (*dCurVal - *dLastVal) * 0.8;
*dLastVal = *dCurVal;

return dReturn;
}
dqm12345678 2011-11-08
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 sky101010ws 的回复:]
每次保存前一次滤波后的AD值,然后取得当前的AD值进行计算
最好设计一个函数,将当前AD值和系数作为参数传递给函数
函数中设计一个静态局部变量或者类成员变量存放前一次滤波后的AD值
这样就比较方便了
[/Quote]
我的目的是 根据上述滤波公式,得出滤波后的AD值。我就是不知道这个函数如何写呢。
龙行天下之Sky 2011-11-08
  • 打赏
  • 举报
回复
每次保存前一次滤波后的AD值,然后取得当前的AD值进行计算
最好设计一个函数,将当前AD值和系数作为参数传递给函数
函数中设计一个静态局部变量或者类成员变量存放前一次滤波后的AD值
这样就比较方便了
lgstudyvc 2011-11-08
  • 打赏
  • 举报
回复
前一次滤波后的AD值+(当前AD值 - 前一次滤波后的AD值)*系数
就是这样写的哦
yisiyou 2011-11-08
  • 打赏
  • 举报
回复
//调用
GetFilterValue(dLastVal, dCurVal);

//定义
double GetFilterValue(double dLastVal, double dCurVal)
{
double dReturn = dLastVal + (dCurVal - dLastVal) * 0.8;
dLastVal = dReturn ;

return dReturn;
}

这样写,试下行不?
buyong 2011-11-08
  • 打赏
  • 举报
回复
当前AD值
前一次滤波后的AD值
这些你总有初始值吧

16,473

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧