请教各位!关于算法·

csh79 2003-02-25 10:46:00
在vb中怎样做无限循环?

有谁做过移动平均值法,即将采样的数据按顺序放到一个数组里,在每次计算前先顺序移动数据,将队列前的最先采样的数据移出,然后将最新采样的数据补充到队列的尾部,以保证数据缓冲区里有固定数目的数据,而且数据按采样的先后顺序排列,最后计算其平均值。
请各位高手指点。
...全文
165 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
用户 昵称 2003-02-25
  • 打赏
  • 举报
回复
循环数组在通讯和数据采集用的特别多,数组可大可小,但是必须是2^N。
northwolves 2003-02-25
  • 打赏
  • 举报
回复
试试我写的下面的例子:

Dim coll As New Collection
Dim num As Long
Private Sub Command1_Click()
Dim avg As Double
avg = 0
Dim a(1 To 50) As String
For i = 1 To 50
a(i) = coll.Item(i)
avg = avg + Val(coll.Item(i))
Next
MsgBox "数据:" & Join(a(), ",") & vbCrLf & vbCrLf & "均值:" & avg / 50
End Sub

Private Sub Command2_Click()
num = num + 1
coll.Remove 1
coll.Add num
End Sub

Private Sub Form_Load()
For i = 1 To 50
coll.Add i
Next
num = 50
End Sub
用户 昵称 2003-02-25
  • 打赏
  • 举报
回复
1)采用do loop方式
2)采用循环表,比如数组长度为256,一个写指针,一个读指针,如果读指针=写指针,则缓冲区空,如果写指针=读指针-1,表明缓冲区满,而读、写指针每次读、写+1就必须计算一次即 读指针 = 读指针 + 1:读指针 = 读指针 and 256,写指针也是如此。
用户 昵称 2003-02-25
  • 打赏
  • 举报
回复
1)do while

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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