2010年1月29日 星期五

2010/01/29 文數字排序

由"in.txt"讀取一串的文字或數字,將其按數字、大寫英文字母、小寫英文字母排序。

出自  程式設計隊訓練教材  NO.9 文數字排序

輸入範例:
DoYouHave1456879DollarsToBorrow
輸出範例:
1456789BDDHTYaaelloooooorrrsuvw

2010年1月28日 星期四

2010/01/28 平均數、眾數

用亂數產生一個含有50個整數的數列,該數列中之各元素值範圍在170到180之間(包含170與180),請由小到大逐一在螢幕上顯示(以10為一組,分列印出),並列印出此數列之平均數、眾數及此眾數出現之次數。
說明:平均數為所有數之總和除以數列之元素各數
     眾數則是此數列中,出現次數最多的數(若有兩個以上的眾數,則逐一列出)

出自  程式設計隊訓練教材  NO.14 平均數、眾數

2010年1月27日 星期三

2010/01/27 年曆轉換

由"in.txt"讀取一正整數N,印出生肖及天干地支。(一甲子為60年)

輸入範例:

2000

輸出範例:

豬辛亥

出自  程式設計隊訓練教材  NO.19  年曆轉換

2010年1月26日 星期二

2010/01/26 字串內容

請設計一程式,讀取"in.txt"中A、B兩字串(A長度小於B),並判斷字串A中之所有字元是否依序(不要求相鄰)出現在字串B中(大小寫不分)。

輸入範例:

A=dos
B=Doctor of philosophy

輸出範例:

輸出答案為  是

出自  程式設計隊訓練教材  NO.18  字串內容

2010年1月24日 星期日

2010/01/25 門牌號碼

        有一個程式設計師住在一條街上,這條街上的房子都在路的同一邊且門牌號碼是從1-2-3-4-....連續下來。有一天晚上他牽著他的狗出門散步,出門之後往左邊走,因為溜狗有點無聊,所以她順便把經過的房子的門牌號碼都加起來。隔天晚上他又出門溜狗,但這一次她往右走並且也把經過的門牌號碼加起來。讓他很驚訝的是:這兩次的數字竟然一樣。
當然,這個巧合現象跟這條街共有幾間房子(n),以及他住在第幾間房子(k)有關係。請寫出一個程式找出前十個滿足這樣條件的數對(k,n)。在輸出中有前2個這樣的數對。
每一對數字k,n的長度均為10,向右靠齊。請將檔案輸出至"out.txt"。 ※此題無須"in.txt"

輸出範例:
6  8
35  49

出自  程式設計隊訓練教材 NO.34 門牌號碼

2010年1月21日 星期四

新知識-函數

Split
  用Split可以把字串分成陣列,例:
Private Sub Form_Load()
    Label1.Caption = "德 本 立"
    A = Split(Label1.Caption)
End Sub
結果:A(0) = "德",A(1) = "本",A(2) = "立"
Private Sub Form_Load()
    Label1.Caption = "德,本,立"
    A = Split(Label1.Caption, ",")
End Sub
結果:A(0) = "德",A(1) = "本",A(2) = "立"
Private Sub Form_Load()
    Label1.Caption = "德本立"
    A = Split(Label1.Caption, "")
End Sub
結果:A(0) = "德本立"



Replace
Replace:取代字串
Function Replace(Expression As String, Find As String, Replace As String, [Start As Long = 1], [Count As Long = -1], [Compare As VbCompareMethod = vbBinaryCompare]) As String

取代後的字串=Replace(原字串,要被取代的字串,取代成的字串,[開始搜索位置],[取代的次數],[文字比較的模式])

e.g
Dim strtxt As String
strtxt = "hello"
strtxt = Replace(strtxt, "ll", "AA")
Print strtxt 'heAAo

UCase、LCase
  利用Ucase和LCase可以將字串大小寫轉換:
Text1.Text = UCase("abcDEF123") '結果 = "ABCDEF123"
Text1.Text = LCase("abcDEF123") '結果 = "abcdef123"
全形字元則沒有影響

InStr、InStrRev
利用InStr和InStrRev可以搜尋字串位置:
a = InStr("abcdefg", "c") 'a取得傳值,"abcdefg"是搜索範圍,"c"是要被搜尋的字串
Print a '結果a=3,即是"c"在字串中的第三個字完
利用InStrRev,我們還可以倒轉找尋字串
a = InStrRev("acacacacaca", "c") 'a取得傳值,"c"是要被搜尋的字串
Print a '結果a=10,即是"c"在字串中的從後數上第二個字完
如果找不到字串,將會傳回0


Space
  這個是用來格空格的函數:
Print "a" & Space(11) & "b" & Space(6) & "c" '結果 = a           b      c


引用自

VB範例網--VB函數

http://www.vbex.net/

2010/01/22 費氏數

由"in.txt"讀取一數字n求出第n個費氏數,費氏數定義如下:
           0,當n=0時
f(n)=   1,當n=1時
            f(n-1)+f(n-2),當n>=2時
在此列舉一串數列:0、1、1、2、3、5、8、13、21、34、55、89、144、233,這些就是由0<=n<=13所組成的費氏數。
※(0<=n<=1000)

輸入範例:8

輸出範例:21

出自 程式設計試題匯集 p.43 費氏數