算法與程序設(shè)計(jì)復(fù)習(xí)提綱要點(diǎn)_第1頁(yè)
算法與程序設(shè)計(jì)復(fù)習(xí)提綱要點(diǎn)_第2頁(yè)
算法與程序設(shè)計(jì)復(fù)習(xí)提綱要點(diǎn)_第3頁(yè)
算法與程序設(shè)計(jì)復(fù)習(xí)提綱要點(diǎn)_第4頁(yè)
算法與程序設(shè)計(jì)復(fù)習(xí)提綱要點(diǎn)_第5頁(yè)
已閱讀5頁(yè),還剩44頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

算法和算法的表示?使用計(jì)算機(jī)解決問(wèn)題的一般過(guò)程――分析問(wèn)題;尋找解決途徑和方法;用計(jì)算機(jī)進(jìn)行處理?算法的特征有窮性。一個(gè)算法必須保證它的執(zhí)行步驟是有限的,即它是能終止的。確定性。既算法中的每個(gè)步驟必須有確切的含義。(3)可執(zhí)行性。算法中的每個(gè)步驟都要實(shí)踐能做的,而且能在有限的時(shí)間內(nèi)完成。有0個(gè)或多個(gè)輸入。有一個(gè)或多個(gè)輸岀。算法的表示方法(1)自然語(yǔ)言就像寫(xiě)文章時(shí)所列的提綱一樣,有序地用簡(jiǎn)潔的語(yǔ)言加數(shù)學(xué)符號(hào)來(lái)描述。 (如:課本10頁(yè))(2)流程圖(Flowchart)就理框匚二L就理框匚二L框中扌錠要竝理的內(nèi)^詼噸一心扎匚和一個(gè)出匚"鋼扎廉出框口:用采寰示魏居餉前人或扁箱果的前出.鋤斷框O用糕示分支惜竝有-協(xié)口和針出口.④戢框6用于崖接因廚下iW開(kāi)的毓程茲.⑨開(kāi)皓倚框匚:用來(lái)表示誼法的開(kāi)抬和結(jié)朿,一牛於法只能有一怙始抵世可以有齧個(gè)蘇處*程序偽代碼一一結(jié)構(gòu)清晰、代碼簡(jiǎn)單、可讀性好,并且類似自然語(yǔ)言。 介于自然語(yǔ)言與編程語(yǔ)言之間。(如:課本11頁(yè)最上方),下面是一段偽代碼:If△<0Then無(wú)解Else有解EndIf五、VB程序設(shè)計(jì)初步1?對(duì)象、屬性、類、事件和事件處理的概念[此部分復(fù)習(xí)以記憶為主]對(duì)象是客觀存在的事物或概念。它有兩個(gè)特點(diǎn):狀態(tài)和行為。一個(gè)對(duì)象的狀態(tài)是通過(guò)若干個(gè)屬性(property)來(lái)描述的;行為是指對(duì)屬性進(jìn)行操作和處理的方法(method)。在面向?qū)ο蟮某绦蛟O(shè)計(jì)中,一個(gè)對(duì)象是由一組對(duì)象狀態(tài)的數(shù)據(jù)和一組描述處理對(duì)象屬性的方法的代碼構(gòu)成的。對(duì)象的屬性定義其外觀,方法定義其行為,事件定義其與用戶的交互。類(class)是對(duì)相同性質(zhì)的對(duì)象的一種抽象,而一個(gè)對(duì)象則是類的一個(gè)“實(shí)例”。事件(event)就是發(fā)生在對(duì)象上的事情,通常是由用戶在對(duì)象上激發(fā)的一種動(dòng)作。一個(gè)事件的發(fā)生,可以引起某個(gè)對(duì)象上某個(gè)方法(事件處理過(guò)程)的執(zhí)行,即由某個(gè)事件驅(qū)動(dòng)了相應(yīng)的事件處理過(guò)程的執(zhí)行。這就是面向?qū)ο蟪绦蛟O(shè)計(jì)中的事件驅(qū)動(dòng)概念。例:PrivateSubCommand1_Click()Print(S)EndSub對(duì)象名為Command,1Click為應(yīng)用于對(duì)象Command上的事件Command1.Caption="中華"對(duì)象名為Command,1Caption為屬性,“中華”為屬性值List1.Addltem(Str(y(m)))對(duì)象名為L(zhǎng)ist1,Addltem為方法,Str(y(m))為添加進(jìn)去的條目******點(diǎn)(.)前面的都是對(duì)象名,點(diǎn)(.)后面的可以屬性也可以方法,區(qū)另U在于一一屬性是相對(duì)“靜態(tài)”的特征,而方法則是有“動(dòng)作”的VB應(yīng)用程序的界面設(shè)計(jì)與調(diào)試一一重點(diǎn)認(rèn)清工具箱中的各控件名字及用途VB編譯生成EXE文件(應(yīng)用程序或可執(zhí)行文件),可脫離VB環(huán)境獨(dú)立運(yùn)行。習(xí)題:在VisualBasic工程設(shè)計(jì)中,要在文本框Textl中顯示“你好”,則下列操作正確的是(A)在Text屬性名中輸入“你好” (B)在Caption屬性名中輸入“你好”(C)在Font屬性名中輸入“你好” (D)在Name屬性名中輸入“你好” 答案:A習(xí)題:在VisualBasic工程設(shè)計(jì)中,要在標(biāo)簽中顯示“你好”,則下列操作正確的是(A)在Text屬性名中輸入“你好” (B)在Caption屬性名中輸入“你好”(C)在Font屬性名中輸入“你好” (D)在Name屬性名中輸入“你好” 答案:B習(xí)題:在VisualBasic工程設(shè)計(jì)中,下列控制哪個(gè)不能加載圖片(A)TextBox (B)Image (C)PictureBox(D)CommandButton 答案:A習(xí)題『會(huì)考2010』:在VisualBasic中,如果要在命令按鈕Cmd上顯示文字"開(kāi)始",下列語(yǔ)句正確的是(A)Cmd1.Caption="開(kāi)始" (B)Cmd1.Width="開(kāi)始"(C)Cmd1.Font="開(kāi)始" (D)Cmd1.Height="開(kāi)始" 答案:A習(xí)題『會(huì)考2010』:在VisualBasic中,語(yǔ)句Soft.Text="QQ2008"中的Soft是(A)屬性名(B)屬性值(C)對(duì)象名(D)軟件名 答案:c習(xí)題『會(huì)考2010』:在VisualBasic中,鼠標(biāo)單擊命令按鈕Commanc觸發(fā)的事件處理過(guò)程名是(A)Command1_Click(B)Commandl.Click(C)Click_Command1(D)CommandlClick 答案:A習(xí)題『會(huì)考2010』:在VisualBasic中,語(yǔ)句Label3.Caption="HowAreYou"中的Label3是(A)屬性名(B)屬性值(C)對(duì)象名(D)類名 答案:C填空:窗體文件擴(kuò)展名:.frm 工程文件擴(kuò)展名:.vbp基本運(yùn)算與表達(dá)式VB的基本運(yùn)算:VB的基本運(yùn)算包括算術(shù)運(yùn)算、關(guān)系運(yùn)算和邏輯運(yùn)算三大類。算術(shù)類基本運(yùn)算有:人、 -、*、/、、Mod+、-關(guān)系類基本運(yùn)算有:=、<>、<、>、<=、>=邏輯類基本運(yùn)算有:Not、And、Or表達(dá)式:表達(dá)式主要用來(lái)規(guī)定值的計(jì)算過(guò)程,以及對(duì)于某些情況或條件的判斷。一個(gè)表達(dá)式中可能包括算術(shù)運(yùn)算、關(guān)系運(yùn)算和邏輯運(yùn)算等多種基本運(yùn)算,以及這些基本運(yùn)算所涉及的數(shù)據(jù)(變量和常量) ?;具\(yùn)算的優(yōu)先級(jí)(應(yīng)優(yōu)先計(jì)算優(yōu)先級(jí)較高的部分)算術(shù)運(yùn)算符高于關(guān)系運(yùn)算符高于邏輯運(yùn)算符具體:人(1級(jí)),-(指負(fù)號(hào)),*、/, ,Mod,+、-(減號(hào)),=、<>、<、>、<=>=,Not,And,Or。習(xí)題:①100<>10A2答案:False②Not((1>2)Or(3>=4))答案:True③(97\2*2=97)And(78>=78))答案:False④25mod5答案:0習(xí)題:在VisualBasic中,已知a、x、y均是正整數(shù),當(dāng)邏輯表達(dá)式(amodx=0)And(amody=0) 為真時(shí),則表示(A)a是x的倍數(shù),但不是y的倍數(shù) (B)a既是x的倍數(shù),又是y的倍數(shù)(C)a是x的倍數(shù)或者是y的倍數(shù) (D)a既不是x的倍數(shù),也不是y的倍數(shù) 答案:B習(xí)題:在VisualBasic中,設(shè)x=3171,能得到其十位上數(shù)字“7”的正確表達(dá)式是(A)x\10Mod100(B)x\10Mod10 (C)x\100Mod10(D)xMod100 答案:B【注意】 如何得到一個(gè)三位數(shù)m的百、十、個(gè)位數(shù)?如a、b、c分別為一個(gè)三位數(shù)n的百、十、個(gè)位數(shù)a=m\100 b=(m-100*a)\10或b=m\10Mod10 c=mMod10s=vt+1at2習(xí)題『會(huì)考2008』:勻加速直線運(yùn)動(dòng)位移公式是 0 2 ,正確計(jì)算s的VisualBasic表達(dá)式是(A)v0t+1/2atA2 (B)v0*t+1/2*atA2 (C)v0t+1/2*atA2 (D)v0*t+1/2*a*tA2 答案:D習(xí)題『會(huì)考2010』:把星期一記為1,星期二記為2,”,星期日記為0,已知某月1日(即第1天)是星期一,下列語(yǔ)句中,用于正確計(jì)算該月第n日星期數(shù)W勺是(A)w=nMod7 (B)w=(n+1)Mod7 (C)w=(n+1)\7 (D)w=n\7 答案:A

R1R2習(xí)題『會(huì)考2010』:R1R2習(xí)題『會(huì)考2010』:在二個(gè)電阻R1、R2并聯(lián)電路中,總電阻計(jì)算公式是計(jì)算R的VisualBasic表達(dá)式是(A)R1R2/R1+R2 (B)(R1R2)/(R1+R2)(C)R1*R2/R1+R2 (D)R1*R2/(R1+R2)答案:D過(guò)程(1) VB應(yīng)用程序是按模塊化的方式組成的,一個(gè)程序模塊是程序的一部分,每個(gè)模塊負(fù)責(zé)解決整個(gè)應(yīng)用問(wèn)題的一部分任務(wù)。程序模塊分為過(guò)程和函數(shù)兩種。(2) 過(guò)程:將程序劃分成一個(gè)個(gè)較小的邏輯單元,每個(gè)邏輯單元構(gòu)成一個(gè)過(guò)程。過(guò)程中的代碼可以被重復(fù)調(diào)用。過(guò)程分成兩類,一類是事件處理過(guò)程,另一類是通用過(guò)程。(3) 事件處理過(guò)程:Sub 事件處理過(guò)程名(參數(shù)表)語(yǔ)句塊EndSub其中,事件處理過(guò)程 對(duì)象名_事件的標(biāo)準(zhǔn)名。VB的一些常用對(duì)象上的常見(jiàn)事件的標(biāo)準(zhǔn)名有:文本框Text:Text_Click、Text_DblClick、Text_KeyPress命令按鈕CommandCommand_Click、Command_DblClick標(biāo)簽Label:KeyPress語(yǔ)句(1)賦值語(yǔ)句A)賦值語(yǔ)句格式1:變量名=表達(dá)式(將表達(dá)式的計(jì)算結(jié)果賦予給變量)B)賦值語(yǔ)句格式2:對(duì)象名.屬性名=表達(dá)式(賦予給對(duì)象的某個(gè)屬性)C)賦值語(yǔ)句格式3:例如:D(3)=表達(dá)式(將表達(dá)式賦予給數(shù)組元素)注意賦值語(yǔ)句與關(guān)系表達(dá)式的區(qū)別:關(guān)系表達(dá)式賦值語(yǔ)句1常用于判斷語(yǔ)句,女如:If關(guān)系表達(dá)式,,如:DoWhile關(guān)系表達(dá)式,,只是值的單向給予,流程圖中常用箭頭表示,如:A—1如A—A+12等號(hào)左右兩邊可以互換等號(hào)左右兩邊不能互換3等號(hào)左邊對(duì)象不一定唯一,如a+b=1等號(hào)左邊對(duì)象一定要唯一,如a=b+1習(xí)題『會(huì)考2010』:對(duì)于VisualBasic語(yǔ)句Ifa=1Thenm=m+1Elsem=m-1,下列說(shuō)法正確的是(A)a=1為賦值語(yǔ)句 (B)m=m+1和m=m-1均為關(guān)系表達(dá)式(C)m=m+1和m=m-1均為賦值語(yǔ)句 (D)m=m+偽關(guān)系表達(dá)式,m=m-1為賦值語(yǔ)句 答案:C☆下面列表舉例判斷是賦值語(yǔ)句或關(guān)系表達(dá)式:語(yǔ)句判斷語(yǔ)句判斷A=1可為賦值語(yǔ)句或關(guān)系表達(dá)式,視情況而定Text1.Text=Str(S)可為賦值語(yǔ)句或關(guān)系表達(dá)式,視情況而定A=A+1可為賦值語(yǔ)句或關(guān)系表達(dá)式,視情況而定Text1.Text=Str(S)+Text1.Text可為賦值語(yǔ)句或關(guān)系表達(dá)式,視情況而定A=B+1可為賦值語(yǔ)句或關(guān)系表達(dá)式,視情況而定S+Text1.Text=S關(guān)系表達(dá)式A+1=A關(guān)系表達(dá)式(等號(hào)左邊對(duì)象不唯一)A+B=A關(guān)系表達(dá)式(等號(hào)左邊對(duì)象不唯一)總結(jié):判斷語(yǔ)句是賦值語(yǔ)句還是關(guān)系表達(dá)式的關(guān)鍵在于一一①是否存在等號(hào)后的值給予等號(hào)前的對(duì)象;②賦值語(yǔ)句等號(hào)前對(duì)象一定唯一

冒號(hào):可以讓多個(gè)語(yǔ)句寫(xiě)在同一行。如 a=2:b=3(2)輸入輸岀語(yǔ)句輸入語(yǔ)句,表示向程序輸入值,如向文本框中輸入數(shù)字,轉(zhuǎn)換類型為數(shù)值型后存入變量 R中,以便能用3.14*RA2計(jì)算圓面積,則其中輸入數(shù)字的語(yǔ)句: R=Val(Text1.Text)為輸入語(yǔ)句輸出語(yǔ)句,表示將運(yùn)算結(jié)果呈現(xiàn)出來(lái),如上例中計(jì)算機(jī)的面積在標(biāo)簽中顯示出來(lái),可用輸出語(yǔ)句: Label1.Caption=Str(S)在判斷是輸入還是輸岀語(yǔ)句時(shí)應(yīng)注意要點(diǎn):輸入到程序中 還是程序反饋岀來(lái),以下列表舉例:語(yǔ)句判斷理由Print(Str(S))輸岀語(yǔ)句打印岀來(lái)Label1.Cation="結(jié)果為"&Str(S)輸岀語(yǔ)句在標(biāo)簽中顯示岀來(lái)T=Val(Text1.Text)輸入語(yǔ)句把文本框中內(nèi)容存入T中S=InputBox()輸入語(yǔ)句把輸入框中內(nèi)容存入S中Msgbox(Str(l))輸岀語(yǔ)句以消息框的形式顯示出1的值注:算法不一定要輸入,但一定要有輸岀(3)計(jì)數(shù)、累加累乘語(yǔ)句計(jì)數(shù)語(yǔ)句一一統(tǒng)計(jì)符合條件的個(gè)數(shù),初值 =0每次自身加1,例如c=c+1――符合條件的數(shù)字累加,初值 =0累加語(yǔ)句 格式類似sum=sum+k類似地,累乘語(yǔ)句寫(xiě)作類似 T=T*k的語(yǔ)句(4)選擇語(yǔ)句A) 行If語(yǔ)句:(一行內(nèi)寫(xiě)完)If 條件表達(dá)式Then語(yǔ)句1Else語(yǔ)句2或If 條件表達(dá)式 Then語(yǔ)句例1:ifa>=bthens=1elses=-1例2:ifd>=10andd<=100thencount=count+1B) 標(biāo)準(zhǔn)If語(yǔ)句(塊If語(yǔ)句)If 條件表達(dá)式ThenIf 條件表達(dá)式Then語(yǔ)句序列1語(yǔ)句序列1EndIfElse語(yǔ)句序列2EndIf多分支IF語(yǔ)句If 條件表達(dá)式1Then語(yǔ)句序列1ElseIf條件表達(dá)式2Then語(yǔ)句序列2ElseIf條件表達(dá)式3Then語(yǔ)句序列3ElseIf條件表達(dá)式NThen語(yǔ)句序列NElse語(yǔ)句序列N+1EndIf習(xí)題『會(huì)考2010』:某市岀租車計(jì)費(fèi)標(biāo)準(zhǔn)規(guī)定:岀租車啟動(dòng)后行程不超過(guò)3千米(包含3千米)計(jì)費(fèi)5元;如果行程超過(guò)3千米且不超過(guò)10千米(包含10千米),則超過(guò)3千米部分按1.5元/千米計(jì)費(fèi)(3千米及以內(nèi)部分計(jì)費(fèi)仍為5元);若行程超過(guò)10千米,

則在前面計(jì)費(fèi)基礎(chǔ)上,超出10千米部分按1.8元/千米計(jì)費(fèi)。假定某岀租車行程為x千米,計(jì)費(fèi)標(biāo)準(zhǔn)如下:當(dāng)x<3千米時(shí),計(jì)費(fèi)為5元;當(dāng)3<x<10千米時(shí),計(jì)費(fèi)為5+(x-3)X1.5當(dāng)x>10千米時(shí),計(jì)費(fèi)為5+(10-3)X1.5+(x-10)X1.8程序界面如圖VB-1所示,在文本框Text1中輸入行駛里程數(shù)(單位:千米),單擊"開(kāi)始計(jì)算"按鈕(Command)后,在標(biāo)簽Biaoqian3輸出計(jì)費(fèi)結(jié)果。解決此問(wèn)題的算法流程圖如圖VB-2所示,相應(yīng)的VisualBasic程序如下,在程序⑴和⑵劃線處,填入適當(dāng)?shù)恼Z(yǔ)句或表達(dá)式,把程序補(bǔ)充完整。PrivateSubCommand1_Click()DimxAsSingle,sAsSinglex=Val(Text1.Text)If(1)Thens=5ElseIfx<=10Thens=5+(x-3)*1.5Elses=5+(10-3)*1.5+(x-10)*1.8EndIf⑵=Str(s)EndSub圖VB-1開(kāi)始輸入行程數(shù)xNY不超過(guò)3?xv^圖VB-1開(kāi)始輸入行程數(shù)xNY不超過(guò)3?xv^、X不超過(guò) —N11rs^5+(10-3)X1.5+s—5+(x-3)X1.5(x-10X1.81s^5輸出s的值’圖VB-2答案:①x<=3 ②Biaoqian3.Caption(5)循環(huán)結(jié)構(gòu)A)For”Next循環(huán)語(yǔ)句格式For 循環(huán)變量=初值To終值[Step步長(zhǎng)]循環(huán)體語(yǔ)句系列Next 循環(huán)變量循環(huán)變量是不一定是步長(zhǎng)可以為正(遞增),也可以為負(fù)(遞減),但不可以為0若步長(zhǎng)為1,則Step1可以省略循環(huán)尾Next后面的變量與For后面的循環(huán)變量必須一致,總之,F(xiàn)or,Next循環(huán)是循環(huán)次數(shù)能預(yù)先確定,循環(huán)變量能自動(dòng)改變的循環(huán)!例如:計(jì)算1+1/3+1/5+1/7+,, +1/99值的程序段S=0'累加的初值必須=0ForK=1To99Step2'For循環(huán)的開(kāi)頭S=S+1/K'循環(huán)體,累加NextK'For循環(huán)的結(jié)尾思考:在這個(gè)例子中如何統(tǒng)計(jì)循環(huán)次數(shù)?答案一一在循環(huán)體中加入計(jì)數(shù)語(yǔ)句,如 C=C+1,再在循環(huán)結(jié)束后輸出 C值,如PrintC習(xí)題『會(huì)考2010』:下列語(yǔ)句用于計(jì)算s=1+4+7+10+,+25:正確的語(yǔ)句順序是①Fori=1To25Step3 ②Nexti ③s=0 ④s=s+i(A)①②③④ (B) ①③④② (C)③①④② (D) ④③①② 答案:C習(xí)題『會(huì)考2010』:以下程序段是一個(gè)完整的VisualBasic的For語(yǔ)句,則劃線處的語(yǔ)句應(yīng)該是Fork=1To3s=s+kLoop (B)EndFor (C)Nexts (D)Nextk 答案:D習(xí)題『高考2010年3月卷』下面的VB程序運(yùn)行中單擊Command按鈕,Text1上顯示—①_,Text2上顯示__②PrivateSubCommand1_Click()Dima(1To5)AsLong,iAsIntegera(1)=1Fori=2To5a(i)=a(i-1)*iNextiText1.Text=Str(a(2))Text2.Text=Str(a(5))EndSub答案①:2 答案②:120B)DoWhile,,Loop循環(huán)語(yǔ)句循環(huán)的執(zhí)行次數(shù)預(yù)先不知道,但知道循環(huán)執(zhí)行的條件語(yǔ)句格式:DoWhile條件表達(dá)式循環(huán)體(語(yǔ)句序列)Loop條件成立則執(zhí)行循環(huán)體語(yǔ)句,條件不成立則結(jié)束循環(huán)(跳到 loop語(yǔ)句的后面)循環(huán)體里面,一定要改變循環(huán)控制變量習(xí)題:在VB程序設(shè)計(jì)里,以下語(yǔ)句中錯(cuò)誤的是 (A)DimtjasBoolean (B)Ifx>=0Thenx=x+10(C)ConstPl=3.14159 (D)2*x+y=16 答案:D

習(xí)題『會(huì)考2010』:在下面完整的VisualBasic的Do語(yǔ)句中,有錯(cuò)誤的語(yǔ)句行是#01t=0#02DoWhilet<10#03 t=t+2#04EndDo(A)第#01行 (B)第#02行 (C)第#03行 (D)第#04行 答案:D習(xí)題:下列程序段是為了計(jì)算1+1/11+1/21+1/31+...1/121 的值,計(jì)算結(jié)果在文本框Text1中輸出。則程序中加框處的語(yǔ)句應(yīng)分別更正為:(1) (2) (A)答案:C(A)答案:Cs=0i=1DoWhilei<=121s=s+1/iI=I+1LoopText1.Text=Val(s)答案①:I=I+10答案②:Text1.Text=Str(s)習(xí)題:下圖是判斷方程ax2+bx+c=0(a工0)有無(wú)實(shí)根的部分流程圖,則圖中虛線部分的內(nèi)容是3715 1023習(xí)題:A ,求比A小的最大自然數(shù)。4816 1024Fori=1To ①答案①:10s=s+ ②答案②:(2人i-1)/(2人i)NextiPrintStr(Int(s))習(xí)題:編寫(xiě)程序一一在三個(gè)文本框中輸入數(shù)字,找岀最大的數(shù)字Dima,b,c,maxAsSinglea=Val(Text1.Text):b=Val(Text2.Text):c=Val(Text3.Text)Ifa>bThenMax=aElseMax=bEndIfIfMax>cThenText4.Text=" 最大數(shù)為:"&①ElseText4.Text=" 最大數(shù)為:"&②EndIf答案①:Str(Max)答案②:Str(c)習(xí)題:編寫(xiě)程序輸岀下列圖形:

■EFolbI習(xí)題:下圖是程序的結(jié)果輸岀******'k'k'k'k******'k'k'k'k'k'k'k'k'k'k'k***(A)(B)(C)請(qǐng)分別設(shè)計(jì)程序?qū)崿F(xiàn),提示:用 Print()方法,語(yǔ)句Print(" *");Print(" *")Print(" *")Print(" *")Print結(jié)果****換行備注同一行的兩次打印有分號(hào)(;)不同一行的兩次打印無(wú)分號(hào)不帶參數(shù)和分號(hào)為換行程序(A)程序(B)程序(C)Fori=1To ①Forj=1ToiPrint("*");NextjPrintNextiForj=1To4Forn=1To ②Print"";NextnForm=1TojPrint("*");NextmPrintNextjFori=4To1 ③Forj=iTo1Step-1Print("*");NextjPrintNexti答案①②③44-jStep-15?面向?qū)ο蟪绦蛟O(shè)計(jì)面向?qū)ο蟪绦蛟O(shè)計(jì)語(yǔ)言的特征1)事件驅(qū)動(dòng):每當(dāng)用戶或系統(tǒng)觸發(fā)一個(gè)事件(如 ”鼠標(biāo)單擊"),將執(zhí)行預(yù)先編寫(xiě)好的一段代碼。2)可視化:即圖形用戶界面(GUI),只需要把一些對(duì)象拖放到窗口合適位置。面向?qū)ο蟪绦蛟O(shè)計(jì)的要點(diǎn):1、 核心概念是對(duì)象。對(duì)象由一組對(duì)象狀態(tài)的數(shù)據(jù)和一組描述處理對(duì)象屬性的方法的代碼構(gòu)成的。對(duì)象的屬性定義其外觀,方法定義其行為,事件定義其與用戶的交互。2、 面向?qū)ο蟪绦蛟O(shè)計(jì)中的特征一一事件驅(qū)動(dòng)六、變量與常量變量的聲明方法:Dim變量名As數(shù)據(jù)類型類似地,數(shù)組的聲明:Dim數(shù)組名(最小下標(biāo)To最大下標(biāo))As數(shù)據(jù)類型

如:Dimm(1To20)AsString 數(shù)組m中包括了m⑴、m(2),,m(20)共20個(gè)元素或Dim數(shù)組名(最大下標(biāo))As數(shù)據(jù)類型 通過(guò)此聲明后數(shù)組的下標(biāo)范圍為0到最大下標(biāo)如:Dimt(10)AsLong 通過(guò)此聲明后數(shù)組t中包括t(0)、t(1),,t(10)共11個(gè)元素常量:即不會(huì)因?yàn)槌绦蚨淖兊牧浚鐖A周率、重力加速度等聲明語(yǔ)句:Const常量名=值例:Constg=9.8常量的類型有:數(shù)值型、字符串型、邏輯型等習(xí)題『會(huì)考2008』:下列VisualBasic表達(dá)式正確的是(A)b*b-2n*a七、常見(jiàn)數(shù)據(jù)類型(B)b1-m(A)b*b-2n*a七、常見(jiàn)數(shù)據(jù)類型(B)b1-mA2(C)2v+1/2/t(D)2*a+3Sqr(-9)答案:B(A)Dima100AsIntegerDima(1-100)AsInteger(C)Dima(1,100)AsInteger習(xí)題『會(huì)考2010』:在VisualBasic(D)Dima(1To100)AsInteger中,賦值語(yǔ)句carno="浙Z-56789"中的"浙Z?(A)Dima100AsIntegerDima(1-100)AsInteger(C)Dima(1,100)AsInteger習(xí)題『會(huì)考2010』:在VisualBasic(D)Dima(1To100)AsInteger中,賦值語(yǔ)句carno="浙Z-56789"中的"浙Z?56789"是答案:D(A)字符串常量(B)數(shù)值常量 (C) 邏輯常量 (D) 實(shí)數(shù)常量答案:A習(xí)題『會(huì)考2008』:下面程序段是利用For語(yǔ)句給數(shù)組a賦值,使a(1)=2,a(2)=4,a(3)=6,a(100)=200,則劃線處的語(yǔ)句應(yīng)該是Fori=1To100(A)a(i)=i+2Nexti(B)a(i)=i*i (C)a(i)=i (D)a(i)=2*I答案:D習(xí)題『會(huì)考2007』:在VisualBasic中,語(yǔ)句DimbAsDouble所定義的變量b是(A)整數(shù)型(B)單精度實(shí)數(shù)型(C)雙精度實(shí)數(shù)型(D)長(zhǎng)整數(shù)型答案:C數(shù)據(jù)類型說(shuō)明性質(zhì)Integer整數(shù)型-32768~32767之間的整數(shù)Long長(zhǎng)整數(shù)型-2147483648?2147483646間的整數(shù)Single單精度實(shí)數(shù)型絕對(duì)值在1.401298E-45?3.402823E38內(nèi)的實(shí)數(shù)Double雙精度實(shí)數(shù)型絕對(duì)值在10E-324?1.79E308內(nèi)的實(shí)數(shù)String字符串型文本Boolean邏輯型返回值True、FalseDate日期型日期和時(shí)間習(xí)題『會(huì)考2007』:在VisualBasic中,要定義一個(gè)一維數(shù)組a,用于存儲(chǔ)100個(gè)整數(shù)型數(shù)值,則正確的數(shù)組定義語(yǔ)句是八、常見(jiàn)函數(shù)1?數(shù)學(xué)函數(shù)函數(shù)名描述例子Abs(x)絕對(duì)值Result=Abs(-1),返回1Int(x)返回參數(shù)的整數(shù)部分Result=lnt(3.14),Result=lnt(-3.14),返回3返回-4Fix(x)返回參數(shù)的整數(shù)部分Result=Fix(3.14),Result=Fix(-3.14)返回3返回-3Sqr(x)開(kāi)平方Result=Sqr(4),返回2Exp(x)指定e(自然對(duì)數(shù)的底)的某次方Result=Exp(1),返回2.71828182845905Log(x)指定參數(shù)的自然對(duì)數(shù)值Result=Log(2.71828182845905),返回1

Sin(x)指定參數(shù)的sine(正弦)值,x為弧度Result=Sin(3.1415926/2),返回1——90度的正弦Cos(x)指定一個(gè)角的余弦值,x為弧度略Tan(x)指定一個(gè)角的正切值,x為弧度略2?轉(zhuǎn)換函數(shù)和字符函數(shù)函數(shù)名描述例子Asc(x)代表字符串中首字母的ASCll碼Result=Asc("A"),返回65Chr(x)返回其中包含有與指定的ASCll碼相對(duì)應(yīng)的字符Result=Chr(65),返回"A"Val(x)轉(zhuǎn)換參數(shù)為數(shù)值類型Str(x)轉(zhuǎn)換參數(shù)為字符類型Len(x)返回參數(shù)的長(zhǎng)度Result=Len("nba"),返回3Left(x,n)返回參數(shù)自左起的n個(gè)字符Result=Left("nba",2) ,返回"nb"right(x,n)返回參數(shù)自右起的n個(gè)字符Result=right("nba",2) ,返回"ba"Mid(x,n,k)返回字符串x中從第n個(gè)字符(含第n個(gè)字符)開(kāi)始的連續(xù)k個(gè)字符Result=Mid("llovethisgame!",4,6) ,返回"oveth"。(空格也要算在內(nèi))習(xí)題:欲對(duì)x=3.14159四舍五入,精確到小數(shù)點(diǎn)后 2位,則表達(dá)式寫(xiě)作 。答案:lnt(x*100+0.5)/100習(xí)題:某銀行在一次黃金交易中共交易黃金 50克,每克單價(jià)345.9567元,結(jié)算時(shí)以“元”為單位,按“分”結(jié)算。在 VB中,X=345.9567,上述算術(shù)問(wèn)題的VB表達(dá)式應(yīng)是:(A)lnt(50*X*10+0.5)/10 (B)lnt(50*X*100+0.5)/10lnt(50*X*100)/100 (D)lnt(50*X*100+0.5)/100 答案:D3?自定義函數(shù)格式Function函數(shù)名(參數(shù)表)As函數(shù)返回類型名語(yǔ)句……EndFunction習(xí)題:用自定義函數(shù)判斷閏年問(wèn)題FunctionLeap(YearAslnteger)AsBooleanlfYearMod400=0OrYearMod100<>0AndYearMod4=0ThenPrint(" 是")ElsePrint("否")EndFunctionPrivateSubCommand1_Click()Leap(Val(Trim(Textl.Text)))EndSub習(xí)題『高考2010年習(xí)題『高考2010年3月卷』:按下面公式計(jì)算y的值:(1<0)(x>100)現(xiàn)要求編寫(xiě)VB程序(運(yùn)行界面如下圖),實(shí)現(xiàn)如下功能:在文本框 Textl中輸入x的值,單擊“計(jì)算”按鈕 Command]在標(biāo)簽Label3中顯示y的值。按此要求編寫(xiě)的程序如下,其中函數(shù) f(x)用于計(jì)算y的值,但加框代碼有錯(cuò),請(qǐng)改正。Functionf(xAsSingle)AsSinglelfx<0Then

f=-xElselfx>=0Then '①f=(2*x*x+1)/(3*x-2)Elsef=Sqr(3*x*x-2*x+1)EndIfEndFunctionPrivateSubCommand1_Click()DimxAsSingle,yAsSinglex=Val(Text1.Text)y=fx ‘②Label3.Caption=Str(y)EndSub答案①:x>100;答案②:y=f(x)4.RND函數(shù)Rnd函數(shù)返回[0,1)之間隨機(jī)數(shù),使用前先用 Randomize作隨機(jī)數(shù)生成器的初始化注意:要得到[0,10]范圍的隨機(jī)數(shù),則可用什么表達(dá)式?為了生成某個(gè)范圍內(nèi)的隨機(jī)整數(shù),可使用以下公式: lnt((上界-下界+1)*Rnd+下界)DimMyValueMyValue=lnt((6*Rnd)+1) '生成1到6之間的隨機(jī)數(shù)值。習(xí)題:用隨機(jī)函數(shù)在列表中生成 10個(gè)[1,1000]的隨機(jī)整數(shù)DimiAsIntegeri=1DoWhilei<=10List1.AddItem(Str( ①))i=i+1Loop答案①:Int(1000*Rnd+1)習(xí)題:用隨機(jī)函數(shù)產(chǎn)生100個(gè)[0,99]范圍內(nèi)的隨機(jī)整數(shù),統(tǒng)計(jì)個(gè)位上的數(shù)字分別為 1,2,3,4,5,6,7,8,9,0的數(shù)的個(gè)數(shù)并打印岀來(lái)。&Forml 1=叵n4roDHlcn4roDHlcol!3sCP一00JI41Qi6259746-^9566T2s6790513961093旳997631553960384166225682425595&4573TBOB46132398_B9TB&24'n——m——n——3076674768^KLK八^-K八才>址莊輕八共覽竝穽八#共竝八1234567890&361O3277091^67707822-464Qu966S6865132347S221唸昶42曲&10-201236087773673SPrivateSubCommand1_Click()① ’初始化隨機(jī)隨機(jī)數(shù)生成器Dima(1To100)AsIntegerDimx(1To10)AsIntegerDimiAsInteger,pAsInteger'以下產(chǎn)生100個(gè)[0,99]范圍內(nèi)的隨機(jī)整數(shù),每行10個(gè)打印岀來(lái)Fori=1To100a(i)= ②Printa(i);IfiMod10=0ThenPrintNexti'以下統(tǒng)計(jì)個(gè)位上的數(shù)字分別為1,2,3,4,5,6,7,8,9,0的數(shù)的個(gè)數(shù),并將統(tǒng)計(jì)結(jié)果保存在數(shù)組x(1),x(2),...,x(10)中,將統(tǒng)計(jì)結(jié)果打印岀來(lái)Fori=1To100P= ③ '求個(gè)位上的數(shù)字Ifp=0Thenp=10x(p)=④ ’個(gè)數(shù)累加NextiPrint"統(tǒng)計(jì)結(jié)果"Fori=1To10P=iIfi=10Thenp=0Print"個(gè)位數(shù)為"+Str(p)+"共"+Str(x(i))+" 個(gè)"NextiEndSub 答案①:Randomize 答案②:lnt(Rnd*100) 答案③:a(i)Mod10答案④:x(p)+1九、算法的程序?qū)崿F(xiàn)1?枚舉算法及程序?qū)崿F(xiàn)枚舉算法的基本思想是根據(jù)問(wèn)題的本身性質(zhì), 一一列舉岀該問(wèn)題所有可能的情況,并根據(jù)題目的條件逐個(gè)作岀判斷,從中挑選岀符合條件的解答。枚舉算法屬于搜索策略,適用于那些解變量確定的連續(xù)值域的問(wèn)題。設(shè)置枚舉算法要列舉岀所有可能的情況,不能遺漏,也不能重復(fù)。習(xí)題:求出所有水仙花數(shù)(一個(gè)三位數(shù)等于它的每個(gè)數(shù)字的立方和,如: 153=13+53+33)Form=100to999A=int(m/100):B=int((m-100*a)/10):C=m-100*a-10*bN=①If②thenList1.AdditemStr(m)Nextm答案①:aA3+bA3+cA3答案②:m=n習(xí)題:下面程序的功能是:找岀 10以內(nèi)的奇數(shù)中能被3整除的正整數(shù),并將它們累加起來(lái)。為了實(shí)現(xiàn)這一目標(biāo),程序中劃線處的語(yǔ)句應(yīng)更正為 。x=0Fori=1To10Step2Ifimod3<>0Thenx=x+iNexti答案:Ifimod3=0Thenx=x+i習(xí)題:枚舉100以內(nèi)勾股數(shù)(不允許重復(fù))

Dimc,b,sumAsInteger,aAsSingleList1.Addltem("a"&"”&"b"Dimc,b,sumAsInteger,aAsSingleList1.Addltem("a"&"”&"b"&"”&"c")List1.Addltem(" ")sum=0Fora=3To100 '——列舉Forb=a+1To100 '——歹列舉c= ①If ②Andc<=100Then '逐個(gè)作岀判斷List1.AddItem(Str(a)&""&Str(b)&""&Str(c))sum=sum+1EndIfNextbNextaLabel1.Caption=" 共有勾股數(shù):"&Str(sum)&" 組"答案①:Sqr(aA2+bA2)答案②:lnt(c)=cNextbNextaLabell.Caption="共有勾股數(shù):"&Str(sum)&"組倍數(shù)。現(xiàn)設(shè)計(jì)下列算法,找岀所有滿足這些條件的5位數(shù),并統(tǒng)計(jì)岀這些5位數(shù)的個(gè)數(shù)。請(qǐng)?jiān)诳瞻仔刑幪顚?xiě)合適的VB語(yǔ)句或表達(dá)式,把程序補(bǔ)充完整。NO.3□口45 」C=0答案①:99Forj=0To ①答案②:c=c+1n=30045+100*jIf(nMod35=0)or(nMod65=0)then②Print" 可能的一個(gè)數(shù)為:"+Str(n)EndifNextjPrint" 符合題意的數(shù)總數(shù)為:"+Str(C)習(xí)題:輸出100-200間的所有不能被3整除的數(shù)并統(tǒng)計(jì)個(gè)數(shù)。方法一:Dimi,DAsInteger答案①:iMod3<>0Fori=100To200答案②:D=D+1If①ThenList1.AddItem(Str(i))②

EndIfNextiPrintStr(D)方法二:Dimi,a,b,c,DAsInteger 'a為百位數(shù),b為十位數(shù),c為個(gè)位數(shù)答案①:a=i\100Fori=100To200答案②:(i-a*100)\10 或(iModa=① :b二②:c= ③100)\10If(a+b+c)Mod3<>0Then答案③:iMod10 或c=i-100List1.AddItem(Str(i))*aD=D+1EndIfNextiPrintStr(D)方法三:Dimi,a,b,c,DAsIntegerFori=100To200a=Val(Left(Trim(Str(i)),1))b=Val(Mid(Trim(Str(i)),2,1))c=Val(Right(Trim(Str(i)),1))If(a+b+c)Mod3<>0ThenList1.Addltem(Str(i))D=D+1EndIfNextiPrintStr(D)習(xí)題:求100-200間的所有素?cái)?shù)判斷i是否為素?cái)?shù)的方法:如果i不能被[2,、、;]之間任一個(gè)數(shù)整除,則i為素?cái)?shù)

DimSuShuAsBooleanDimi,j,k,mAsIntegeri=101SuShu=FalseDoWhile①k= ②Forj=2TokIf ③ThenSuShu=False:ExitForEndIfSuShu=TrueNextjIfSuShu=TrueThenList1.Addltem(Str(i))m=m+1EndIfi=i+2LoopLabel1.Caption= "素?cái)?shù)共有:” &Str(m)& “個(gè)!”答案①:i<200答案②:Sqr(i)答案③:iModj=0練習(xí):尋找100至999之間的回文數(shù),女口11,232,505等算法分析:(假定某三位數(shù)為n)要點(diǎn)1:確定變量范圍:100~999(即n從100變到999)要點(diǎn)2:確定問(wèn)題的判斷條件n 這個(gè)數(shù)具有從左往右看與從右往左看相等的特征要點(diǎn)3:判斷條件如何實(shí)現(xiàn)?――要點(diǎn)是分離岀各數(shù)位上的數(shù) (借助Int函數(shù))女口n=456,則百位數(shù)字a=4a=lnt(n/100) 或a=n\100十位數(shù)字b=5b=lnt((n-100*a)/10) 或b=(n\10)Mod10個(gè)位數(shù)字c=6c=n-100*a-10*b或c=nMod10則,組裝n的逆序數(shù)n1=c*100+b*10+a然后判斷n=n1?對(duì)應(yīng)程序:gs=0 'Forn=100To999 'a=Int(n/100) 'b=Int((n-100*a)/10) 'c=n-100*a-10*b 'n1=100*c+10*b+a 'Ifn=n1Then 'gs=gs+1 'List1.AddltemStr(n)'EndIfNextnText1.Text=Str(gs)'變量gs存放回文數(shù)個(gè)數(shù)尋找范圍:100~999得到n的百位數(shù)字得到n的十位數(shù)字得到n的個(gè)位數(shù)字組裝生成n的逆序三位數(shù)如果n和n的逆序三位數(shù)相等統(tǒng)計(jì)回文數(shù)的個(gè)數(shù)將回文數(shù)添加到列表框1中將回文數(shù)個(gè)數(shù)寫(xiě)到文本框中習(xí)題『高考2010年3月卷』:一個(gè)十進(jìn)制整數(shù)的二進(jìn)制表示中,如果數(shù)字“ 1”的個(gè)數(shù)多于數(shù)字A類數(shù),如十進(jìn)制26的二進(jìn)制表示為11010,26是一個(gè)A類數(shù),下列VB程序的功能是:統(tǒng)計(jì)前數(shù),并在文本框中輸出。請(qǐng)?jiān)趧澗€處填入合適代碼。PrivateSubCommand1_Click()DimiAsInteger,nAsIntegerDimsAsInteger 's 為A類數(shù)的個(gè)數(shù)DimtAsInteger 't 為二進(jìn)制數(shù)中“ 1”的個(gè)數(shù)DimkAsInteger 'k 為二進(jìn)制數(shù)中“ 0”的個(gè)數(shù)s=0Fori=1To ①n=it=0k=0DoWhilen>0IfnMod2=1Thent=t+1Elsek=k+1n=n\2LoopIf ②Thens=s+1NextiText1.Text=Str(s)EndSub答案①:1000 ;答案②:t>k0"的個(gè)數(shù),則稱該整數(shù)為1000個(gè)自然數(shù)中A類數(shù)的個(gè)習(xí)題:馬克思在研究無(wú)產(chǎn)階級(jí)革命學(xué)說(shuō)的同時(shí)也很重視數(shù)學(xué)科學(xué)學(xué)習(xí),他的數(shù)學(xué)手稿中有這樣一道題:有男人、女人、小孩,在一家小飯館里花50先令,每個(gè)男人3先令,每個(gè)女人2先令,每個(gè)小孩30個(gè)人,其中有1先令,為計(jì)算男人、女人、小孩各多少人,編制VisaulBasic程序如下,程序中有2處錯(cuò)誤,請(qǐng)改正:PrivateSubCommand1_Click()n=0Forx=1To29Fory=1To29z=30-x-ym=3X+2y+z 'Ifm=50ThenListl.Addltem("男人:"&Str(x)&" ;女人:"&Str(y)&n=n+1EndIfNextyNextxListl.Addltem("共有:"&ptr(x)&"|種答案!") 'EndSub程序改正為:① :② 答案①:3*x+2*y+z;答案②:Str(n)習(xí)題:用輾轉(zhuǎn)相除法求兩個(gè)正整數(shù)的最大公約數(shù)和最小公倍數(shù)分析:(1)對(duì)于已知兩數(shù)MN,使得M>N⑵M除以N得余數(shù)R;(3)若R=0,則N為求得的最大公約數(shù),算法結(jié)束;否則執(zhí)行(4);①;小孩:"&Str(z))②M?N,NkR,再重復(fù)執(zhí)行(2);原數(shù)M*N/最大公約數(shù) 即為最小公倍數(shù)M=Val(Text1.Text):N=Val(Text2.Text)MN=M*NIfM<NThent=M:M=N: ①R=②DoWhileR>1M=N:N=RR=MModNLoopText3.Text=Str(N)Text4.Text=Str(③)2?解析算法及程序?qū)崿F(xiàn)答案①:N=t答案②:MModN答案③:(MN)/N解析算法的基本思想是用解析的方法找岀表示問(wèn)題的前提條件與所求結(jié)果之間關(guān)系的數(shù)學(xué)表達(dá)式,算來(lái)實(shí)現(xiàn)問(wèn)題的求解。習(xí)題:一元二次方程根判別程序并通過(guò)數(shù)學(xué)表達(dá)式的計(jì)■計(jì)煒1元二次方程的牖口亙岡系駅系駅系劇Xl=-.331266011250105X2=-2B1S03陽(yáng)56T暫明計(jì)算開(kāi)繪Dima,b,c,d,x1,x2AsDoublea=Val(Textl.Text):b=Val(Text2.Text):c=Val(Text3.Text)d=b人2-4*a*c ‘關(guān)鍵在于此Ifd>0Thenx1=(-b+Sqr(d))/(2*a):x2=(-b-Sqr(d))/(2*a)Text4.Text=Str(x1):Text5.Text=Str(x2)Label6.Caption=" 有兩個(gè)不同的實(shí)數(shù)根"Elselfd=0Thenx1=(-b)/(2*a):x2=x1Text4.Text=Str(x1):Text5.Text=Str(x2)Label6.Caption="Else有兩個(gè)相同的實(shí)數(shù)根”Label6.Caption="EndIf習(xí)題:雞兔同籠問(wèn)題一一分析:沒(méi)有實(shí)數(shù)根"雞x只兔y只同籠,頭共30只,腳90只,問(wèn)雞兔各幾只?(1)X+y=30 (2)2x+4y=90(x=15,y=15)Consthead=30,foot=90DimxasInteger,yAsIntegerY=①X=②Text1.text=Str(x)Text2.text=Str(y)答案①:答案②:(foot-2*head)\2(4*head-foot)\2習(xí)題:十進(jìn)制0?255轉(zhuǎn)換為二進(jìn)制Dima,c(1To8)AsIntegerDimSAsStringa=Val(Textl.Text)Ifa<0Ora>255ThenText2.Text=" 輸入數(shù)據(jù)錯(cuò)誤,請(qǐng)重新輸入!"ElseDoWhilea<.>0c(i)= ①a=Int(a/2)S=②LoopText2.Text=SEndIf答案①:答案②:aMod2Str(c(i))+S

習(xí)題:不計(jì)復(fù)利的銀行存款本息計(jì)算的算法如下:①輸入本金R和年數(shù)y ②用公式計(jì)算到期本息k=m(1+0.0314y),其中年利率為3.14%③輸岀變量k 上述算法屬于(A)解析算法(B)排序算法 (C)遞歸算法 (D)枚舉算法 答案:AJT 111習(xí)題:用一?1 ...公式求二的近似值,直到最后一項(xiàng)的絕對(duì)值小于 10占為止。4 357i=1答案①:(-1)人((i+3)/2)/iDoWhile1/i>0.000001答案②:2Sum=Sum+①i=i+ ②LoopText1.Text=Str(4*Sum)習(xí)題:加密字符串為字符串(不超過(guò)8位)作簡(jiǎn)單加密:將輸入的字符串每位字符加密為的 ASCII碼值加上4對(duì)應(yīng)的字符,再反方向輸出。如:對(duì)字符串”Abc12%'加密原字符串Abc12%原ASCII碼659899495037修改后的ASCII碼69102103535441對(duì)應(yīng)的字符Efg56)密文(反方向輸岀))65gfE流程圖:Dimd(1To8)As①DimM,XAsStringDimL,NAsIntegerM=②L=③Fori=1ToLd(i)= ④N=Asc(d(i))+4X= ⑤

Text2.Text=Nexti答案①:String答案④:Mid(M,i,1)習(xí)題:國(guó)際標(biāo)準(zhǔn)書(shū)號(hào)(Text2.Text=Nexti答案①:String答案④:Mid(M,i,1)習(xí)題:國(guó)際標(biāo)準(zhǔn)書(shū)號(hào)(答案②:Textl.Text答案⑤:Chr(N)InternationalStandardBookNumber答案③:Len(M)答案⑥:X+Text2.Text或X&Text2.Text)簡(jiǎn)稱,是國(guó)際通用的圖書(shū)或獨(dú)立的出版物 (除定期出版的期刊)代碼,格式為xx-xxx-xxxxx-x如7-209-02375-5,其中末位為識(shí)別碼,用于校驗(yàn)此 ISBN號(hào)的正確性,校驗(yàn)辦法:首位數(shù)字*1+次位數(shù)*2+,,,累加和再除以11,如余數(shù)不等于10,則結(jié)果即為識(shí)別碼,否則別碼X,為驗(yàn)證圖書(shū)ISBN號(hào)是否合法,用VisualBasic 編寫(xiě)程序如下,請(qǐng)?jiān)趧澗€行正確填寫(xiě)語(yǔ)句PrivateSubCommand4_Click()Dimi,x,yAsIntegerDimd(1To10)AsString' 該數(shù)組用于存儲(chǔ)輸入的ISBN中每一個(gè)字符DimMark,JiaoYanMa,MAsString'Mark 為計(jì)算出的ISBN標(biāo)識(shí);JiaoYanMa為輸入的ISBN的末尾字符;M為ISBN去掉“-”的部分M=Replace(Text1.Text,"-","")' 使用Replace函數(shù)將輸入的ISBN中“-”去掉,'例如將“7-115-15208-X"轉(zhuǎn)換為“711515208X”JiaoYanMa=Right(M,1)x=0:i=1Fori=1To9d(i)= ①x=x+Val(d(i))*iNextiy= ②Ify=10ThenMark="x"Else:Mark=Trim(Str(y))IfMark=JiaoYanMaThenLabel2.Caption="ISBN 號(hào)正確!"ElseLabel2.Caption="ISBN 號(hào)錯(cuò)誤!"EndIfEndSub答案①:Mid(M,i,1);答案②:xMod11習(xí)題:身份證校驗(yàn)算法:根據(jù)〖中華人民共和國(guó)國(guó)家標(biāo)準(zhǔn) GB11643-1999〗中有關(guān)公民身份號(hào)碼的規(guī)定,公民身份號(hào)碼是特征組合碼,由十七位數(shù)字本體碼和一位數(shù)字校驗(yàn)碼組成。 排列順序從左至右依次為: 六位數(shù)字地址碼,八位數(shù)字岀生日期碼,三位數(shù)字順序碼和一位數(shù)字校驗(yàn)碼。地址碼表示編碼對(duì)象常住戶口所在縣 (市、旗、區(qū))的行政區(qū)劃代碼。生日期碼表示編碼對(duì)象岀生的年、月、日,其中年份用四位數(shù)字表示,年、月、日之間不用分隔符。順序碼表示同一地址碼所標(biāo)識(shí)的區(qū)域范圍內(nèi),對(duì)同年、月、日岀生的人員編定的順序號(hào)。順序碼的奇數(shù)分給男性,偶數(shù)分給女性。校驗(yàn)碼是根據(jù)前面十七位數(shù)字碼,按照 ISO7064:1983.MOD11-2校驗(yàn)碼計(jì)算岀來(lái)的檢驗(yàn)碼。下面舉例說(shuō)明該計(jì)算方法。15位的身份證編碼首先把出生年擴(kuò)展為 4位,簡(jiǎn)單的就是增加一個(gè)19,但是這對(duì)于1900年出生的人不使用(這樣的壽星不多了)某公民身份號(hào)碼本體碼為 34052419800101001V(V為校驗(yàn)碼),首先按照公式⑴計(jì)算:刀(aixWi)mod11 ,,,,,,,,,,,,,, (1)

公式(1)說(shuō)明:i 表示號(hào)碼字符從右至左包括校驗(yàn)碼在內(nèi)的位置序號(hào);ai 表示第i位置上的號(hào)碼字符值;Wi一示第i位置上的加權(quán)因子,其數(shù)值依據(jù)公式 Wi=2A(i-1)mod11 計(jì)算得出i:181716151413121110987654321ai:34052419800101001VWi:79105842163791058421(aixWi)mod1121360251616294800905002根據(jù)公式(1)進(jìn)行計(jì)算:刀(aiXWi)=(21+36+0+25+16+16+2+9+48+0+0+9+0+5+0+0+2)=189刀(aiXWi)mod11=2然后根據(jù)計(jì)算的結(jié)果,從下面的表中查岀相應(yīng)的校驗(yàn)碼,其中 X表示計(jì)算結(jié)果為10:下表是身份證號(hào)碼校驗(yàn)表:*身紛證號(hào)碼疑翳算法諳輸入18位居民身偽證號(hào):3302112007070700^0設(shè)計(jì)VisualBasic程序如下:諸輸入庚垃居民身份證導(dǎo):33021119^00'7070025DimM,SAsInteger 'S為加權(quán)因子之和;M為算法計(jì)算岀的校驗(yàn)碼編號(hào)*身紛證號(hào)碼疑翳算法諳輸入18位居民身偽證號(hào):3302112007070700^0設(shè)計(jì)VisualBasic程序如下:諸輸入庚垃居民身份證導(dǎo):33021119^00'7070025DimM,SAsInteger 'S為加權(quán)因子之和;M為算法計(jì)算岀的校驗(yàn)碼編號(hào)Dimd(1To18)AsStringDimw(1To18)AsIntegerDimJiaoyan(0To10)AsString'下面是校驗(yàn)表Jiaoyan(0)="1":Jiaoyan(1)="0":Jiaoyan(2)="X":Jiaoyan(3)="9":Jiaoyan(4)="8":Jiaoyan(5)="7"Jiaoyan(6)="6":Jiaoyan(7)="5":Jiaoyan(8)="4":Jiaoyan(9)="3":Jiaoyan(10)="2"Fori=18To2Step-1d(i)=Mid(Text1.Text,19-i,1)自右依次取岀身份證號(hào)前17位的每一位,存入數(shù)組d中w(i)= ①S=S+w(i)*d(i)Nexti計(jì)算第i位置上的加權(quán)因子'求岀加權(quán)因子之和M=SMod11Text2.Text=Jiaoyan(M)計(jì)算校驗(yàn)碼編號(hào)查校驗(yàn)碼表,把表中校驗(yàn)碼編號(hào)對(duì)應(yīng)的校驗(yàn)碼取岀,并顯示在Text2上IfRight(Text1.Text,1)=②Then'對(duì)輸入的身份證號(hào)進(jìn)行校驗(yàn)刀(aiXWI)mod11:012345678910校驗(yàn)碼字符值V:10X98765432通過(guò)查上面得到校驗(yàn)碼為XLabel3.ForeColor=vbGreenLabel3.Caption=Label3.Caption=Else此身份證號(hào)合法!Label3.ForeColor=vbRedLabel3.Caption=" 此身份證號(hào)非法!EndIfEndSub答案:①2人(i-1)Mod11②Jiaoyan(M)習(xí)題:一球從100米高度自由落下,每次落地后反跳回原來(lái)高度的一半,再落下,求第答案:①2人(i-1)Mod11②Jiaoyan(M)習(xí)題:一球從100米高度自由落下,每次落地后反跳回原來(lái)高度的一半,再落下,求第10次落地時(shí)共經(jīng)過(guò)的米數(shù)和第 10次反彈的高度。DimSN,HNAsSingleSN=100HN=SN/2DimnAsIntegerForn=2To①SN= ② 'HN=HN/2 '第N次落地時(shí)經(jīng)過(guò)的米數(shù)第N次反彈的高度NextnLabel1.Caption=第10次落地時(shí)共經(jīng)過(guò):"&Str(SN)&"米!Label2.Caption=第10次反彈:"&Str(HN)&"米!答案①:10 答案②:SN+2*HN2 3 5 8 13 21習(xí)題:有一數(shù)列: ,求前20項(xiàng)之和。1 2 3 5 8 13Dima,b,t,iAsIntegerDimSAsDoubleS=0a=2:b=1Fori=1To20S= ①t=a②b=tNextiPrintStr(S)答案①:S+a/b 答案②:a=a+b習(xí)題『高考2010習(xí)題『高考2010年3月卷』:用迭代法求a的算術(shù)根近似值X=?..a。計(jì)算正數(shù)a的算術(shù)根(近似值)的算法公式如下:axi彳 (Xi)i=1,2,3 ,,。計(jì)算開(kāi)始時(shí)取 ,運(yùn)用上述算法公式計(jì)算 ,然后由計(jì)算,”,直到相鄰兩值Xi差的絕對(duì)值小于105為止。Dima,X1,X2AsDoublea=Val(Text1.Text)X1=a/2X2=(X1+a/X1)/2DoWhile①X1=X2②LoopText2.Text=Str(X2)答案①:Abs(X1-X2)>=10人-5 答案②:X2=(X1+a/X1)/24 2(流程圖附后)習(xí)題:用對(duì)分查找算法求方程 2x-4x?x-5=0在(-10,10)之間的根,請(qǐng)?jiān)趧澗€正確填寫(xiě)語(yǔ)句(流程圖附后)PrivateSubCommand1_Click()DimxLeft,xRight,y,xMidAsDoubleDimFindAsBooleanFind=FalsexLeft=-10:xRight=10xMid= ①y=2*xMidA4-4*xMidA2+xMid-5DoWhileAbs(y)>=0.001Ify<-0.001Then②ElsexRight=xMidEndIfxMid=(xLeft+xRight)/2y=2*xMida4-4*xMida2+xMid-5IfAbs(y)<0.001ThenMsgBox(" 方程根為:"&xMid):ExitDoEndIfLoopEndSub

答案:①(xLeft答案:①(xLeft+xRight)/2 :②xLeft=xMid?排序算法及程序?qū)崿F(xiàn)(1)冒泡排序冒泡排序的基本思想是在待排序的數(shù)據(jù)中, 從數(shù)據(jù)一端開(kāi)始進(jìn)行兩兩相鄰數(shù)據(jù)大小比較, 發(fā)現(xiàn)不滿足要求的排序大小順序要求,立刻進(jìn)行數(shù)據(jù)交換,直至確定一個(gè)數(shù)字的位置為止;然而再?gòu)念^開(kāi)始兩兩相鄰數(shù)據(jù)比較 ”這樣需要經(jīng)歷 N-1遍遍歷所在比較次數(shù)為(N-1)*N/2次。*j-1+j27*j-1+j27j-1j27j-1j18361827183636323232第1次冒泡排序時(shí) j從4開(kāi)始到2d(1)181818d(2)2727?j-127第2次冒泡排序時(shí)j從4開(kāi)始到3d(3)36?j-132*j32d(4)32*j3636d(1)1818d(2)2727第3次冒泡排序時(shí)j從4開(kāi)始到4d(3)32+j-132d(4)36?j36第1次冒泡排序時(shí)j從4開(kāi)始到2Forj=4to2step-1ifd(j)<d(j-1)then 交換d(j)和d(j-1)的值第2次冒泡排序時(shí)j從4開(kāi)始到3Forj=4to3step-1ifd(j)<d(j-1)then 交換d(j)和d(j-1)的值第3次冒泡排序時(shí)j從4開(kāi)始到4Forj=4to4step-1ifd(j)<d(j-1)then 交換d(j)和d(j-1)的值總結(jié)起來(lái):

冒泡排序要點(diǎn)歸納一一對(duì)于n個(gè)元素的數(shù)據(jù)進(jìn)行冒泡排序的規(guī)律:1、 需要n-1遍加工,每遍加工完成1個(gè)數(shù)的有序排列,即遍數(shù)i從1變到n-12、 第i遍加工過(guò)程中共需要n-i次的比較(交換次數(shù)根據(jù)具體數(shù)據(jù)而定)3、 第i遍加工過(guò)程中,j的變化從n到i+14、 總的比較次數(shù)=(n-1)+(n-2)+ ,+2+1=n(n-1)/2次 (2)選擇排選擇排序的基本思想是在所有的記錄中 選出最小(大)的數(shù)據(jù),把它與第一個(gè)數(shù)據(jù)交換,然后在其余的記錄中再選出最小(大)的數(shù)據(jù)與第二個(gè)數(shù)據(jù)交換,依此類推,直至所有數(shù)據(jù)排序完成。算法演示:第1遍選擇d(1)d⑵d⑶d⑷Min=1j=227■Min=127363632十j=3321818j=4Min=j如果最小的數(shù)所在的位置不是 1,則交換d(min)和18363227d(1)d⑵d⑶d⑷Min=1j=227■Min=127363632十j=3321818j=4Min=j如果最小的數(shù)所在的位置不是 1,則交換d(min)和18363227Forj=2to4If d(min)>d(j)Thend(1)的位置:IfMin<>1Thenmin=jEndIfNextjS=d(Min):d(Min)=d(1):d(1)=SEndIf第2遍選擇Min=2j=3Min=j=3Min=j■0—j=4181836273232127—Min=j匸j=436和Forj=3to4Ifd(min)>d(j)Then

min=jEndIfNextj第3遍選擇?Min=3■*—j=4程序代碼如下如果最小的數(shù)所在的位置不是 2,則交換d(min)d(2)的位置:IfMin<>2ThenS=d(Min):d(Min)=d(1):d(1)=SEndIfMin=3Forj=4to4Ifd(min)>d(j)Then

min=jEndIf最小的數(shù)的位置正是3,不交換:NextjDimd(1to4)AsIntegerFori=1ToFori=1To3 'k=i 'kForj=i+1To4 '小數(shù)的下標(biāo)Ifd(j)<d(k)Thenk=j'kNextjIfk<>iThen 'd(i),k=i時(shí)無(wú)須交換x=d(k):d(k)=d(i):d(i)=x不可隨意EndIf對(duì)遍數(shù)進(jìn)行循環(huán)記憶最小數(shù)的下標(biāo),初值 k=i第i遍內(nèi)的循環(huán),循環(huán)的結(jié)果得到最總是記住較小數(shù)據(jù)的下標(biāo)找出了最小數(shù),準(zhǔn)備交換d(k)與交換d(k)與d(i),注意交換次序Nexti選擇排序要點(diǎn)歸納一一對(duì)于n個(gè)元素的數(shù)據(jù)進(jìn)行選擇排序的規(guī)律:1、 需要n-1遍選擇,每遍選擇完成1個(gè)數(shù)的有序排列,即遍數(shù)i從1變到n-12、第i遍選擇過(guò)程中共需要 n-i次的比較(每遍選擇最多交換1次)3、第i遍選擇過(guò)程中,j的變化從i+1到n4、 變量k記憶最小數(shù)下標(biāo),初值k=i,不斷比較d(j)與d(k)大小,若d(j)<d(k),則k=j5、 每遍選擇最后交換1次,交換d(i)與d(k),如果k=i則無(wú)須交換6、選擇排序總的比較次數(shù)=(n-1)+(n-2)+,+2+1=n(n-1)/2次,總的交換次數(shù)最多n-1次思考:如何將從大到小的排序修改成為從小到大的排序方式?習(xí)題『會(huì)考2008』:五位評(píng)委給歌手打分的成績(jī)依次為 93,85,92,84,90,原始數(shù)據(jù)9385928490第一趟8493859290第二趟第三趟8485909392第四趟8485909293若采用冒泡排序算法對(duì)其進(jìn)行從小到大排序,則第二趟的排序結(jié)果是(A)8490859392(B)8493859092(C)8485939092(D)8490928593 答案:C習(xí)題『會(huì)考2008』:有一組數(shù),依次為3、2、8、5、9,原始數(shù)據(jù)32859第一趟92853第二趟第三趟98523第四趟98532若采用選擇排序算法對(duì)其進(jìn)行從大到小排序,則第二趟的排序結(jié)果是(A)92853 (B)95823 (C)98253 (D)92835 答案:C習(xí)題『會(huì)考2010』某校5名學(xué)生會(huì)推薦成員網(wǎng)絡(luò)人氣得票數(shù)依次為 1201,2120,1009,1987,2010,12D121301CCQ19ST20OT羽一趙212Q1387奚二迪勇三遇21202009直T120121203X9198712011M9若采用選擇排序算法對(duì)其進(jìn)行從大到小排序,則第二趟的排序結(jié)果是(A)21202010100919871201 (B)21202010100912011987

答案:A答案:A習(xí)題『會(huì)考2010』在NB曝賽季中,火箭隊(duì)5場(chǎng)比賽得分依次為114,89,97,70,90,1L4977090第一遇114旳97K第二遇TO9011497TOS99097114若采用冒泡排序算法對(duì)其進(jìn)行從小到大排序,則第二趟的排序結(jié)果是(A)7089114 9097 (B)7011489 9790(C)7011489 90 97(D)709089 114 97答案:A習(xí)題『會(huì)考2010』:某超市水果區(qū)共有5種水果品種,其價(jià)格依次為9.20、4.00、8.50、1.80、2.50,原始數(shù)據(jù)9.304.008.50i.ao2.50第一粗i.eo@.204.006.602.50第二趟第三趟1-802-504.009.208.50第四趟1.802.504.00B.609.20若采用冒泡排序算法對(duì)其進(jìn)行從小到大排序,則第二趟的排序結(jié)果是(A)1.808.502.509.204.00 (B)1.802.509.204.008.50(C)1.804.009.202.508.50 (D)1.802.508.504.009.20 答案:B習(xí)題『會(huì)考2010』:某食品連鎖店5位顧客貴賓消費(fèi)卡的積分依次為 810、512、613、700、900,融敕據(jù)融敕據(jù)000512512900第二釣第三趙512513512513613700S106L3700S10700SOO810700E10900若采用選擇排序算法對(duì)其進(jìn)行從小到大排序,則第二趟的排序結(jié)果是(A)512613 700 900 810 (B)512810 613900 700(C)512900 613 700810 (D)512613 900(C)512900 613 700810 (D)512613 900700 810答案:D習(xí)題:按學(xué)號(hào)從小到大整理一堆學(xué)生試卷的算法是:第一次,從上到下找岀學(xué)號(hào)最小的試卷反扣在桌面上;第二次從剩余試卷中從上到下找岀學(xué)號(hào)最小的試卷反扣在第一次找岀的試卷上;第三次,從剩余試卷中從上到下找岀學(xué)號(hào)最小的試卷反扣在第二次找岀的試卷上;,,依此類推,最后完成整理工作。此算法屬于(A)排序算法 (B)對(duì)分查找(C)遞歸算法 (D)解析算法 答案:A習(xí)題:某次運(yùn)動(dòng)會(huì)上,八個(gè)運(yùn)動(dòng)員 100米成績(jī)?nèi)缦拢禾?hào)碼成績(jī)a(1)=860b(1)=12.9a(2)=576b(2)=11.3a(3)=301b(3)=13.5a(4)=455b(4)=12.6a(5)=102b(5)=12.0a(6)=377b(6)=11.0a(7)=023b(7)=12.5a(8)=530b(8)=13.2設(shè)計(jì)一個(gè)程序使之輸岀運(yùn)動(dòng)會(huì)排名前 3名的編號(hào)和成績(jī):Dima(1To8)AsStringDimb(1To8)AsSingleDimi,j,kAsIntegerDimtAsString,pAsSinglea(1)=860:b(1)=12.9:a(2)=576:b(2)=11.3:a(3)=301:b(3)=13.5a(4)=455:b(4)=12.6:a(5)=102:b(5)=12:a(6)=377:b(6)=11a(7)=23:b(7)=12.5:a(8)=530:b(8)=13.2Fori=1To7k=iForj=i+1To8Ifb(j)<b(k)Thenk=jNextjIfi<>kThent=a(i):a(i)=a(k):a(k)=tp=b(i):b(i)=b(k):b(k)=pEndIfNextiFori=1To3List1.Addltem(Str(a(i))+""+Str(b(i)))Nexti?查找算法及程序?qū)崿F(xiàn)(1)順序查找順序查找的基本思想是從第一個(gè)數(shù)據(jù)開(kāi)始,按數(shù)據(jù)的順序逐個(gè)將數(shù)據(jù)與給定的值進(jìn)行比較,若某個(gè)數(shù)據(jù)和給定值相等,則查找成功,找到所查數(shù)據(jù)的位置;反之,查找不成功。將被查的數(shù)存放到數(shù)組中(比如數(shù)組 d),待查的數(shù)據(jù)存放在某變量中(比如變量key)從數(shù)組第1個(gè)元素開(kāi)始,逐個(gè)與要查找的數(shù)比較,最終得岀找到或找不到的結(jié)論。順序查找要點(diǎn)一一從n個(gè)元素的數(shù)據(jù)中用順序查找方法查找某個(gè)值的規(guī)律:1、從數(shù)組的第1個(gè)元素開(kāi)始,不斷判斷 d(i)是否等于key2、 最少查找1次,最多查找n次3、查找成功,則輸岀該元素的下標(biāo)i,查找不成功輸岀0習(xí)題『會(huì)考2010』:在某學(xué)校里,每位同學(xué)都會(huì)得到一張一卡通卡,一卡通的卡號(hào)是唯一的,卡內(nèi)會(huì)記錄每位同學(xué)的姓名、住址、班級(jí)、金額等信息。每當(dāng)同學(xué)刷卡時(shí),卡號(hào)就被

溫馨提示

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

評(píng)論

0/150

提交評(píng)論