3d开奖直播广播在线:2020選考總復習 信息技術 必修3 第二章 算法的程序實現

來源:百度  [  文檔由 zxldwlsj 貢獻   ]  責編:王強  |  侵權/違法舉報

049期双色球开奖直播 www.lvelns.com.cn 第二章 算法的程序實現

[考試標準]

考試內容

考試要求

考試屬性

1.枚舉算法及程序實現

c

加試

2.解析算法及程序實現

c

3.排序算法及程序實現

(1)冒泡排序

(2)選擇排序

c

4.查找算法及程序實現

(1)順序查找

(2)對分查找

c

5.遞歸算法

a

6.VB訪問Access數據庫

(1)通過ADO對象連接數據庫

(2)通過Recordset對象獲取數據表中的數據

a

一、排序算法及程序實現

1.排序的含義及方式

(1)所謂排序就是將無序的數列變成有序的數列。

(2)排列方式分為升序(也稱遞增,即從小到大排列)和降序(也稱遞減,即從大到小排列)。

2.冒泡排序

(一)算法基本思想

冒泡排序法第i遍排序是從第n個數(從后向前比較)或者第1個數(從前向后比較)開始,依次比較相鄰的兩個數,逆序時交換兩個數,把第i個有序的數交換到第i個或者第n-i+1個位置。

數據的交換是在內層循環中發生。

(二)核心代碼

①將數組a(1 to n)從大到小排序,從后向前比較

For i=1 To n-1

 For j=n To i+1 Step-1

If d(j-1) t=d(j):d(j)=d(j-1):d(j-1)=t

End If

 Next j

Next i

②將數組a(1 to n)從大到小排序,從后向前比較

For i=1 To n-1

 For j=1 To n-i

If d(j) t=d(j):d(j)=d(j+1):d(j+1)=t

End If

 Next j

Next i

3.選擇排序

(1)選擇排序的基本思想

每趟排序是在所有的數據中找出最小(或最大)的數據,使它與第一個數據相互交換位置,然后再在剩下的數據中找出最小(或最大)的數據,與第二個數據相互交換位置,以此類推,直到所有元素成為一個有序序列。

(2)選擇排序的程序實現

說明:要排序的n個數據已存放d數組中。

以升序為例的程序如下:

For i=1 To n-1 ′n個排序共進行n-1趟排序

 k=i ′第i趟排序時,首先用k記錄i

 For j=i+1 To n ′k位置上的數依次與j位置上的數進行比較

If d(k)>d(j) Then k=j ′若找到比k位置上更小的數,則更新k的值

Next j

If k<>i Then ′若i位置上的數不是最小數,則和k位置上的數進行互換

 temp=d(i)

 d(i)=d(k)

 d(k)=temp

End If

Next i

溫馨提示:若要按降序排列,只要將語句If d(k)>d(j) Then k=j改成If d(k)<d(j) Then k=j即可。

二、查找算法及程序實現

1.查找算法

所謂查找就是在指定的數據中尋找某一特定的數據。

查找結果有兩種,即找到(查找成功)和未找到(查找失敗)。

2.順序查找

(1)順序查找的基本思想

從第一個數據開始,從左往右(或從上到下)將數據按順序逐個與給定的值進行比較,若某個數據和給定值相等,則查找成功,找到并輸出所查數據的位置;反之,查找失敗。

若有n個數,則可能的最多查找次數為n。

(2)順序查找算法基本框架

設要查找的數為key,待查找的數存放在數組d中。

For語句框架:

 For i=1 to n

若d(i)=key,則表示找到,做相應處理

 Next i

 若i>n表示未找到

Do While語句框架:

 i=1

 Do while i<=n

若d(i)=key,則表示找到,做相應處理

i=i+1

 Loop

 若i>n表示未找到

(3)順序查找的程序實現

在n個數組元素中依次查找,找到第1個滿足條件的值,找到即結束,輸出找到元素所在的位置;若找不到,輸出“未找到”。

程序實現:

設要查找的數據是key(在文本框Text1中輸入),查找的數據存放在數組d中。

pos為找到數的位置,pos=0表示未找到。

P表示查找的次數。

key=Val(Text1.Text) ′Val要根據實際情況決定是否要添加

 p=0

pos=0

 find=False ′find表示查找結果

 i=1

 Do While i<=n And Not find ′表示還沒找完并且還未找到,則繼續查找,Not find也可表示為find=false

p=p+1

If key=d(i) Then

 pos=i

 find=True

End If

i=i+1

Loop

If find Then ′也可表示為If find=true then

 Text2.Text=“在d(”+Str(pos)+“)中”

Else

 Text2.Text=“未找到”

End If

3.對分查找

(1)對分查找的基本思想

在有序的數據序列中(一般存放在數組中),首先把要查找的數據與數組中間位置的元素進行比較,如果相等,則查找成功并退出查找;否則,根據數組元素的有序性,確定數據應在數組的前半部分還是在后半部分查找;在確定了新的查找范圍后,重復進行以上比較,直到找到或未找到為止。

溫馨提示:①對分查找的前提是被查找的數據序列必須是有序。②“未找到”是指當指定范圍內的起點大于終點仍未找到該數據。

(2)對分查找算法基本框架

說明:要查找的數為key,待查找的數存放在數組d中。

i為查找范圍的起點,j為查找范圍的終點,m為范圍[i,j]的中間位置。

 i=1

 j=n

 Do While i<=j

計算中點位置m

比較key與d(m),并做相應處理

 Loop

若i>j,則表示未找到

(3)對分查找程序實現

在n個數組元素中依次查找,找到第1個滿足條件的值,找到就結束,輸出找到元素所在的位置;若找不到,輸出“未找到”。

程序實現:

設要查找的數據是key(在文本框Text1中輸入),查找的數據存放在數組d中。

在文本框Text2中輸出查找結果,若找到輸出“找到!位置為:X”,否則輸出“未找到!”

在文本框Text3中輸出共查找的次數。

p表示查找的次數。

核心代碼為(以升序為例):

 key=Val(Text1.Text) ′表示要查找的數

 p=0 ′表示查找的次數

 find=False ′查找的結果,若find=true表示找到,find=false表示未找到

 i=1 ′查找的起始范圍

 j=n ′查找的終點范圍

 Do While i<=j And Not find ′如果還未找完并且未找到

 p=p+1 ′查找次數計數

 m=(i+j)\\2 ′計算中點位置m

 If key=d(m) Then ′表示找到的情況

 find=True

 Text2.Text=“找到!位置為:“+Str(m)

 End If

 If Key>d(m) Then ′表示查找的數比中間位置上的數大時

 i=m+1

 Else ′表示查找的數比中間位置上的數小時

j=m-1

 End If

 Loop

 If Not find Then Text2.Text=“未找到!”

 Text3.Text=“共查找的次數為:”+Str(p)

溫馨提示:計算中點位置的語句還可以寫成:m=Int((i+j)/2)或m=Fix((i+j)/2)。

三、遞歸算法

1.遞歸的概念

函數或過程調用其本身,稱為遞歸。

2.遞歸算法的基本思想

遞歸算法的基本思想是把規模較大的、較難解決的問題變成規模較小的、容易解決的同一問題,規模較小的問題又變成規模更小的問題,直到可以直接得出它的解,從而得到原來問題的解。

3.采用遞歸算法須具備的條件

(1)每一步驟解決問題的方法要一致。

(2)要有結束的邊界條件。

四、Connection對象

用Connection建立和數據庫的連接時,首先創建一組ADO對象用于設置打開連接和產生結果集,需要設置連接字符串ConnectionString的參數。下列語句定義一個Connection對象的實例conn,conn是實例的名稱,命名規則與VB變量定義相同,并設置conn的連接字符串:

Dim conn As New ADODB.Connection

Dim abc As New ADODB.Recordset

conn.ConnectionString=“Provider=Microsoft.ACE.OLEDB.12.0;Data Source=”& App.Path & “\\souse1.accdb”

其中,“Provider”用于指定連接的提供者,“Data Source”用于指定數據庫的文件名(含絕對路徑)。App.Path返回當前應用程序所在的絕對路徑。

Connection對象具有Open、Execute、Close等方法,其中Open方法用于建立到數據源的連接,Execute用于執行指定的查詢、SQL語句或特定提供者的文本等內容,而Close方法則用于關閉連接。

五、Recordset對象

用Recordset對象從數據庫中查詢記錄時,要設置ActiveConnection屬性的值。語句Set abc.ActiveConnection=conn,使Recordset對象的實例abc與Connection對象的實例conn建立關聯。

在abc與conn建立關聯后,可用Recordset對象的Open方法打開、查詢數據表的記錄。

Open方法的參數為SQL命令。如:abc.Open“SELECT*FROM info”運行后,記錄集abc中的數據為SQL語句“SELECT*FROM info”查詢到的記錄。

同樣,Recordset對象的Close方法用于關閉對象。

Abc.close表示關閉記錄集。

Recordset對象的Fields集合用于返回當前記錄中的數據,如:abc.Fields(“book”)返回當前記錄中”book”字段的值;abc.Fields(0)返回當前記錄中第一個字段的值,如果第一個字段名為“book”,則abc.Fields(0)與abc.Fields(“book”)返回值相同。

例如Recordset對象實例abc打開了下表的記錄集:

Recordset對象打開的記錄集:

049期双色球开奖直播 www.lvelns.com.cn true //www.lvelns.com.cn/wendangku/zas/fa8g/j2b33f324ffv/kf705cc1755270722192e4536587al.html report 4946 第二章 算法的程序實現[考試標準]考試內容考試要求考試屬性1.枚舉算法及程序實現c加試2.解析算法及程序實現c3.排序算法及程序實現(1)冒泡排序(2)選擇排序c4.查找算法及程序實現(1)順序查找(2)對分查找c5.遞歸算法a6.VB訪問Access數據庫(1)通過ADO對象連接數據庫(2)通過Recordset對象獲取數據表中的數據a一、排序算法及程序實現1.排序的含義及方式(1)所謂排序就是將無序的數列變成有序的數列。(2)排列方式分為升序
  • 猜你喜歡
    • 24小時熱文
    • 本周熱評
      圖文推薦
      • 最新添加
      • 最熱文章
        精彩推薦
        讀過此文的還讀過