完整word版計算機等級考試二級VB常用算法_第1頁
完整word版計算機等級考試二級VB常用算法_第2頁
完整word版計算機等級考試二級VB常用算法_第3頁
完整word版計算機等級考試二級VB常用算法_第4頁
完整word版計算機等級考試二級VB常用算法_第5頁
已閱讀5頁,還剩27頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、、字符處理11、算法說明1)加密解密最簡單的加密方法是:將每個字母加一序數(shù),例如5,這時:“A”t”F”, ”a”f ” , ”B”G, ”b”T”g”Y”D,,” y” ,d” , ” Z” T” E”,” Z”解密是加密的逆操作。界面如下:ILJI XofiBa輸入字符串This is a book!Ymnx nx f gttp!解密清空代碼如下:Word-WRA P: break-word bgColor=#f3f3f3 以下是引用片段:Op ti onExp licitPrivate Sub Comma nd1_Click()Dim strI npu t$,Code$, Record$

2、, c As Stri ngDim i%,len gth%,iAsc%strI nput = Text1.Textlen gth= Len( Trim(strI npu t)Code =For i =1 To len gthmid(strI np ut, i, 1)Case cA To ZAsc(c) +5 Asc(Z)The n iAscCode & Chr(iAsc)To zAsc(c) +5 Asc(z)The n iAscc = Select Case iAscIf iAscCode =Case a iAsc =If iAsciAsciAsc2626CodeCase=CodeElse&

3、 Chr(iAsc)CodeEnd=CodeSelectNextText2.TextEnd SubCodePrivate SubTextI.TextComma nd3_Click()HHText2.TextHHText3.Text =Text1.SetFocusHHEnd Sub2)統(tǒng)計問題提出統(tǒng)計字符或者數(shù)字出現(xiàn)的次數(shù)。算法說明以字符統(tǒng)計為例,設(shè)基本問題如下:請統(tǒng)計一段文本中英文字母在文本中出現(xiàn)的次數(shù)。 女0: I am a student.得到:A:2 d:1 e:1 1:1 m:1 n:1 s:1 t:2 u:1分析:由于不區(qū)分大小寫,因此可定義一個大小為 錄A B、字母出現(xiàn)的次數(shù)。a出

4、現(xiàn)的次數(shù) b出現(xiàn)的次數(shù) c出現(xiàn)的次數(shù) d出現(xiàn)的次數(shù)(不區(qū)分大小寫)26(下標(biāo):0-25)的數(shù)組,每個元素依次記A(0)存放字母A(1)存放字母A(2)存放字母A(3)存放字母譬如:aabdc代碼如下:以下是引用片段:Ex plicitSub Comma nd1_Click()As In teger,j As In tegerAs In tegerAs Stri ngOp tion PrivateDimDimDimi zimu(25) allStrDim allStrFor aStr If aStraStr As Stri ngUCase(Text1.Text)1 To Len (Text1.T

5、ext)Mid(allStr, i, 1)=A And aStr =Z Thenizimu(Asc(aStr)End IfAsc(”A”)zimu(Asc(aStr)Asc(A)+1Next iFor i =0 To 25If zimu(i) 0 The ni = i + 1Text2.TextHHText2.Text & Chr(i + Asc(A)& :”& str(zimu(i)If j Mod 5End If0 The n Text2.TextText2.Text & Chr(13)& Chr(10)Next iEnd Sub解題技巧CStr函數(shù)轉(zhuǎn)熟練運用字符處理函數(shù),對于一些數(shù)論題,

6、譬如逆序數(shù)等也可將數(shù)字通過 換為字符后,利用字符處理函數(shù)來解題。2、實戰(zhàn)練習(xí)1)補充代碼(2003秋二(8)下面程序的功能是統(tǒng)計文件中英文字母(不區(qū)分大小寫)出現(xiàn)的個數(shù)。Word-WRA P: break-word” bgColor=#f3f3f3以下是引用片段:Op tionBase 1PrivateSub Comma nd1_Click()Dim alp ha(26) As In teger, nAs In tegerDim i As In teger,sAs StringOpen c:kav2003readme.txtFor InputAs #11Do While Not EOF(11)

7、s= (1)s=UCase(s)If s=A And s=Z The n n= (2) alpha(n)=alp ha( n)+1 End IfLoopFor i=1 To 26If alp ha(i)0 The nList1.AddItemChr(i+64)&CStr(al pha(i)End IfNext iCloseEnd Sub2)補充代碼(2000秋二(6)下面程序的功能是:統(tǒng)計當(dāng)前盤當(dāng)前文件夾中的順序文件data.txt中共有多少個單詞,約定連續(xù)出現(xiàn)的字母定義為一個單詞。以下是引用片段:Op ti onExp licitP rivateSub Form_Click()DimChar

8、() As Stri ng,StAs Stri ng,TemDimIdx As In teger,JsAs Long,Fle nAsDimF As Boolean,W AsStri ng*1(1)Flen=LOF(10)St=Inpu t(Fle n,#10)Js=1DoWhile Js Private Sub Comma nd1_Click() n%, i%1第七天桃子數(shù)第七天桃子數(shù):1只”To 1 Ste p -11) * 2& i & ”天桃子數(shù):以下是引用片段:Dimx =PrintForPrintNexti =6(x +第iEndSub窮舉法又稱枚舉法,即將所有可能情況一一測試,判斷

9、是否滿足條件,一般用循環(huán)實現(xiàn)。問題:百元買雞問題。假定小雞每只5角;公雞每只2元;母雞每只3元?,F(xiàn)在有100元,要求買100只雞,編 程列出所有可能的購雞方案。分析:X、y、z只,則有:設(shè)母雞、公雞、小雞分別x+y+z=1003x+2y+0.5z=100程序一:Comma nd1_Click()Dimx%,y%,z%Forx=0To100Fory=0To100Forz=0To100If x +y+ z3100以下是引用片段:Private SubAnd 3* x +2 * y + 0.5100 ThenPrint x, y,End IfNext zNext yNext xEnd Sub程序二(

10、優(yōu)化)以下是引用片段:Private Sub Comma nd1_Click()Dim x%, y%For x =0To 33For y =0To 50If 3 * x + 2 * y +0.5(100y)100 ThenPrint x, y,End If100Next yNext xEnd Sub2)高等數(shù)學(xué)求積分近似計算積分:s=/ 13(x3+2x+5)dx代碼如下:以下是引用片段:P ublic Fu nction f(ByVal x!)(x * x +2)+被積函數(shù)5End FunctionP ublic Fun cti on trap ez(ByVal ; b、a分別為積分上下限,

11、n為等分數(shù) Dim sum!, h!, x!h = (b- a)/nsum =(f(a)+f(b)/2For i =1 T on- 1a!, ByVal b!, ByVal n%) As Singlea + i * h sum = sum + f(x)Next itrapezEnd Functionsum * h調(diào)用:以下是引用片段:Private Sub Comma nd1_Click()Print trap ez(1,3,30)End Sub數(shù)論綜合題此類題目比較廣泛,必須給以足夠重視。歷年題目有:平方數(shù)、零巧數(shù)、擬互滿數(shù)、回文數(shù)、酉完數(shù)、完數(shù)、幸運數(shù)、逆序數(shù)以 及無暇素數(shù)、超級素數(shù)、因子

12、和等。排序21)補充代碼(2002秋二(10)找出由兩個不同數(shù)字組成的平方數(shù),并將結(jié)果按圖中的格式顯示在列表框Listi 中。I開始121=11+11 14=12*12 22臣15*15 400=20*20 441=21*21 484=22*22 $76=26*26 900=30*30 1444=35*38 7744=8g*88Word-WRA P: break-word bgColor=#f3f3f3以下是引用片段:Op ti onExp licitPrivateSub Comma nd1_Click()DimI As Long,N As LongForI =:11 To300(1)IfVe

13、rify(N)The nEndIfNextIEndSubPrivateFunctionVerify(3)DimA(0To 9)As In teger,DoWhileN 0N =N 10LoopForI =:0 To9Js=Js+ A(I)IAs Boolea nAs In teger,Js As In tegerNext IEnd Function1)編程題(2004秋上機試卷08)一個正整數(shù)被稱為奇妙平方數(shù),如果此數(shù)的平方與它的逆序數(shù)的平方互為逆序數(shù)。例如,12人2=144, 222=441,12與21 互逆,144 與441 互逆,12 就是奇妙平方數(shù)。找出1-300以內(nèi)所有的奇妙平方數(shù)。

14、12*2 = (44132 = 169102*2 = 1(HQ4 1竝P = 10$韓 112*2 = 12S113 2 = 1278912*2 = 1493421 =】翻312 = 3&1 201* = 40401301=勺06012ir? =311? = 56T2ISSrS = 48341錯束1算法說明1)順序查找逐個元素找,如果有,則記錄位置,然后跳出循環(huán) 代碼如下:;否則,查找失敗。Word-WRA P: break-word bgColor=#f3f3f3以下是引用片段:Private Sub Search(a(), ByVal Key,In dexAs In teger)Dim i

15、%For iIf a(i)In dexLBou nd(a) To UBou nd(a)=Key Then 找到,將元素下標(biāo)保存在index中并結(jié)束查找iExitEndSubIfNextIn dex =End Sub-1若沒找到,則index值為-12)二分法查找順序查找效率低下,當(dāng)數(shù)組有序排列時,可以使用二分法查找提高效率。 算法思想:IT學(xué)院Low-Mid*-5 t? 19213?5-1ExitEndSubIf=(lowKeyin dexmidIfExitElseIfhigh Else lowEndCallEndhigh ThenByVal low%, ByVal high%, ByVal

16、Key, in dex%)沒有查找到2取查找區(qū)間的中點a(mid)Then 查找到,返回下標(biāo)mid+ high)SubKey 以下是引用片段:Op ti onExp licitOp tionBase 1i As In teger k As In teger#11PrivateSub Form_click()Dim stu() As Strin g, glass() As Stri ng.Dim n As Integer,name As String,Open c:stustu.txtFor Input AsDo While (1) ReDim Preservestu(n),glass(n)In

17、put #11, stu( n),glass (n)Loop”)name = InputBox(輸入欲查找的學(xué)生姓名:Call search( name, stu, k)If k = n The nMsgBox (3)ElseMsgBox 無此人?!盓nd IfClose #11SubEndPrivateDimForSub search( name As String, stu() As String, k As In teger) iAs In tegeri= 1 To UBou nd(stu)Ifn ame = stu(i)The nEnd IfNext iEnd Sub1算法說明數(shù)組中元

18、素的插入和刪除一般是在已固定序列的數(shù)組中插入或刪除一個元素, 使得插入或刪除操作后的數(shù)組還是有序的?;舅悸罚菏紫纫业讲迦胛恢没蛞獎h除的元素。1)插入Study.Czn.C IT學(xué)院“亡弋.廠14r11)131619122代碼如下:PrivateSub Comma nd1_Click()Dim a(10) As In tegerDim iAs In teger,k As In tegerFor i=0 To 9生成數(shù)組a(i)=i *3+1Printa(i);NextiPrintPrint插入14For k=0 To 9查找插入14在數(shù)組中的位置If 14 以下是引用片段:,騰出位置2) 1

19、 4 7 10 13 16 19 22 25 28 KStudy -Czn. Com. Cn IT學(xué)降-10 1 1? 1 161心、425 I Is.刪除代碼如下:以下是引用片段:Dim a()as in tegerReDim a(1to n)For i=k+1 a(i-1)=a(i)to nNext IRedim p reservea(1 to n-1)2、實戰(zhàn)練習(xí)C盤根目錄下文件 Data4.txt的內(nèi)容是:2,4,6,8,10,1,3,5,7,9。下面程序 的功能是將文件后半部分的奇數(shù)分別按序插入到前半部分的適當(dāng)位置,得到的新數(shù)列是:1 23 4 5 6 7 8 9 10.(實現(xiàn)方法:

20、第一次調(diào)整后的數(shù)列是:1 2 4 6 8 10 3 5 7 9第二次調(diào)整后的數(shù)列是:1 2 3 4 6 8 10 5 7 9)Word-WRA P: break-word bgColor=#f3f3f3以下是引用片段:Op ti onExp lictP rivate Sub Form_Click()Dim A(10) As In teger,i As In teger,JAs In tegerOpen c:Data4.txt ForInputAs #12Do (1)J=J+1Input #12,A(J)LoopCall In sert(A)For i=1 To 10Print A(i);Nex

21、t iPrintClose #12End SubPrivateSub In sert(A()AsIn teger)Dim i As In teger, PutpAsIn teger,JAs In tegerDim Get p As In teger,NAsIn teger,TemAs In tegerN=UBou nd(A)/2Put p=1Getp=N+1For i=1 To NTem=A(Get p)For J=Get p To Putp +1 Ste p -1 Next JA(Putp )=TemGet p=Get p+1Put p= (3)Next iEnd Sub補充代碼下面程序得功

22、能是將無序數(shù)組中相同得數(shù)只保留一個,其余得刪除,并輸出經(jīng)過刪除后的數(shù)組元素,刪除相同數(shù)是通過將該數(shù)組元素后面的元素在數(shù)組內(nèi)依次前移替換前一個元素 的值實現(xiàn)的。數(shù)組各元素的值從文件data.txt 中讀取。以下是引用片段:Op tio nExp lictOp tionBase 1P rivate Sub Form_Click()In tegerIn tegerFor InputAs #1DimI AsIn teger,JAsIn teger,KAsDimA()AsIn teger,TAsIn teger,MAsOpen c:my documents2000testdata.txt Do Whil

23、e (1)1=1+1Redim P reserveA(I)Input #1,A(I)LoopM=1:T= (2)Do While MI=M+1Do While l以下是引用片段:Op tion Base 1Private Sub Comma nd1_Click()Dim a(10) As In teger,i As In tegerFor i = 1 To 10 a(i) = Int(Rnd * 10)+1 Text1 = Text1 & Str(a(i) Next iCall shaker_sort(a)For i = 1 To 10Text2 = Text2 & Str(a(i)Next

24、iEnd SubPrivate Sub Shaker_sort(k() As Integer) Integer,c As Integer,d As Integer IntegerDim i AsDim t As1(1)DoFor (2)If k(i=1)k(i) t = k(i-1):k(i-1) End IfStep-1Thenk(i):k(i)Next i(3) For ic+1 To dk(i):k(i)If (4) Then t = k(i-1):k(i-1) End IfNext id-1Loop While (5)End Sub2) 編程題 把文本框輸入的字符串按降序添加到列表框中

25、。葢加字犠笄序 叮叵岡TeitPicture Form Button清除退出工程1該宇符串己經(jīng)存在,諳重新輸入宅.誑斗m約數(shù)因子1算法說明1)最大公約數(shù):用輾轉(zhuǎn)相除法求兩自然數(shù)m n的最大公約數(shù)。(1) 首先,對于已知兩數(shù)m n,比較并使得 mn;(2) m除以n得余數(shù)r;(3) 若r=0,則n為求得的最大公約數(shù),算法結(jié)束;否則執(zhí)行步驟(4)m?n n?r 再重復(fù)執(zhí)行(2)譬如:10與5分析步驟: m=10 n=5r=m mod n=0所以n(n=5)為最大公約數(shù)24與9分析步驟:Word-WRA P: break-word bgColor=#f3f3f3以下是引用片段:m=24n=9modm

26、=9modm=6r=mr M0r=mr M0n=6n=6n=3n=3r=mmodn=0所以n(n=3)為最大公約數(shù) 算法實現(xiàn)循環(huán)實現(xiàn)以下是引用片段:Private Function GCD(ByVal m As Long,ByVal n As Long) As LongDim temp As LongIf m n Then tempDim r As LongDom: m = n: n = tempr = m Mod nIf r =0 The n Exit Don = rLoopGCD = nEnd Function遞歸實現(xiàn)以下是引用片段:Private Function GCD(ByVal m

27、 As Long, ByVal n As Long) As Long Dim temp As LongIf m 以下是引用片段:Exp licitFunction gcd( (1) As In tegerAs In tegerOp tio nPrivateDim r r = m Mod nIf r =0 The ngcdElsem :EndEndn:nIfFunctionPrivate Sub Comma nd1_Click()Dim n As In teger, p As In teger n = Val(Text1)For p = n - 1 To 2 Ste p -1 If (3)The

28、 n List1.Addltem pNext pEnd Sub2)編程題XI、X2、生成一個三行八列的二維數(shù)組 A(3,8),其中前兩行元素產(chǎn)生的方法是: 用初值X1=26及公式Xi+1=(25 X Xi+357) Mod 10 24,產(chǎn)生一個數(shù)列:X16。其中X1X8作為A的第一行元素;X9X16作為A的第二行元素;A的第三行元素值取前兩 行同列元素的最大公約數(shù)。最后按圖示格式顯示在圖片框中。數(shù)組2699421007956T05547371416 51777236311 42012262776310007818 11BEE退出 I進制轉(zhuǎn)化11、算法說明0,將余數(shù)反序即得到結(jié)果。以下是引用片段

29、:1)十進制正整數(shù) m轉(zhuǎn)換為R(2-16)進制的字符串。 思路: 將m不斷除r取余數(shù),直到商為 算法實現(xiàn):Word-WRA P: break-word bgColor=#f3f3f3P rivateFun cti onTran( ByValm AsIn teger,ByVal r As In teger)As StringDim StrDtoRAsStri ng.Do While mon = m Modrm = m rIf n 9The nStrDtoRChr(65 + nn AsIn teger10)& StrDtoRElseStrDtoRn & StrDtoREnd IfLoopTranStrDtoREnd Fun cti on2) R(2-16)進制字符串轉(zhuǎn)換為十進制正整數(shù)。 思路:R進制數(shù)每位數(shù)字乘以權(quán)值之和即為十進制數(shù)。 算法實現(xiàn):以下是引用片段:P rivateFun ction Tran( ByVal s As Stri ng,ByVal r As In teger)As integerDimsForn As In teger, dec As In teger UCase(Trim(s)i% =1 To Le n(s)If Mid(s, i, 1) n = Asc(Mid(s,i,Elsen = Val(Mid(s,i,End Ifdec = dec + nNex

溫馨提示

  • 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

提交評論