Board logo

標題: 程式設計的 三個基本結構 [打印本頁]

作者: sjgau    時間: 2013-10-23 11:49     標題: 程式設計的 三個基本結構

一 順序
以 兩個變數的值交換作為 範例


二 判斷
以 y= a*(x^2) + b*x + c = 0 求根為例子

三 迴圈
以 加總為 範例
作者: sunnyso    時間: 2013-10-23 21:49

回復 1# sjgau


    有例子嗎? 附件參考? 謝謝
作者: sjgau    時間: 2013-10-27 04:30

' SEQUENTIAL 程式設計結構的 範例

Sub test()
   Dim a As Integer, b As Integer, c As Integer
   Randomize
   ' 設定亂數的 種子數
   
   a = Int(Rnd * 6 + 1)
   b = Int(Rnd * 6 + 1)
   
   ' show a, b
   MsgBox ("a= " & a & ", b= " & b)
   
   ' swap a, b
   c = a
   a = b
   b = c
   
   MsgBox ("a= " & a & ", b= " & b)
End Sub
作者: sjgau    時間: 2013-10-27 04:32

回復 3# sjgau


    Randomize 陳述式
請參閱     範例     特性

初始化亂數產生器。

語法

Randomize [number]

選擇性引數 number 可以是一型態為 Variant 的值或任何數值運算式。

請注意

Randomize 使用 number 的值當成新的亂數種子來起始亂數產生器,若要得到一亂數值,則可呼叫 Rnd 函數。如果省略 number,則會以作業系統現在時間來當做新的亂數種子。

如果沒有呼叫 Randomize 來起始亂數產生器,Rnd 函數(沒有引數)則使用上次呼叫 Rnd 函數所得的亂數值當做新的亂數種子。

附註 若想得到重覆的亂數序列,可以在呼叫 Randomize 之前先呼叫 Rnd 並且傳入一小於 0 的引數值。光是用同樣的亂數種子呼叫 Randomize 兩次的話,並不會得到兩次相同的亂數序列。
作者: sjgau    時間: 2013-10-27 04:33

Rnd 函數
請參閱     範例     特性

傳回一型態為 Single 的值,其內容為一亂數值。

語法

Rnd[(number)]

選擇性引數 number 可以是一型態為 Single 的值,或任何數值運算式。

傳回值
作者: sjgau    時間: 2013-10-28 06:28

看到 RND 傳回 SINGLE, 就很洩氣。
因為 SINGLE的變化,只有 2^24
大約是 10^7, 實在是 不夠用

所以,如果自己寫 RND, 可以有 2^31 的變化,
才比較像是 亂數
作者: sjgau    時間: 2013-10-28 10:53

  1. Sub test1016()
  2.    Randomize
  3.    Dim a As Single, b As Single, c As Single
  4.    
  5.    a = Rnd * 90 + 10
  6.    b = Rnd * 90 + 10
  7.    
  8.    ' show a, b
  9.    MsgBox (" a= " & a & ", b= " & b)
  10.    
  11.    ' 我們 希望 a <= b
  12.    If (a > b) Then
  13.       ' 如何把 a, b 的值交換
  14.       c = a
  15.       a = b
  16.       b = c
  17.       MsgBox ("*** 交換以後 a= " & a & ", b= " & b)
  18.    End If
  19. End Sub
複製代碼
回復 7# sjgau
作者: sjgau    時間: 2013-10-28 11:22

  1. Sub test1016()
  2.    Dim no As Integer, sum As Integer, i As Integer
  3.    Dim chk As Double
  4.    no = 100
  5.    
  6.    sum = 0
  7.    For i = 1 To no
  8.       sum = sum + i
  9.    Next i
  10.    
  11.    ' 驗算
  12.    chk = (1# + no) * (no - 1# + 1#) / 2#
  13.    MsgBox ("no= " & no & ", sum= " & sum & ", check= " & chk)
  14. End Sub
複製代碼
回復 8# sjgau




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)