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初級的問題!!求助