17-18版算法與程序設(shè)計算法的程序?qū)崿F(xiàn)_第1頁
17-18版算法與程序設(shè)計算法的程序?qū)崿F(xiàn)_第2頁
17-18版算法與程序設(shè)計算法的程序?qū)崿F(xiàn)_第3頁
17-18版算法與程序設(shè)計算法的程序?qū)崿F(xiàn)_第4頁
17-18版算法與程序設(shè)計算法的程序?qū)崿F(xiàn)_第5頁
已閱讀5頁,還剩6頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、算 法 與 程 序 設(shè) 計算法的程序?qū)崿F(xiàn)浙江考試標(biāo)準(zhǔn)考試內(nèi)容考核要求考試屬性1.枚舉算法及程序?qū)崿F(xiàn)c加試2.解析算法及程序?qū)崿F(xiàn)c3.排序算法及程序?qū)崿F(xiàn)(1)冒泡排序(2)選擇排序c4.查找算法及程序?qū)崿F(xiàn)(1)順序查找(2)對分查找c5.遞歸算法a6.VB訪問Access數(shù)據(jù)庫(1)通過ADO對象連接數(shù)據(jù)庫(2)通過Recordset對象獲取數(shù)據(jù)表中的數(shù)據(jù)a一、枚舉算法1枚舉算法的基本思想根據(jù)問題的本身性質(zhì),_出該問題_可能的情況,并根據(jù)題目的條件逐一分析、判斷是否滿足條件,若滿足,則它是問題的一個解,從而挑選出符合條件的_。2枚舉算法解題的基本思路(1)確定枚舉對象、枚舉范圍和判斷條件。(2)

2、一一列舉可能的解,驗證是否是問題的解。3枚舉算法程序?qū)崿F(xiàn)的三要素。(1)枚舉解時,既不能遺漏任何一個真正解,又不能有重復(fù),用循環(huán)語句實現(xiàn)。(2)條件判斷時,利用問題提供的約束條件篩選、判斷解的正確性,用分支語句實現(xiàn)。(3)求解形式一般以輸出解的內(nèi)容或進行與解有關(guān)的其他計算。二、解析算法1解析算法的基本思想用解析的方法找出表示問題的前提條件與所求結(jié)果之間關(guān)系的_,并通過表達式的計算來實現(xiàn)問題的求解。2解析算法解題的基本思路(1)建立正確的數(shù)學(xué)模型,即得出正確的數(shù)學(xué)表達式。(2)保證計算過程描述的正確性。用正確合理的VB變量、表達式來表示已經(jīng)得出的數(shù)學(xué)表達式。3解析算法程序?qū)崿F(xiàn)的步驟(1)運用解析

3、算法分析問題,尋找問題中各要素之間的關(guān)系,用_表示它們的關(guān)系。(2)寫出解決問題的解析步驟,編寫程序?qū)崿F(xiàn),通過運行程序求得問題的正確解。三、冒泡排序1冒泡排序基本思想是在待排序的數(shù)據(jù)中,先找到最小(大)的數(shù)據(jù)將它放到最前面,再從第二個數(shù)據(jù)開始,找到第二小(大)的數(shù)據(jù)將它放到第二個位置,以此類推,直到只剩下最后一個數(shù)據(jù)為止。2冒泡排序的實現(xiàn)要素(1)將數(shù)據(jù)存放在數(shù)組中,確定數(shù)組的名稱、元素個數(shù)。(2)比較與交換_進行,在冒泡排序中,第i遍排序比較ni次,最多交換ni次。(3)強調(diào)_元素的比較和交換。3冒泡排序的程序?qū)崿F(xiàn)(1)從后向前實現(xiàn)冒泡排序從后向前實現(xiàn)冒泡排序的程序結(jié)構(gòu):(2)從前向后實現(xiàn)冒

4、泡排序從前向后實現(xiàn)冒泡排序的程序結(jié)構(gòu):【自我校對】一一列舉所有所有解數(shù)學(xué)表達式數(shù)學(xué)表達式同時相鄰四、選擇排序1選擇排序基本思想是在所有的記錄中選出最小(大)的數(shù)據(jù),把它與第一個數(shù)據(jù)交換,然后在其余的記錄中再選出最小(大)的數(shù)據(jù)與第二個數(shù)據(jù)交換,依次類推,直至所有數(shù)據(jù)排序完成。2選擇排序的實現(xiàn)要素(1)將數(shù)據(jù)存放在數(shù)組中,確定數(shù)組的名稱、元素個數(shù)。(2)強調(diào)_。在第i遍排序中,比較ni次,最多交換1次。(3)變量k僅用于記錄需要尋找的最值(最大值或最小值)位置,比較的是d(j)與d(k),交換的是_。3選擇排序的程序?qū)崿F(xiàn)(1)從前向后實現(xiàn)選擇排序從前向后實現(xiàn)選擇排序的程序結(jié)構(gòu)(升序排序):(2)

5、從后向前實現(xiàn)選擇排序從后向前實現(xiàn)選擇排序的程序結(jié)構(gòu)(升序排序):【答案】先比較,再交換d(k)和d(i)五查找算法_的基本思想是從第一個數(shù)據(jù)開始,按數(shù)據(jù)的順序逐個將數(shù)據(jù)與給定的值進行比較,若某個數(shù)據(jù)和給定值相等,則查找成功,找到所查數(shù)據(jù)的位置;反之,查找不成功。_的基本思想是在有序的數(shù)據(jù)列中,首先將要查找的數(shù)據(jù)與有序數(shù)組內(nèi)處于中間位置的數(shù)據(jù)進行比較,如果兩者相等,則查找成功;否則根據(jù)數(shù)組元素的有序性,就可確定該數(shù)據(jù)應(yīng)該在數(shù)組的前半部分還是后半部分繼續(xù)進行查找;在新確定的范圍內(nèi),繼續(xù)按上述方法進行查找,直到找到要查找的數(shù)據(jù),使查找成功,或直到子表不存在,查找不成功?!敬鸢浮宽樞虿檎覍Ψ植檎伊?、遞

6、歸算法函數(shù)或過程調(diào)用它本身,稱為_。_的基本思想是把規(guī)模較大的、較難解決的問題變成規(guī)模較小的、容易解決的同一問題,規(guī)模較小的問題又變成規(guī)模更小的問題,當(dāng)問題小到一定程度時,可以直接得出它的解,從而得到原來問題的解。即采用“大事化小,小事化了”的基本思想。遞歸算法必須具備的條件:每一步驟解決問題的方法要一致。有邊界條件?!敬鸢浮窟f歸遞歸算法七、VB訪問數(shù)據(jù)庫1通過ADO連接數(shù)據(jù)庫ADO是微軟公司提供的一種應(yīng)用程序訪問數(shù)據(jù)庫的編程接口。該接口包含了多個對象,其中Connection對象用于與數(shù)據(jù)庫建立連接,在建立連接后,可通過Recordset對象獲取數(shù)據(jù)表中的數(shù)據(jù)。在用Connection建立與

7、數(shù)據(jù)庫的連接時,需要設(shè)置ConnectionString屬性的值(即連接字符串),以指定連接數(shù)據(jù)庫所用的驅(qū)動程序、數(shù)據(jù)源名稱、用戶名和密碼等。Connection對象具有Open、Close等方法,其中_方法用于打開到數(shù)據(jù)源的連接,_方法用于關(guān)閉連接。2通過Recordset對象獲取數(shù)據(jù)庫中的數(shù)據(jù),步驟如下:(右邊是對應(yīng)的代碼):說明:myrecord是定義的Recordset對象的名字。mytable是數(shù)據(jù)庫中某張表的名稱。EOF屬性:若當(dāng)前記錄的位置在最后的記錄之后,則返回True,否則返回False。MoveNext方法:指針移到下一條記錄。這段代碼應(yīng)該在連接數(shù)據(jù)庫后,關(guān)閉數(shù)據(jù)庫前?!敬?/p>

8、案】OpenClose1(2012年6月浙江會考)計算三角形面積的算法如下:輸入三角形三邊長a,b,c計算半周長p(abc)/2計算三角形面積sSqr(p*(pa)*(pb)*(pc)輸出面積s上述算法屬于()A排序算法B解析算法C枚舉算法D查找算法B本題主要考查各種算法的基本思想。本題中算法的基本思想是通過數(shù)學(xué)表達式的計算來解決問題,符合解析算法的基本思想。2(2014年3月浙江學(xué)考)運行下列VB程序,在文本框Text1中輸入28,界面如圖所示。Private Sub Command1_Click( )Dim s As SingleDim v As SingleDim t As Single

9、s0vl0t Val ( Text 1.Text )ssv*tLabel1 .Caption Str(s)End Sub單擊“計算”按鈕Command1后,標(biāo)簽Label1中顯示的內(nèi)容是(1)_。該程序采用了(2)_(填:解析/排序/查找)算法?!窘馕觥勘绢}主要考查各種算法的基本思想特點及程序閱讀能力。s的值通過ssv*t計算得到,s的初值是0,將v10,t28(從文本框中輸入)代入,得到s280,符合解析算法的基本思想。【答案】(1)280(2)解析一、冒泡排序與選擇排序?qū)Ρ让芭菖判蚺c選擇排序冒泡排序選擇排序思想方法邊比較邊交換先選出最大值或最小值,再交換核心代碼For i1 To n1Fo

10、r i1 To n1For jn To i1 Step 1If a(j)<a(j1) Thentempa(j1)a(j1) a(j)a (j) tempEnd IfNext jNext ikiFor ji1 To nIf a(j) <a(k) ThenkjNext jIf k<>i Thentemp a(i)a(i) a(k)a (k)tempEnd IfNext i相同點n個數(shù)都需要n1遍排序,其中變量i控制排序的遍數(shù)比較的次數(shù)一樣多,都是(n1)(n2)321次最好的情況下,交換的次數(shù)一樣,都是0次不同點邊比較邊交換,最壞的情況下交換的次數(shù)是(n1)(n2)321次

11、先選擇再交換,最壞的情況下交換的次數(shù)是n1次如何區(qū)分因為是相鄰兩數(shù)比較,因此代碼中有類似“a(j)和a(j1)”比較的條件表達式因為是先選出最大值或最小值,再交換,因此代碼中有尋找最大值或最小值的代碼,并且用變量(如k)來記錄該值所在的位置。如果ki則交換二、枚舉算法與順序查找枚舉算法順序查找思想方法一一列舉所有可能解并驗證數(shù)據(jù)源從頭到尾逐個比較核心代碼For(列舉所有可能的解)If 可能解是正確解then 輸出該解nextFor(從數(shù)組的第一個元素到最后一個元素)If 當(dāng)前元素關(guān)鍵詞then 輸出該位置next區(qū)分方法For語句用于列舉所有可能的解,即解的范圍For 語句用于訪問整個查找源的

12、數(shù)據(jù),一般是從開始位置到結(jié)束位置If語句是驗證當(dāng)前列舉的可能解是否是正確解If語句用于判斷當(dāng)前訪問的元素是不是等于關(guān)鍵詞正確解可能有多個,因此找到一個正確解后,循環(huán)繼續(xù),直到所有可能的解都被檢驗過一旦某個位置的數(shù)據(jù)等于關(guān)鍵詞,則記錄該位置,并且查找任務(wù)結(jié)束,通常用語句exit for退出循環(huán)不管是枚舉算法還是順序查找,都可以寫成For循環(huán)語句,區(qū)分的方法是要分析問題的本質(zhì):for語句是為了一一列舉所有可能的解還是從頭到尾逐個訪問數(shù)據(jù)源中的數(shù)據(jù);if語句是檢驗可能解還是比較關(guān)鍵詞。三、對分查找對分查找的基本思想:查找的數(shù)據(jù)源a(1)到a(n)是有序的(如從小到大排序),查找的關(guān)鍵詞是key,則第

13、一次查找的范圍是1,n,如果中間位置為m,則mfix(1n)/2)。如果keya(m),則查找成功;如果key<a(m),則下一次查找的范圍變?yōu)?,m1;如果keya(m),則下一次查找的范圍變?yōu)閙1,n。在新確定的范圍內(nèi),繼續(xù)按上述方法進行查找,直到找到要查找的數(shù)據(jù),則查找成功;或直到子表不存在,則查找不成功。說明:對分查找的前提是被查找的數(shù)據(jù)必須是有序的。對分查找每次訪問的是當(dāng)前查找范圍里中間位置上的數(shù)據(jù),并根據(jù)該數(shù)據(jù)與關(guān)鍵詞的大小關(guān)系,將下一次的查找范圍縮小一半。規(guī)模為n個數(shù)的數(shù)據(jù)源,使用對分查找時,最多經(jīng)過Int(log2n)1次查找。17位學(xué)生的身高(單位:cm)從高到低依次為

14、:178,177,175,172,170,165,162。用對分查找法找到178的過程中,依次被訪問到的數(shù)據(jù)是()A178B172,175,178C172,177,178D172,175,177,178C本題主要考查對對分查找算法基本思想的理解。將7個數(shù)據(jù)從1到7進行編號。第一次訪問到的數(shù)據(jù)是第4個,即172(中間位置mFix(17)/2)4),178172,因此下一次查找的范圍是前半部分,即第1個到第3個。因此第二次訪問的數(shù)據(jù)應(yīng)該是第2個,即177(中間位置mFix(13)/2)2),178177,因此下一次查找的范圍是前半部分,即第1個,因此第三次訪問的數(shù)據(jù)是第1個,即178。2某校通過政

15、府招投標(biāo)中心采購一套多媒體教學(xué)設(shè)備,有5家單位參加競標(biāo),競標(biāo)價分別為19萬、15萬、21萬、13萬、12萬元人民幣。若采用選擇排序算法對標(biāo)價從大到小排序,需要進行數(shù)據(jù)互換的次數(shù)是()A1B2C3D4B原始數(shù)據(jù)19、15、21、13、12,第一遍排序19與21互換,得到21,15,19,13,12;第二遍排序15與19互換,得到21,19,15,13,12;第三遍排序與第四遍排序都不需要數(shù)據(jù)互換。因此總共是2次數(shù)據(jù)互換。3實現(xiàn)某排序算法的部分VB程序如下:For i1 To 6kiFor ji1 To 7If a(j)<a(k) Then kjNext jIf i<>k The

16、nta(i):a(i)a(k)a(k)tEnd IfNext i在排序過程中,經(jīng)過某一遍排序“加工”后,數(shù)組元素a(1)到a(7)的數(shù)據(jù)依次為“10,41,75,12,63,11,85”。則下一遍排序“加工”后數(shù)組元素a(1)到a(7)的數(shù)據(jù)依次是()A10,11,41,75,12,63,85B10,11,75,12,63,41,85C10,11,12,75,63,41,85D10,11,12,41,63,75,85B本題主要考查選擇排序算法的代碼特點。選擇排序的基本操作是先找出最小數(shù)或最大數(shù)所在的位置,記錄在一個變量中,再根據(jù)需要進行數(shù)據(jù)交換,因此代碼中會出現(xiàn)“kj”以及“If ik”的代碼

17、,根據(jù)代碼特點,可確定本題的排序算法是選擇排序。一旦確定是選擇排序,接著就可以用選擇排序的思想方法來對數(shù)據(jù)進行排序。根據(jù)第一遍排序結(jié)果可得知排序的結(jié)果是數(shù)據(jù)從小到大排,選擇排序的基本思想是從所有的記錄中選出最小(從小到大排)的數(shù)據(jù),把它與第一個數(shù)據(jù)交換,然后在其余的記錄中再選出最小的數(shù)據(jù)與第二個數(shù)據(jù)交換。以此類推,直至所有數(shù)據(jù)排序完成。因此“10,41,75,12,63,11,85”的下一遍選擇排序的結(jié)果應(yīng)該是:“10,11,75,12,63,41,85”。4有如下對a(1)到a(6)進行升序排序的程序片段:For i1 To 5kiFor ji1 To 6_Next jIf k<>

18、;i Then ta(i):a(i)a(k):a(k)tNext i劃線部分應(yīng)填()AIf a(j)<a(k)Then kjBIf a(j)<a(k)Then kiCIf a(j)>a(k)Then kjDIf a(j)>a(k)Then ki【解析】本程序段為選擇排序(按升序排序),每趟比較找出最小值,存入a(k)中,k記錄最小值編號j。【答案】A5通過編程尋找3位的水仙花數(shù)。什么是水仙花數(shù):水仙花數(shù)是指一個n位數(shù)(n3),它的每個位上的數(shù)字的n次冪之和等于它本身。例如153是水仙花數(shù),因為135333153。解決此問題的Visual Basic程序如下,程序界面如圖所示,在列表框List1中輸出結(jié)果。在和劃線處,填入合適的語句或表達式,把程序補充完整。Private Sub Command1_Click()Dim i As IntegerDim a,b,c As IntegerFor _ai100bi10 Mod 10ci Mod 10If_The

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論