VB初级的问题!!求助
VB初级的问题!!求助
1、求质数的过程,就是看这个数字除以另一个整数时,能不能整除,能整除当然就不是质数(所以是if m Mod i=0 then isp=false)。
2、对于一个整数,最笨的方法是让它从2一直除到这个整数-1,比如97从2除到96都不能整除。但这个方法显然不是最佳的。最短步骤就是从2除到这个整数开根(即(Sqr(m),取整 ),剩下的就不用算了,因为它除以比sqr(m)大的数,得数必定小于sqr(m)。
比如97从2除到9(sqr(97)取整)都不能整除,再用97除以10以上的数,得数(取整)不可能大于9(即sqr(97))。所以根据乘法交换律,只需算一次就行了
怎样在vb中自动检测到可用串口号
j = 0
For i = 1 To 16 Step 1
If comISP.PortOpen = True Then '先关闭串口
comISP.PortOpen = False
End If
comISP.CommPort = i
On Error Resume Next '说明当一个运行时错误发生时,控件转到紧接着发生错误的语句之后的语句,并在此继续运行。访问对象时要使用这种形式而不使用 On Error GoTo。
comISP.PortOpen = True
If Err.Number 8002 Then '无效的串口号。这样可以检测到虚拟串口,如果用Err.Number = 0的话检测不到虚拟串口
If j = 0 Then
j = i
End If
cboPort.AddItem "COM" & i '生成串口选择列表
End If
comISP.PortOpen = False
Next i
If j >= 1 Then
cboPort.Text = "COM" & j '自动打开可用的最小串口号
comISP.CommPort = j
comISP.PortOpen = True
cmdOpenCom.Caption = "关闭串口"
shpCOM.FillColor = vbGreen
If Err.Number = 8005 Then '串口已打开,vbExclamation '
comISP.PortOpen = False
cboPort.Text = ""
cmdOpenCom.Caption = "打开串口"
shpCOM.FillColor = vbRed
End If
End If
用vb function 函数编写了一个判断一个数是否为素数的代码,怎么无论输入什么数,结果都是0素数。求解
首先题主的自定义函数部分没有问题,判断过程很简洁
问题在于,对自定义函数的参数传递存在误解
在自定义函数中定义的形式参数x,只是一种形式而已,在实际调用这个函数的时候是不需要在重新定义一个相同的x的,只需要把实际参数z传递给函数既可以,做如下修改就好了
Private Function isprise(x As Integer) As Integer
Dim i As Integer
For i = 2 To x - 1
If x Mod i = 0 Then
Exit For
End If
Next i
If i >= x Then
isprise = 1
Else
isprise = 0
End If
End Function
Private Sub Command1_Click()
Dim z As Integer
z = InputBox("enter dater")
If isprise(z) = 1 Then
Print z; "是素数"
Else
Print z; "不是素数"
End If
End Sub
如有疑问,请继续追问,乐意解答,嘿嘿!
计算机vb上机题目 用function函数,找出8000~9999之间所有的素数。
Private Function isprise(x As Integer) As Integer
Dim i As Integer
For i = 2 To x - 1
If x Mod i = 0 Then
Exit For
End If
Next i
If i >= x Then
isprise = 1
Else
isprise = 0
End If
End Function
Private Sub Command1_Click()
Dim x As Integer
For x = 8000 To 9999
If isprise(x) = 1 Then
Print x;
End If
Next x
End Sub
用vb编写了一个用function函数求100到200之间素数的代码如下,可是运行时单击command1键怎么没反应,求解
因为i>=x的判断放在了循环里面,本应该在循环外,看看是不是没有找到可以整除的数
Private Function isprise(x As Integer) As Integer
Dim i As Integer
For i = 2 To x - 1
If x Mod i = 0 Then
Exit For
End If
Next i
If i >= x Then
isprise = 1
Else
isprise = 0
End If
End Function
vb 怎样突破MSCOMM的串口号限制
j = 0
For i = 1 To 16 Step 1
If comISP.PortOpen = True Then '先关闭串口
comISP.PortOpen = False
End If
comISP.CommPort = i
On Error Resume Next '说明当一个运行时错误发生时,控件转到紧接着发生错误的语句之后的语句,并在此继续运行。访问对象时要使用这种形式而不使用 On Error GoTo。
comISP.PortOpen = True
If Err.Number 8002 Then '无效的串口号。这样可以检测到虚拟串口,如果用Err.Number = 0的话检测不到虚拟串口
If j = 0 Then
j = i
End If
cboPort.AddItem "COM" & i '生成串口选择列表
End If
comISP.PortOpen = False
Next i
If j >= 1 Then
cboPort.Text = "COM" & j '自动打开可用的最小串口号
comISP.CommPort = j
comISP.PortOpen = True
cmdOpenCom.Caption = "关闭串口"
shpCOM.FillColor = vbGreen
If Err.Number = 8005 Then '串口已打开,vbExclamation '
comISP.PortOpen = False
cboPort.Text = ""
cmdOpenCom.Caption = "打开串口"
shpCOM.FillColor = vbRed
End If
End If
VB初级的问题!!求助:等您坐沙发呢!