当前位置:首页 » 操作系统 » vb算法

vb算法

发布时间: 2022-02-07 16:30:15

❶ VB简单算法

第一次
S(1)
m=1
循环1次
x=0
x=x+1
x=1
S=1
S(1)=1

s(2)
M=2
循环2次
X=1
X=X+1
X=2

X=2
X= X+1
X=3
s(2)=3

S(1)+S(2) 当然是 4 了

第二次按

S(1)
m=1
循环1次
x=3
x=x+1
x=4
S=4
S(1)=1

s(2)
M=2
循环2次
X=4
X=X+1
X=5

X=5
X= X+1
X=6
s(2)=6

S(1)+S(2) 当然是 10 了

第三次按 自己推到把!!!

第四次 22

第五次按 28

关键句!!
Static x As Integer

在过程级别中使用,用于声明变量并分配存储空间。在整个代码运行期间都能保留使用 Static 语句声明的变量的值。

❷ vb中的算法问题

你的举例很简单的啊,用for 循环就可以实现。

Private Sub Command1_Click()
i = 0
For a = 1 To 9
For b = 3 To 9
If a + b = 15 Then List1.AddItem "a=" & a & ";b=" & b: i = i + 1
Next b
Next a
Print "a+b=15符合条件的解法有:" & i & "种"
End Sub

计算出来符合条件的解为4组。
因为你的题目太简单了,我不知道到底从哪儿给你说起。所以就把你那个例子的解法写给你了。

❸ VB中几大算法的概念

自己上网络 搜一下不就知道了。

排序算法 所谓排序,就是使一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起来的操作。

解析算法 所谓解析法(analysis algorithm)是指用解析的方法找出表示问题的前提条件与结果之间关系的数学表达式,并通过表达式的计算来实现问题求解。

事先考虑到某一变量可能取的值,尽量用自然语言中含义清楚的单词来表示它的每一个值,这种方法称为枚举方法

索引查找是在索引表和主表(即线性表的索引存储结构)上进行的查找。索引查找的过程是:首先根据给定的索引值K1,在索引表上查找出索引值等于KI的索引项,以确定对应予表在主表中的开始位置和长度,然后再根据给定的关键字K2,茬对应的子表中查找出关键字等于K2的元素(结点)。对索引表或子表进行查找时,若表是顺序存储的有序表,则既可进行顺序查找,也可进行二分查找,否则只能进行顺序查找

全来自网络 怎么会搜不到呢。。

❹ VB中 / 是什么算法

除法运算,如:

❺ vb算法初步每个符号代表什么

循环结构允许重复执行一行或数行代码。Visual Basic 支持的循环结构有:

Do...Loop

For...Next

For Each...Next
Do...Loop
用 Do 循环重复执行一语句块,且重复次数不定。Do...Loop 语句有几种演变形式,但每种都计算数值条件以决定是否继续执行。如同 If...Then condition 必须是一个数值或者值为 True(非零)或 False(零)的表达式。

在下面的 Do...Loop 循环中,只要 condition 为 True 就执行 statements。

Do While condition
statements

Loop

当 Visual Basic 执行这个 Do 循环时会首先测试 condition。如果 condition 为 False(零),则跳过所有语句。如果 condition 为 True(非零),则 Visual Basic 执行语句,然后退回到 Do While 语句再测试条件。

因此,只要 condition 为 True 或非零,循环可以随意执行多少次。如果 condition 一开始便为 False,则不会执行语句。例如,以下过程将计算某一目标字符串在另一字符串中出现的次数,只要发现目标串就执行循环:

Function CountStrings (longstring, target)
Dim position, count
position = 1
Do While InStr (position, longstring, target)
position = InStr(position, longstring, target)_
+ 1
count = count + 1
Loop
CountStrings = count
End Function

如果目标字符串未出现在另一个字符串中,则 InStr 返回 0,而且不再执行循环。

Do...Loop 语句的另一种演变形式是先执行语句,然后在每次执行后测试 condition。这种形式保证 statements 至少执行一次:

Do
statements

Loop While condition

其它两种演变形式类似于前两个,所不同的是,只要 condition 为 False 而不是 True,它们就执行循环。

循环零次或多次 至少循环一次
Do Until condition
statements
Loop Do
statements
Loop Until condition

.

For...Next
在不知道循环内需要执行多少次语句时,宜用 Do 循环。但是,在知道要执行多少次时,则最好使用 For...Next 循环。与 Do 循环不同, For 循环使用一个叫做计数器的变量,每重复一次循环之后,计数器变量的值就会增加或者减少。For 循环的语法如下:

For counter = start To end [Step increment]
statements

Next [counter]

参数 Counter、Start、end 和 increment 都是数值型的。

注意 increment 参数可正可负。如果 increment 为正,则 Start 必须小于等于 end,否则不能执行循环内的语句。如果 increment 为负,则 Start 必须大于等于 end,这样才能执行循环体。如果没有设置 Step,则 increment 缺省值为 1。

在执行 For 循环时,Visual Basic

设置 counter 等于 start。

测试 counter 是否大于 end。若是的话,则 Visual Basic 退出循环。
(若 increment 为负,则 Visual Basic 测试 counter 是否小于 end。)

执行语句。

counter 增加一,或者增加 increment(如果已指定的话)。

重复步骤 2 到步骤 4。
以下代码打印出所有有效的屏幕字体名:

Private Sub Form_Click ()
Dim I As Integer
For i = 0 To Screen.FontCount
Print Screen.Fonts (i)
Next
End Sub

在 VCR 示例应用程序中,HighlightButton 过程使用 For...Next 循环,一步步经过 VCR 窗体的控件集合,并显示适当的 Shape 控件:

Sub HighlightButton (MyControl As Variant)
Dim i As Integer
For i = 0 To frmVCR.Controls.Count - 1
If TypeOf frmVCR.Controls (i) Is Shape Then
If frmVCR.Controls (i).Name = MyControl Then
frmVCR.Controls (i).Visible = True
Else
frmVCR.Controls (i).Visible = False
End If
End If
Next
End Sub

For Each...Next
For Each...Next 循环与 For...Next 循环类似,但它对数组或对象集合中的每一个元素重复一组语句,而不是重复语句一定的次数。如果不知道一个集合有多少元素, For Each...Next 循环非常有用。

For Each...Next 循环的语法如下:

For Each element In group
statements

Next elementt

例如,下面的子过程打开 Biblio.mdb,把每一个表的名字加到列表框中。

Sub ListTableDefs ()
Dim objDb As Database
Dim MyTableDef as TableDef
Set objDb = OpenDatabase("c:\vb\biblio.mdb", _
True, False)
For Each MyTableDef In objDb.TableDefs ()
List1.AddItem MyTableDef.Name
Next MyTableDef
End Sub

请记住使用 For Each...Next 时的几点限制:

对集合,element 只能是 Variant 变量,或一般的 Object 变量,或“对象浏览器”中列出的对象。

对数组,element 只能是 Variant 变量。

For Each...Next 不能与用户自定义类型的数组一起使用,因为 Variant 不可能包含用户自定义类型。

❻ VB一个算法问题。

楼主到现在还没结贴证明还没找到所求,正好有空,我就补上VB6的码:
问题考点:数字组合算法,就用最简单的递归吧。
你先建三text,text1的属性:scrollbars设为2 multiline设定true, text1纵轴拉长点,text2、text3左右拉长点点(好看数),以及一command1
Option Explicit
Dim sourceArray, dstArray, strSum As String, isExist() As Integer
Private Sub Combine(a, n As Integer, m As Integer, b, mm As Integer) '递归算法
Dim i%, j%, strSum$, sum%
For i = n To m Step -1
b(m - 1) = i - 1
If m > 1 Then
Call Combine(a, i - 1, m - 1, b, mm)
Else
sum = 0
strSum = ""
For j = mm - 1 To 0 Step -1
sum = sum + a(b(j))
strSum = strSum & a(b(j)) & "+"
Next j
isExist(sum) = 1
strSum = Left$(strSum, Len(strSum) - 1) & "=" & sum
Text1 = Text1 & strSum & vbCrLf
DoEvents
End If
Next i

End Sub
Private Sub Command1_Click()
Dim nCount As Integer, ArrayMax As integer, ArrayMin As integer, strTemp As String, intTemp As integer
Dim i As Integer, sum As Integer
nCount = InputBox("请输入该系列数字的总数:")
ArrayMin = InputBox("请输入该系列数字的最小值:")
Do While ArrayMax <= ArrayMin
If ArrayMax <> 0 Then
ArrayMax = InputBox("最大值必须比最小值" & ArrayMin & "大,请输入该系列数字的最大值:")
Else
ArrayMax = InputBox("请输入该系列数字的最大值:")
End If
Loop
Randomize
Text1 = ""
Text2 = "该系列数字具体为:"
For i = 1 To nCount
intTemp = Int(Rnd * (ArrayMax - ArrayMin + 1) + ArrayMin) '随机产生数字
Text2 = Text2 & intTemp & " "
strTemp = strTemp & intTemp & " "
Next
sourceArray = Split(RTrim$(strTemp))
dstArray = Split(RTrim$(strTemp))
For i = 0 To nCount - 1
sum = sum + sourceArray(i)
Next i
ReDim isExist(sum) As Integer
Text3 = "计算中,请稍等......"
For i = 1 To nCount
Call Combine(sourceArray, nCount, i, dstArray, i)
Next
Text3 = "可能的和一定没下列数字:"
For i = 0 To sum
If isExist(i) = 0 Then
Text3 = Text3 & i & " "
End If
Next
Text3 = Text3 & "以及大于" & sum & "的所有数" '最终结果
End Sub

❼ VB算法问题

ac 没有定义,只定义了a=12 b=5 c=7 没有定义的,默认为0
于是ac=0 如果是 a*c=12*7
(aModB) 应该是 (a mod b) 吧 => 12 mod 5 = 2
int(13/5) = 2
值应该是4

最后只能说,你的表达式写得对么?

❽ VB阶乘的算法

求阶乘的两种算法

方法一(计数循环)

使用For语句。

Function Factorial(n As Integer) As Long
On Error GoTo Hander
Dim i As Long
Factorial = 1

For i = n To 1 Step -1
Factorial = Factorial * i
Next i

Exit Function

Hander:
MsgBox "数值过大!", vbExclamation, "Error"
Resume Next

End Function

方法二(递归)

简单地说,递归就是一个过程调用过程本身。
思路为:n! = n * (n-1)!

Function Factorial(n As Integer) As Long
On Error Goto Hander

If n > 0 Then
Factorial = n * Factorial(n - 1)
Else
Factorial = 1
End If
Exit Sub

Hander:
Msgbox "数值过大!",vbExclamation,"Error"
Resume Next

End Function

例如,当 n=5 时,求 Factorial(5) 的值变为 5 * Factorial(4)。而 Factorial(4) 又可变为 4 * Factorial(3) ......,Factorial(2)又可变为 2 * Factorial(1),这时 Factorial(1) = 1 已知,递归调用停止,其执行结果为 5 * 4 * 3 * 2 * 1,即 5! 。

过程中还是用了错误陷阱(On Error...),以防数值过大发生溢出错误。

热点内容
单片机android 发布:2024-09-20 09:07:24 浏览:765
如何提高三星a7安卓版本 发布:2024-09-20 08:42:35 浏览:664
如何更换服务器网站 发布:2024-09-20 08:42:34 浏览:311
子弹算法 发布:2024-09-20 08:41:55 浏览:289
手机版网易我的世界服务器推荐 发布:2024-09-20 08:41:52 浏览:817
安卓x7怎么边打游戏边看视频 发布:2024-09-20 08:41:52 浏览:162
sql数据库安全 发布:2024-09-20 08:31:32 浏览:94
苹果连接id服务器出错是怎么回事 发布:2024-09-20 08:01:07 浏览:507
编程键是什么 发布:2024-09-20 07:52:47 浏览:658
学考密码重置要求的证件是什么 发布:2024-09-20 07:19:46 浏览:481