Foxtable(狐表)用户栏目专家坐堂 → 请教:循环语句计算问题


  共有2619人关注过本帖树形打印复制链接

主题:请教:循环语句计算问题

帅哥哟,离线,有人找我吗?
feiyu988
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:278 积分:2909 威望:0 精华:0 注册:2013/8/28 22:21:00
请教:循环语句计算问题  发帖心情 Post By:2015/1/27 9:41:00 [只看该作者]

想实现代码计算m值,每一行的 m值 = 当前行q值 * 当前行至最末行a值和 + 下一行q值 * 下一行a值和 + .....

老是计算错误,请老师帮忙修改一下,谢谢

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目1.foxdb


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2015/1/27 9:47:00 [只看该作者]

Dim t As Table = Tables("表A")
Dim r As Row = t.Rows(t.Rows.Count-1)
Dim sum As Double = r("q值") * r("a值")
For i As Integer = t.Rows.Count - 2 To 0 Step -1
    r = t.Rows(i)
    sum += r("q值") * r("a值")
    r("m值") = sum
Next

 回到顶部
帅哥哟,离线,有人找我吗?
feiyu988
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:278 积分:2909 威望:0 精华:0 注册:2013/8/28 22:21:00
  发帖心情 Post By:2015/1/27 9:55:00 [只看该作者]

好像还不对,计算出的只是当前行qz值 * 当前行a值至末行和,没有累加 下一行qz值 * 下一行a值  乃至下下行直至    末行q值和一直至最末行*最末行a值


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2015/1/27 9:59:00 [只看该作者]

 肯定对啊,就是每行的结果累加啊

 回到顶部
帅哥哟,离线,有人找我吗?
feiyu988
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:278 积分:2909 威望:0 精华:0 注册:2013/8/28 22:21:00
  发帖心情 Post By:2015/1/27 10:05:00 [只看该作者]

当前计算的只是当前行q值*(当前行a值+下一行a值+...+最末行a值),还需要加上下一行q值*(下一行a值+...+最末行a值),依次累加

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2015/1/27 10:05:00 [只看该作者]

 不明白你的逻辑,具体怎么改你改一下

 

Dim t As Table = Tables("表A")
Dim r As Row = t.Rows(t.Rows.Count-1)
Dim m As Double = r("q值") * r("a值")
Dim q As Double = r("q值")
For i As Integer = t.Rows.Count - 2 To 0 Step -1
    r = t.Rows(i)
    q += r("q值")
    m += q * r("a值")
    r("m值") = m
Next


 回到顶部
帅哥哟,离线,有人找我吗?
feiyu988
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:278 积分:2909 威望:0 精华:0 注册:2013/8/28 22:21:00
  发帖心情 Post By:2015/1/27 10:06:00 [只看该作者]

直至累加至最末行

 回到顶部
帅哥哟,离线,有人找我吗?
feiyu988
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:278 积分:2909 威望:0 精华:0 注册:2013/8/28 22:21:00
  发帖心情 Post By:2015/1/27 10:11:00 [只看该作者]

如果a都是1,q列依次是1、2、3、4、5、6、7、8、9、10的话,第二行的值应该是2*9+3*8+4*7+5*6+6*5+7*4+8*3+9*2+10*1,第三行为3*8+4*7+5*6+6*5+7*4+8*3+9*2+10*1

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2015/1/27 10:17:00 [只看该作者]

Dim t As Table = Tables("表A")
Dim r As Row = t.Rows(t.Rows.Count-1)
Dim m As Double = r("q值") * r("a值")
Dim a As Double = r("a值")
For i As Integer = t.Rows.Count - 2 To 0 Step -1
    r = t.Rows(i)
    a += r("a值")
    m += a * r("q值")
    r("m值") = m
Next

 回到顶部
帅哥哟,离线,有人找我吗?
feiyu988
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:278 积分:2909 威望:0 精华:0 注册:2013/8/28 22:21:00
  发帖心情 Post By:2015/1/27 10:21:00 [只看该作者]

OK,这个代码把我都整蒙了,终于整好了


 回到顶部