湖濱散記部落格的樹心幽徑[login][主頁]
848:20221219嘸蝦米簡速中文字根例字與拆碼-4與二分搜尋程式
本次上課操作說明WORD檔: uploads/20221219T848.docx
有關如何安裝蝦米輸入法請參考 747:20220214安裝並使用蝦米中文輸入法
上一回教學內容: 842:20221218蝦米簡速中文字根例字與拆碼-3與循序搜尋程式
下一回教學內容: 851:20221226嘸蝦米簡速中文字根例字與拆碼-5與氣泡排序程式

(1)執行excel並輸入如下資料(F2鍵可編修選定的儲存格,ALT+ENTER鍵可在儲存格內換行)






(3A)按CTRL+A以選取整個工作表,然後設定為「20點字」及「所有框線」。


(3B)於A1輸入標題文字「20220526嘸蝦米簡速中文字根例字與拆碼-4與二分搜尋程式」

(3C)將「NO,例說,第2字,PRE,B欄+D欄,按鈕2結果A,按鈕2結果B」貼入A2
並選「資料/資料剖析/分隔符號」功能,分隔符號勾逗號來將A2內容切開為A2:G2的各欄文字。
並於上方英文字母欄名框邊拖曳來調整欄寬,使如上切開的各欄文字皆可完整顯示。

(3D)在A3及A4儲存格分別輸入1.1和2.1,並選住A3:A4
接著在A4儲存格右下角格線+處往下拖曳到A21來填入等差數列1.1到19.1


(3E)在C3儲存格輸入公式=MID(B3,2,1),並將之拷給C4:C21。

(3F)在E3儲存格輸入公式 =B3 & "(" & D3 & ")",並將之拷給E4:E21。

(4A)同(3C)將「|尋找|=C13 |=VLOOKUP($C$22,$C$3:$G$21,2,FALSE) |=VLOOKUP($C$22,$C$3:$G$21,3,FALSE)|=VLOOKUP($C$22,$C$3:$G$21,4,FALSE) |=VLOOKUP($C$22,$C$3:$G$21,5,FALSE) 」貼入A22並將A22內容以|為分隔符號切開為A22:G22的各欄文字,本項操作將在第22列各欄植入搜尋在C22所給定中文字的公式。

(5A)選「檔案功能表」/選項/自訂功能區/主要定位點/核取「開發人員」:

(5B)選「開發人員」功能表/插入按鈕/在F3:F4拖曳產生一個按鈕1/並輸入如下按鈕1觸發程式碼/並執行之。
Sub 按鈕1_Click()

 K = Val(InputBox("請輸入要找的數字", "用二分搜尋在A3:A21找給定的數", "12.1"))
 MsgBox ("你輸入的字K=" & K)
 L = 3: R = 21
 While (L <= R)
    M = Int((L + R) / 2)
    V = Range("A" & M).Value
    If (V = K) Then
       Cells(M, 1).Interior.Color = RGB(0, 255, 255)
       MsgBox ("在目前範圍中間註標M=" & M & " 找到了K=" & K)
       Exit Sub
    Else
        Cells(M, 1).Interior.Color = RGB(0, 0, 255)
        If (K > V) Then
            L = M + 1
            MsgBox (K & "=K > 中間數V=" & V & " 要往大的一方找" & " M=" & M & " L=" & L & " R=" & R)
        Else
            R = M - 1
            MsgBox (K & "=K < 中間數V=" & V & " 要往小的一方找" & " M=" & M & " L=" & L & " R=" & R)
        End If
    End If
 Wend
 If (L > R) Then MsgBox ("找不到K=" & K)

End Sub


(5C)同(5B)在F5:F6拖曳產生一個按鈕2/並輸入如下按鈕2觸發程式碼/並執行之。
Sub 按鈕2_Click()

  i = 3
  While (i <= 21)
    Cells(i, 6).Interior.Color = RGB(128, 128, 255)
    Cells(i, 6).Value = i
    Range("G" & i).Value = i + 10000
    i = i + 1
  Wend

End Sub


789:20220526嘸蝦米簡速中文字根例字與拆碼-4與二分搜尋程式

select id,article_id,topic,text from lt_articles_text where article_id =848; ok. update lt_articles set num_reads=num_reads +1 where id=848; ok.