PCDVD數位科技討論區
PCDVD數位科技討論區   註冊 常見問題 標記討論區為已讀

回到   PCDVD數位科技討論區 > 其他群組 > 疑難雜症區
帳戶
密碼
 

  回應
 
主題工具
涉寒
Senior Member
 

加入日期: Oct 2001
文章: 1,327
Question 請教學過VB6的前輩...

這是一個檢查質數的程式,已經查過輸了,但有些地方不甚明瞭,麻煩前輩指點迷津,謝謝!

Private Function abc(ByVal Number As Integer) As Byte
'1 = 是質數
'2 = 不是質數
'3 = 輸入錯誤
Dim a As Integer
(a代表的是什麼???)
Dim b As Integer
(為何要宣告b???程式碼內完全沒有提到b...)
If Number <= 1 Then
abc = 3
(上面這小段程式碼麻煩解說,謝謝)
Exit Function
End If
If Number = 2 Then abc = 1
Number = Fix(Number)
(為何要加上"Fix(Number)"???不加上去會有什麼差異???)
For a = 2 To Number - 1
(2 To Number - 1這一段不懂???)
If Number Mod a = 0 Then
(Mod的意義是什麼???)
abc = 2
Exit Function
End If
Next a
abc = 1
End Function
     
      
舊 2002-12-02, 11:08 AM #1
回應時引用此文章
涉寒離線中  
chihkuo
*停權中*
 

加入日期: Feb 2002
您的住址: 台北石牌
文章: 27
Exclamation 那程式只是其中一部分吧

那個function寫的不夠"獨立"
它還會去call其它的function吧!
另外主程式部分你沒有帶出來,要看問題點實在有點困難

另請問你認為你的vb功力到如何程度?
那本書是那一本書?

(a代表的是什麼???)
是這個function要用的一個內部變數

(為何要宣告b???程式碼內完全沒有提到b...)
不是程式不夠完整,就是編輯人員弄錯了,要不就是作者功力...

(上面這小段程式碼麻煩解說,謝謝)
abc是function名,abc=就是這個function會傳回的值

(為何要加上"Fix(Number)"???不加上去會有什麼差異???)
不是程式不夠完整,就是編輯人員弄錯了,要不就是作者功力...

(2 To Number - 1這一段不懂???)
迴圈

(Mod的意義是什麼???)
"前面數字"除以"後面數字"後的"餘數"
 
舊 2002-12-02, 11:31 AM #2
回應時引用此文章
chihkuo離線中  
stariloveyou
*停權中*
 
stariloveyou的大頭照
 

加入日期: Nov 2002
文章: 400
這是一個檢查質數的程式,已經查過輸了,但有些地方不甚明瞭,麻煩前輩指點迷津,謝謝!

Private Function abc(ByVal Number As Integer) As Byte
'1 = 是質數
'2 = 不是質數
'3 = 輸入錯誤
Dim a As Integer
(a代表的是什麼???)


/*宣告 a 是一個整數 這個整數 可代表 0~65535*/


Dim b As Integer
(為何要宣告b???程式碼內完全沒有提到b...)



/*宣告 b 是一個整數 這個整數 可代表 0~65535*/




If Number <= 1 Then
abc = 3
(上面這小段程式碼麻煩解說,謝謝)


/* 假如 number 這個數值 小於或等於 1 則將 abc=3
將 3 這個整數 丟給變數 abc 也就是說 設定 abc=3 */



Exit Function
/* 離開 Function 這個 函數 */
End If


/* 這是一種格式 if xxx then
End if */


If Number = 2 Then abc = 1



/* 假如 number 這個數值 等於 2 則將 abc=1
將 3 這個整數 丟給變數 abc 也就是說 設定 abc=1 */




Number = Fix(Number)
(為何要加上"Fix(Number)"???不加上去會有什麼差異???)

/* 將 Number 這個數值 丟進 Fix() 這個函式作運算 運算完並將結果 丟給
Number */







For a = 2 To Number - 1
(2 To Number - 1這一段不懂???)



/* 這是要讓程式 跑回圈的 假如 Number 為 20
Number -1 就是 19
這個程式 會重 2 開始 跑到 19 然後跳開
2 開始執行回圈
3
4
:
:
19
20 跳出回圈


If Number Mod a = 0 Then
(Mod的意義是什麼???)
abc = 2
Exit Function
End If


/* Mod 是 兩數想除取其於數 5 Mod 2 餘數 為 1
則 5 mod 2 就是 1 */





Next a



/* 跑回圈格式

for * to * step *
netx *

*/



abc = 1
End Function
舊 2002-12-02, 06:53 PM #3
回應時引用此文章
stariloveyou離線中  
涉寒
Senior Member
 

加入日期: Oct 2001
文章: 1,327
感謝兩位大大,寫的真詳細...
小弟只是初學者,參考的是學校的課本。

因為版權的問題我不敢全部轉載上來,我把連結附上,
http://vbex.net/selffunction/isundivnum.html
粉小的程式,適合初學。

此文章於 2002-12-03 12:44 AM 被 涉寒 編輯.
舊 2002-12-03, 12:17 AM #4
回應時引用此文章
涉寒離線中  
kelon
Master Member
 
kelon的大頭照
 

加入日期: Jun 2001
您的住址: 中和
文章: 1,760
VB初學者可以去圖書館借王國榮的書...
超入門又一定看得懂...
還是比較建議學 C/C++
__________________
舊 2002-12-03, 09:13 AM #5
回應時引用此文章
kelon離線中  
P&W
Elite Member
 
P&W的大頭照
 

加入日期: Jul 2001
您的住址: Red Planet
文章: 4,277
王國榮的書確實很簡單,適合初學者~~
__________________
The war is crates by fear and gap.
舊 2002-12-03, 03:53 PM #6
回應時引用此文章
P&W離線中  
stariloveyou
*停權中*
 
stariloveyou的大頭照
 

加入日期: Nov 2002
文章: 400
vb 很容易 但太過龐大
要精通不容易 而且 物件越來越多
每天都有新的 唉 粉累喔
不過 c 最好能懂點
加油~~~~
加油~~~~
舊 2002-12-03, 04:25 PM #7
回應時引用此文章
stariloveyou離線中  
涉寒
Senior Member
 

加入日期: Oct 2001
文章: 1,327
又要麻煩各位了,我們老師又出題給我...
如果我們已經知道這個數"不是質數",那要如何列出他的因數於MsgBox上???
我們老師有提示 re = i,但我不知道怎麼PO出來...

Private Function Math(ByVal Number As Integer) As Byte
Dim i As Integer
If Number <= 1 Then
Math = 3
Exit Function
End If
If Number = 2 Then
Math = 1
End If
For i = 2 To Number / 2
If Number Mod i = 0 Then
Math = 2
Exit Function
End If
Next i
Math = 1
End Function
還有這裡三個 If 要如何改成 ElseIf 呢???
小弟有嘗試改過,不過就是有問題...

Private Sub Command1_Click()
On Error GoTo HERE
任意數 = InputBox("請入一個數", "檢查質數")
Select Case Math(任意數)
Case 1
MsgBox "是質數"
Case 2
MsgBox "不是質數"
Case 3
MsgBox "無意義"
End Select
Exit Sub
HERE:
MsgBox "錯誤"
End Sub

此文章於 2003-01-02 07:45 PM 被 涉寒 編輯.
舊 2003-01-02, 07:16 PM #8
回應時引用此文章
涉寒離線中  
涉寒
Senior Member
 

加入日期: Oct 2001
文章: 1,327
推...
舊 2003-01-03, 07:54 AM #9
回應時引用此文章
涉寒離線中  
涉寒
Senior Member
 

加入日期: Oct 2001
文章: 1,327
二推...
舊 2003-01-03, 11:35 PM #10
回應時引用此文章
涉寒離線中  


    回應


POPIN
主題工具

發表文章規則
不可以發起新主題
不可以回應主題
不可以上傳附加檔案
不可以編輯您的文章

vB 代碼打開
[IMG]代碼打開
HTML代碼關閉



所有的時間均為GMT +8。 現在的時間是04:07 PM.


vBulletin Version 3.0.1
powered_by_vbulletin 2026。