




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、高中信息技術(shù)算法與程序設(shè)計(jì)VB(選修)知識(shí)要點(diǎn)相關(guān)知識(shí)點(diǎn)(一)算法1.定義相關(guān)題解:算法:就是解決問(wèn)題的方法和步驟。算法是程序設(shè)計(jì)的“靈魂”,算法+數(shù)據(jù)結(jié)構(gòu)程序。2算法的描述方法:算法的描述:可分多種表達(dá)方法,一般用自然語(yǔ)言、流程圖和偽代碼進(jìn)行描述。1)自然語(yǔ)言描述法:指用人們?nèi)粘I钪惺褂玫恼Z(yǔ)言(本國(guó)語(yǔ)言),用自然語(yǔ)言描述符合我們的習(xí)慣,且容易理解。輸入或輸出判斷處理或運(yùn)算開(kāi)始或結(jié)束2)流程圖描述:也稱(chēng)程序框圖,它是算法的一種圖形化表示方法。且描述算法形象、直觀,更易理解。3)偽代碼描述法:是介于自然語(yǔ)言和計(jì)算機(jī)程序語(yǔ)言之間的一種算法描述。是專(zhuān)業(yè)軟件開(kāi)發(fā)人員常用方法。(二)程序設(shè)計(jì)基礎(chǔ)(1)
2、常用高級(jí)編程語(yǔ)言:BASIC、VB、Pascal、C、C+、Java1、面向?qū)ο蟮某绦蛟O(shè)計(jì)語(yǔ)言:其中的對(duì)象主要是系統(tǒng)設(shè)計(jì)好的對(duì)象,包括窗體等、控件等2、控件:是指工具箱中的工具在窗體中畫(huà)出的、能實(shí)現(xiàn)一定功能的部件,如文本框,命令按鈕等。常用控件:控件對(duì)象的類(lèi)型前綴名字舉例窗體Formfrmfrmfind命令按鈕Command buttoncmdcmdok標(biāo)簽Labellbllblinput文本框TextBoxtmrtmrClock若命令按鈕(Command)的Enabled屬性設(shè)置為T(mén)rue時(shí)按鈕有效,設(shè)置為False時(shí)按鈕無(wú)效3、對(duì)象的屬性、方法和事件1)屬性 屬性Name設(shè)置對(duì)象的名稱(chēng)Ca
3、ption決定控件中顯示的內(nèi)容(文字)Text決定窗體中文本框中顯示的內(nèi)容(初始為空白)Height決定控件高度Width決定控件寬度TOP決定控件的靠頂部位置Left決定控件的靠左邊位置Font設(shè)置控件中字體格式BackColor設(shè)置控件背景色ForeColor設(shè)置控件的前景色BorderStyle設(shè)置控件的邊框風(fēng)格Alignment即標(biāo)簽文字對(duì)齊屬性:(0)Left Justify時(shí)文本左對(duì)齊;(1)Right Justify時(shí)文本右對(duì)齊;設(shè)置為(2)Center時(shí)文本居中。AutoSize設(shè)置為False時(shí)輸入控件Caption中文字超過(guò)控件寬度時(shí)超出部分被裁剪掉,設(shè)置為T(mén)rue時(shí),控件
4、可水平擴(kuò)充,以適應(yīng)控件Caption屬性。Visible決定控件是否可見(jiàn)Enabled決定控件運(yùn)行時(shí)是否有效對(duì)象.屬性屬性值對(duì)象中屬性可以在設(shè)計(jì)界面時(shí)通過(guò)屬性窗中設(shè)置,也可以在運(yùn)行時(shí)通過(guò)程序代碼設(shè)置,方法如下例:給文本框“Txt123”的“Text”屬性賦值為字符串“20”,代碼如下Txt123.text =”20”變量對(duì)象.屬性如果要獲取對(duì)象的狀態(tài)或特性,這時(shí)就要讀取對(duì)象的屬性值,方法如下例:讀取文本框“txt123”的“Text”屬性的代碼如下a = txt123.text2)方法對(duì)象.方法參數(shù)名表例:form.print ”歡迎使用”該語(yǔ)句使用print方法在form1窗體中顯示字符串“
5、歡迎使用”3)事件及事件驅(qū)動(dòng)事件是對(duì)象對(duì)外部操作的響應(yīng),如在程序執(zhí)行時(shí),單擊命令按鈕會(huì)產(chǎn)生一個(gè)Click事件。如需要命令按鈕響應(yīng)Click事件,就把完成Click事件功能的代碼寫(xiě)到Click事件的事件過(guò)程中,與事件一一對(duì)應(yīng)。事件過(guò)程的形式如下:Private Sub 對(duì)象_事件名( )(事件過(guò)程代碼)End Sub一個(gè)簡(jiǎn)單的VB程序求圓的周長(zhǎng)和面積Private Sub Command1_Click()Dim r As Single '定義r為單精度型Dim c As Single '定義c為單精度型Dim s As Single '定義s為單精度型r = Val(Te
6、xt1.Text) '輸入半徑rc = 2 * 3.14159 * r '計(jì)算周長(zhǎng)s = 3.14159 * r * r '計(jì)算面積Text2.Text = c '輸出周長(zhǎng)Text3.Text = s '輸出面積End SubPrivate Sub Command2_Click()End '退出End Sub相關(guān)題解:一、常量:批在程序進(jìn)行過(guò)程中不變的量在VB中一般分?jǐn)?shù)值常量與字符常量?jī)煞N數(shù)值常量:就是數(shù)學(xué)中說(shuō)的常數(shù),分整型常量和實(shí)型常量?jī)煞N整型常量:即整數(shù),指不帶小數(shù)點(diǎn)的數(shù)值如1、0、-10、+35等都是合法的整數(shù)實(shí)型常量:即實(shí)數(shù),指帶小數(shù)點(diǎn)的
7、數(shù)值。實(shí)型常量又分為定點(diǎn)數(shù)和浮點(diǎn)數(shù)兩種。例:定點(diǎn)數(shù):3.14159和-6.8,1.99浮點(diǎn)數(shù):2E6、1E5、88E例:1.2345×103 可表示為1.2345E3,字母E表示底數(shù)10浮點(diǎn)數(shù)就是數(shù)學(xué)上的科學(xué)計(jì)數(shù)法。字符串常量:被一對(duì)雙引號(hào)括起來(lái)的若干個(gè)合法的字符稱(chēng)為字符串常量。例如:”China”、”Visual Basic”、”18”、”3.1415”等,雙引號(hào)中字符,不包括雙引號(hào)本身。 符號(hào)常量:如果多次用到同一個(gè)常量,則可用一個(gè)有意義的名字表示這個(gè)常量。二、變量:在程序執(zhí)行過(guò)程中,其值可以改變的量稱(chēng)為變量變量命名注意要點(diǎn):1、必須以字母開(kāi)頭,不能以數(shù)字或其他字符開(kāi)頭
8、。2、只能由字母、漢字、數(shù)字學(xué)或下劃線組成,不能含有小數(shù)點(diǎn)、空格等字符。3、最長(zhǎng)不超過(guò)255個(gè)字符4、不能以VB保留字作變量名,如語(yǔ)句定義符、函數(shù)名等。5、VB不區(qū)分變量名中字母大小寫(xiě)。如HELLO和Hello是同一個(gè)變量。數(shù)據(jù)及運(yùn)算(1)常用數(shù)據(jù)類(lèi)型:(整型)Integer、(長(zhǎng)整型)Long、(單精度型)Single、(雙精度型)Double、(字符串型)String、(布爾型)Boolean、(日期型)Date其中(整型)Integer、(長(zhǎng)整型)Long、(單精度型)Single、(雙精度型)Double屬于數(shù)值型表示范圍:(整型)Integer (-32768 32767,存儲(chǔ)為 1
9、6 位 , 2 個(gè)字節(jié))(長(zhǎng)整型)Long(-21億 21億,可以表示人口數(shù)量)(布爾型)Boolean(True 真、是 或 False假、非)(字符串型)String(定長(zhǎng)字符串:065535個(gè)字符,不定長(zhǎng)字符串:020億個(gè)字符) 字符串型數(shù)據(jù)是指用 “ ”括起來(lái)的一串字符。如“歡迎進(jìn)入VB世界!”、“ Visual Basic” 、“1234 ”都是字符串類(lèi)型。(日期型)Date(100/1/19999/12/31) 日期型數(shù)據(jù)專(zhuān)門(mén)用來(lái)處理日期和時(shí)間。VB采用一對(duì)“#”把日期和時(shí)間的值括起來(lái),如#2003/08/20#表示2003年8月20日。(2)常量和變量的命名、聲明及賦值符號(hào)常量的
10、聲明:Const 常量名 As 常量類(lèi)型 = 常量值如:Const pi As Single = 3.14159 常量名為pi變量的聲明:Dim <變量名 >As <變量類(lèi)型> 如:Dim a As Integer 定義一個(gè)整型變量,變量名為a變量的賦值VB中使用Let語(yǔ)句給變量賦值,其形式如下:Let 變量 = 表達(dá)式其中,方括號(hào)表示這部分內(nèi)容是可選的,通??梢允÷栽撽P(guān)鍵字。例題Private Sub Form_Click() Dim a As Integer, b As Integer, c As Integer Dim str As String Let a =
11、54 Let b = 114 c = a + b str = "Hello World" Print "a=" a, "b=" b, "c=" c Print strEnd Sub數(shù)據(jù)的輸出程序中運(yùn)算得到的結(jié)果,除可以使用文本框和標(biāo)簽顯示外,對(duì)于大批量的數(shù)據(jù)更適合用Pint方法輸出,格式如下對(duì)象 . Pint 表達(dá)式列表例題:Private Sub Form_Click() Dim x As Single, y As Single Form1.Print -61; -34 Form1.Print 9 * 2; 12
12、 Form1.Print "This is" "a book" x = 3: y = 4 Print "x=" x, "y=" yEnd Sub注意:Print 方法運(yùn)算符1、 算術(shù)運(yùn)算:+ 加 - 減 *乘 指數(shù) 例:22 = 4/ (浮點(diǎn))除 例:5 / 2 = 2.5 整除 例: 5 2 = 2Mod 求余數(shù) 例:5 Mod 2 = 1關(guān)系運(yùn)算=賦值、<小于號(hào)<>不等于>大于號(hào)>=大于等于號(hào)<=小于等于號(hào)注意:關(guān)系表達(dá)式的運(yùn)算結(jié)果為布爾值True 或 False例:3 &g
13、t; 2 結(jié)果為 True(真或是)邏輯運(yùn)算Not(取反)And(與) Or(或)運(yùn)算結(jié)果為布爾型(Boolean)True 或 False邏輯運(yùn)算符的優(yōu)先級(jí)為:No > And > Or日期運(yùn)算符與日期表達(dá)式日期表達(dá)式是用日期運(yùn)算符“+”或“-”將算式表達(dá)式、日期型常量、日期型變量、日期函數(shù)等連接起來(lái)的式子,如表達(dá)式“#2003/09/01# +30”的運(yùn)算結(jié)果是“2003-10-1”;表達(dá)式“#2003/10/20# - #2003/10/10#”的運(yùn)算結(jié)果為整數(shù)10字符運(yùn)算字符串連接符為“+”和“&”“123” + “45” = “12345”“123” &
14、“45” = “12345”123 + “45” = 168“123” + 45 = 168運(yùn)算符的執(zhí)行順序在VB中,當(dāng)一個(gè)表達(dá)式中同時(shí)出現(xiàn)多種運(yùn)算符時(shí),運(yùn)算次序由運(yùn)算符的優(yōu)先級(jí)決定,優(yōu)先級(jí)高的運(yùn)算符先運(yùn)算,優(yōu)先級(jí)相同的從左向右進(jìn)行運(yùn)算。不同性質(zhì)的運(yùn)算符優(yōu)先級(jí)如下。算術(shù)運(yùn)算符 > 字符串運(yùn)算符 > 關(guān)系運(yùn)算符 > 邏輯運(yùn)算符常用函數(shù)數(shù)學(xué)函數(shù)Abs(x) 求x 的絕對(duì)值,例:abs(-3.6) = 3.6Sqr(x) 求 x 的平方根,例:sqr(100) = 10Int(x)求x的最大整數(shù) 例:int(3.6) = 3 int(-3.6) = -4Rn
15、d(x)產(chǎn)生0,1)之間的隨機(jī)數(shù)(不包括1)Sin(x)Cos(x)Tan(x)Atn(x)Exp(x)Log(x)使用三角函數(shù)時(shí),參數(shù)應(yīng)是弧度,如數(shù)學(xué)中sin300應(yīng)寫(xiě)為:sin(30*3.14159/180)字符串函數(shù)Len(字符串) 求字符串的長(zhǎng)度 ,例:Len(“hello”) = 5Left(字符串,截取長(zhǎng)度) 截取字符串左邊部分,例:Left(“hello”,2) = “he”Mid(字符串,起始位置,截取長(zhǎng)度) ,例:Mid(“hello”,2,2) = “el”其他:Right (字符串,長(zhǎng)度)截取字符串右邊部分。例: Right (“hello”,2) = “l(fā)o” Stri
16、ng(數(shù)值,字符)生成指定長(zhǎng)度與指定字符的字符串,例:String(3,”9”) = ”999”常用轉(zhuǎn)換函數(shù)Val(字符串) 將字符串轉(zhuǎn)換為數(shù)值Str(數(shù)值) 將數(shù)值轉(zhuǎn)換為字符串Chr(字符代碼)Asc(字符)Tab定位函數(shù)的使用例題Private Sub Form_Click() Dim a As Integer Dim b As Integer a = 4: b = 9 Print Tab(1); "數(shù)" Tab(9); "平方" Tab(18); "立方" Tab(27); "平方根" Print Tab(1
17、); a; Tab(9); a * a; Tab(18); a * a * a; Tab(27); Sqr(a) Print Tab(1); b; Tab(9); b * b; Tab(18); b * b * b; Tab(27); Sqr(b)End Sub用戶交互函數(shù)VB提供InputBox( )和MsgBox( )函數(shù)用于人機(jī)交互InputBox( )其語(yǔ)法格式為:InputBox( 提示,標(biāo)題,默認(rèn)值,X坐標(biāo),Y坐標(biāo))MsgBox( ) 其語(yǔ)法格式為:MsgBox(提示信息,按鈕,標(biāo)題 )( 三 )程序設(shè)計(jì)的順序結(jié)構(gòu)程序設(shè)計(jì)的順序結(jié)構(gòu):代碼按照由上到下的順序一行一行地執(zhí)行。程序執(zhí)行過(guò)
18、程中沒(méi)有分支、沒(méi)有重復(fù),這種結(jié)構(gòu)稱(chēng)為順序結(jié)構(gòu)。例題:交換兩個(gè)變量中的數(shù)據(jù)。Private Sub cmdSwap_Click() Dim x As Single, y As Single Dim m As Single x = Val(txtsx.Text) y = Val(txtsy.Text) m = x: x = y: y = m '交換數(shù)據(jù) txtdx.Text = Str(x) txtdy.Text = Str(y)End SubPrivate Sub cmdEnd_Click() EndEnd Sub程序設(shè)計(jì)的分支結(jié)構(gòu)行If語(yǔ)句行If是指在一行中寫(xiě)完的If語(yǔ)句。其一般格式為
19、:格式一:If條件Then語(yǔ)句執(zhí)行這種形式的If語(yǔ)句時(shí),首先對(duì)條件進(jìn)行判斷。若條件成立,則執(zhí)行Then后面的語(yǔ)句;若條件不成立,則執(zhí)行If語(yǔ)句后繼程序行的語(yǔ)句格式二:If條件 Then 語(yǔ)句 1 Else 語(yǔ)句 2例題:輸入三個(gè)不相同的數(shù),求出其中最小數(shù)。Private Sub Form_Click() Dim a As Single, b As Single, c As Single Dim Min As Single a = InputBox("輸入a", "輸入框") b = InputBox("輸入b", "輸入框&
20、quot;) c = InputBox("輸入c", "輸入框") If a < b Then Min = a Else Min = b If c < Min Then Min = c Print "最小數(shù)" MinEnd Sub執(zhí)行這種形式的語(yǔ)句時(shí),先進(jìn)行判斷。若條件成立,則執(zhí)行語(yǔ)句1;否則執(zhí)行語(yǔ)句2。塊If語(yǔ)句上述If-then語(yǔ)句只能根據(jù)條件的真假是否執(zhí)行一條語(yǔ)句,當(dāng)Then部分和Else部分包含的內(nèi)容較多時(shí),則可選用“塊If語(yǔ)句”結(jié)構(gòu)。格式三:If 條件 Then 語(yǔ)句塊 End If例題:當(dāng)從輸入一個(gè)數(shù)時(shí),當(dāng)該數(shù)
21、大于或等于60時(shí)顯示"及格",該數(shù)小于60時(shí)顯示"不及格"。Private Sub Command1_Click() Dim a As Single a = Val(Text1.Text) If a >= 60 ThenLabel1.Caption = "及格" End IfIf a < 60 ThenLabel1.Caption = "不及格" End IfEnd Sub格式四:If 條件 Then 語(yǔ)句塊1 Else 語(yǔ)句塊2 End If例題:編寫(xiě)程序,求函數(shù)Y的值(當(dāng)x0時(shí),y=3x+1;當(dāng)x&
22、gt;0時(shí),y=4x+1)。Private Sub Form_Click()Dim x As SingleDim y As Singlex = Val(InputBox("請(qǐng)輸入變量x")If x <= 0 Then y = 3 * x + 1Else y = 4 * x + 1End IfPrint "y=" yEnd Sub程序設(shè)計(jì)的循環(huán)結(jié)構(gòu)一、For-Next循環(huán)For循環(huán)變量一般形式是:For循環(huán)變量=初值To終值Step循環(huán)變量增量 循環(huán)體Nxt循環(huán)變量例題1:求s1+2+3+4.+100Private Sub Form_Click()
23、Dim i As Integer Dim sum As Integer sum = 0 For i = 1 To 100 sum = sum + i ' 循環(huán)體 Next i Print "sum=" sumEnd Sub例題2:Step循環(huán)變量增量Private Sub Form_Click()For j = 3 To 15 Step 2Print jNext jEnd Sub循環(huán)變量的初值、終值、循環(huán)變量增量都是數(shù)值型。其中要重復(fù)執(zhí)行的操作稱(chēng)為循環(huán)體,增量可正可負(fù),如果沒(méi)有設(shè)置Step,則增量的缺省值為11、 循環(huán)變量取初值;2、 循環(huán)變量與終值比較,沒(méi)有超過(guò)終
24、值轉(zhuǎn)3,否則循結(jié)束,接著執(zhí)行循環(huán)語(yǔ)句的后繼語(yǔ)句;3、 執(zhí)行一次循環(huán)體4、 循環(huán)變量增加一個(gè)增量5、 重復(fù)步驟24。以上可以看出,F(xiàn)or-Next循環(huán)變量是一種當(dāng)型循環(huán)。說(shuō)明(a) For語(yǔ)句與Next語(yǔ)句必須成對(duì)出現(xiàn),而且它們當(dāng)中的“循環(huán)變量”必須是同一個(gè)變量,如上例中均為I。(b) 當(dāng)循環(huán)變量為正時(shí),循環(huán)變量超過(guò)終值,是指循環(huán)變量的值大于終值時(shí);若為負(fù),則是指循環(huán)變量的值小于終值。二、DoLoop循環(huán)For-Next循環(huán)的次數(shù)是確定的,但是有的問(wèn)題只知道循環(huán)結(jié)束的條件,重復(fù)執(zhí)行的次數(shù)事先并不知道,這是需要Do-Loop循環(huán)格式一:Do While 條件循環(huán)體Loop例題:求最大公約數(shù)Priv
25、ate Sub Command1_Click() Dim a As Integer Dim b As Integer Dim r As Integer a = Val(Text1.Text) b = Val(Text2.Text) r = a Mod b Do While r <> 0 a = b b = r r = a Mod b Loop Text3.Text = Str(b)End SubPrivate Sub Command2_Click() EndEnd Sub當(dāng)VB執(zhí)行Do While-Loop循環(huán)時(shí),先判斷指定的條件是否為真,若條件為真,執(zhí)行循環(huán)體,條件為假時(shí)退出循環(huán)
26、。格式二: Do 循環(huán)體Loop Until條件這種循環(huán)的執(zhí)行過(guò)程如圖所示。進(jìn)入循環(huán)體后,先執(zhí)行一次循環(huán)體A,然后再檢查條件P是否成立。如果不成立,就重復(fù)執(zhí)行循環(huán)體A,直到條件P成立退出循環(huán)體。例題:如果我國(guó)人口每年以平均1.5%的速度增長(zhǎng),問(wèn)多少年后我國(guó)人口達(dá)到或超過(guò)15億?設(shè)現(xiàn)在人口為12.3億。Private Sub Form_Click() Dim p As Single Dim r As Single Dim n As Integer p = 1230000000# r = 0.015 n = 0 Do p = p * (1 + r) n = n + 1 Loop Until p &
27、gt;= 1500000000# Print n; "年后", "人口=" pEnd Sub(四)算法與問(wèn)題解決1、解析法2、窮舉法3、遞歸法4、排序與查找數(shù)據(jù)一、窮舉算法及程序?qū)崿F(xiàn)枚舉算法基本思想是根據(jù)問(wèn)題本身的性質(zhì),一一列舉出該問(wèn)題所有可能的情況,并根據(jù)題目的條件逐個(gè)作出判斷,從中挑出符合要求的解。枚舉算法屬于搜索策略,適用于解變量確定的連續(xù)值域的問(wèn)題。設(shè)計(jì)枚舉算法時(shí)要在盡可能小的范圍內(nèi)羅列出所有可能的情況,不能遺漏,也不能重復(fù)。例:假如我有一個(gè)QQ的密碼是一位數(shù)字,如果讓同學(xué)們來(lái)破解的話,會(huì)把0到9十個(gè)數(shù)字都試一遍,找到密碼,這種方法使用的算法就是
28、枚舉算法。枚舉算法解題的主要方法,必須把所有的可能情況都一一列出來(lái),這種可能情況,一般通過(guò)循環(huán)列舉出來(lái)。例如一份單據(jù)被抹除的數(shù)字的推算問(wèn)題??赡艿那闆r有25006至25996一共100種,通過(guò)循環(huán)把這一百種情況全部列出來(lái),在循環(huán)列出來(lái)的過(guò)程對(duì),對(duì)每一種情況進(jìn)行比較,是否符合要求。n=25006+j*100,j的范圍為0至99,此處列出來(lái)的表達(dá)式只有一個(gè)未知數(shù)j,所以只需用一重循環(huán)就夠了。DO循環(huán)c=0 如果需要統(tǒng)計(jì)符合要求的單據(jù)的張數(shù)的話,用c做計(jì)數(shù)器j=0do while j<100 j的范圍是0至99,此處也可寫(xiě)成j<=99 n=25006+j*100 通過(guò) j把單據(jù)
29、的所有的可能情況列出來(lái) if n mod 37=0 or n mod 67=0 then 判斷是否符合要求 print n 通過(guò)判斷把符合要求的單據(jù)的值輸出 c=c+1 符合要求的單據(jù)加一張 end if j=j+1 j每次增加1直到99 loopFOR循環(huán)c=0 如果需要統(tǒng)計(jì)符合要求的單據(jù)的張數(shù)的話,用c做計(jì)數(shù)器For j=0 to 99 一重循環(huán),把j所有可能情況列出來(lái) n=25006+j*100 通過(guò) j把單據(jù)的所有的可能情況列出來(lái) if n mod 37=0 or n mod 67=0 then 判斷是否符合要求 print n 通過(guò)判斷把符合要求的單據(jù)的值輸出c=c+1 符
30、合要求的單據(jù)加一張 end ifNext j在for循環(huán)中不需要j=j+1,因?yàn)閒or循環(huán)j的值每次會(huì)自己增加步長(zhǎng),此處步長(zhǎng)省略沒(méi)寫(xiě),即表示步長(zhǎng)為1,所以j每次會(huì)自動(dòng)增加1。例如玩具裝盒問(wèn)題:小盒最多裝5個(gè),大盒最多裝12個(gè),1200個(gè)玩具多少種裝法。設(shè)小盒為x個(gè),則x的范圍是:0至240;設(shè)大盒為y個(gè),則y的范圍是:0至100要求符合的條件為5*x+12*y=1200,此處有兩個(gè)未知數(shù)x、y,所以的用二重循環(huán)(三個(gè)未知數(shù)即用三重、四個(gè)未知數(shù)即用四重循環(huán))DO循環(huán)c=0:x=0:y=0do while x<=240 第一重循環(huán),x的范圍是0至240 do while y<=100
31、第二重循環(huán),y的范圍是0至100n=5*x+12*y 通過(guò) x,y把所有的可能裝法情況列出來(lái) if n=1200 then 判斷是否符合要求(5*x+12*y=1200) print x,y 通過(guò)判斷把符合要求的裝法情況輸出 c=c+1 符合要求的裝法增加一次 end if y=y+1 y每次增加1直到100 loop 第二重循環(huán)結(jié)束 x=x+1 x每次增加1直到240loop 第一重循環(huán)結(jié)束FOR循環(huán)c=0for x=0 to 240 第一重循環(huán),x的范圍是0至240for y=0 to 100 第二重循環(huán),y的范圍是0至100n=5*x+12*y 通過(guò) x,y把所有的可
32、能裝法情況列出來(lái) if n=1200 then 判斷是否符合要求(5*x+12*y=1200) print x,y 通過(guò)判斷把符合要求的裝法情況輸出 c=c+1 符合要求的裝法增加一次 end ifnext y 第二重循環(huán)結(jié)束next x 第一重循環(huán)結(jié)束同樣在for循環(huán)中也不需要x=x+1、y=y+1,因?yàn)閒or循環(huán)x、y的值每次會(huì)自己增加步長(zhǎng),此處步長(zhǎng)省略沒(méi)寫(xiě),即表示步長(zhǎng)為1,所以x、y每次會(huì)自動(dòng)增加1。二、解析算法及程序?qū)崿F(xiàn)是指用解析的方法找出表示問(wèn)題的前提條件與所求結(jié)果之間關(guān)系的數(shù)學(xué)表達(dá)式,并通過(guò)表達(dá)式的計(jì)算來(lái)實(shí)現(xiàn)問(wèn)題求解。例:同學(xué)們?cè)跀?shù)學(xué)的應(yīng)用題中、物理、化學(xué)的計(jì)算題中通過(guò)理解題意得出
33、表達(dá)式,再通過(guò)計(jì)算得到答案,所使用的算法就是解析算法。解題方法:主要是要得出前提條件與所求結(jié)果之間關(guān)系的數(shù)學(xué)表達(dá)式,并且在程序中這個(gè)數(shù)學(xué)表達(dá)式必須符合VB格式。儲(chǔ)蓄問(wèn)題,不考慮復(fù)利,年利率2.8%,M元錢(qián)需存多少年,才能得到K元本息?設(shè)需要y年,根據(jù)題意得出的數(shù)學(xué)表達(dá)式為:y=,但是在VB中表達(dá)式必須符合VB語(yǔ)法:y=(k-m)/(0.028*m),流程圖及程序?qū)崿F(xiàn)略。三、冒泡排序算法及程序?qū)崿F(xiàn)冒泡排序的基本思想是把待排序的n個(gè)元素的數(shù)組看成是垂直堆放的一列數(shù)據(jù),從最下面的一個(gè)元素起,自下而上地比較相鄰的兩個(gè)元素中的數(shù)據(jù),將較小的數(shù)據(jù)換到上面的一個(gè)元素中。重復(fù)這一過(guò)程,直到處理完最后兩個(gè)元素中
34、的數(shù)據(jù),稱(chēng)為一遍加工(一趟冒泡)。當(dāng)?shù)谝槐榧庸ね瓿蓵r(shí),最小的數(shù)據(jù)已經(jīng)上升到第一個(gè)元素的位置。然后對(duì)余下的n-1個(gè)元素重復(fù)上述過(guò)程,直至最后進(jìn)行余下兩個(gè)數(shù)據(jù)的比較和交換。冒泡排序算法舉例 設(shè)有數(shù)列 65,13,76, 27,49第1趟比較第1次 65,13,76, 27,49不需要交換第1趟比較第2次 65,13,76, 27,4976,27交換第1趟比較第3次 65,13,27, 76,49不需要交換第1趟比較第4次 65,13,27, 76,4965,13交換第1趟結(jié)束:13,65,27,76,49 第1趟比較4次,交換2次第2趟比較第1次:1365,27,76,4976,49交換第2趟比較
35、第2次:1365,27,49,76不需要交換第2趟比較第3次:1365,27,49,7665,27交換第2趟結(jié)束:13,27,65,49,76 第2趟比較3次,交換2次第3趟比較第1次:13,2765,49,76不需要交換第3趟比較第2次:13,2765,49,7665,49交換第3趟結(jié)束:13,27,49c65,76 第3趟比較2次,交換1次第4趟比較第1次:13,27,4965,76不需要交換第4趟結(jié)束:13,27,49,65,76 第4趟比較1次,沒(méi)有交換5個(gè)元素的數(shù)據(jù)系列,一共冒泡了4趟,分別比較次數(shù)為4、3、2、1,交換次數(shù)根據(jù)實(shí)際情況確定。所以可以總結(jié)出,n個(gè)元素的數(shù)組系列通過(guò)冒泡
36、排序,需要經(jīng)過(guò)n-1趟冒泡,總的比較次數(shù)為:(n-1)+(n-2)+(n-3)+1=次。兩個(gè)元素中的數(shù)據(jù)交換一般需要通過(guò)第三個(gè)變量來(lái)進(jìn)行D(1)=5:D(2)=8交換的過(guò)程為:T=D(1)D(1)=D(2)D(2)=T流程圖:冒泡排序的程序?qū)崿F(xiàn):通過(guò)例子我們知道,5個(gè)元素的數(shù)據(jù)系列,一共冒泡了4趟,分別比較次數(shù)為4、3、2、1。所以在程序設(shè)計(jì)中,我們通過(guò)循環(huán)來(lái)進(jìn)行控制,需要兩重循環(huán),大循環(huán)控制冒泡了4趟:For i=1 to 4 Next i小循環(huán)控制每趟冒泡比較的次數(shù):For j=5 to i(i的值根據(jù)大循環(huán)分別為1到4)Next i所以小循環(huán)是在大循環(huán)里面的通過(guò)判斷if d(j)<
37、d(j-1)來(lái)控制是否需要交換程序主體部份如下:For i=1 to n-1 For j=n to I step -1 If d(j)<d(j-1) then T=d(j) D(j)=d(j-1) D(j-1)=t End if Next jNext i四、查找算法及程序?qū)崿F(xiàn)1順序查找順序查找的基本思想是從第一個(gè)數(shù)據(jù)開(kāi)始,按數(shù)據(jù)的順序逐個(gè)將數(shù)據(jù)與給定的值進(jìn)行比較,若某個(gè)數(shù)據(jù)和給定值相等,則查找成功,找到所查數(shù)據(jù)的位置;反之,查找不成功。流程圖: d(1)=65;d(2)=97;d(3)=76;d(4)=13;d(5)=27;d(6)=49;d(7)=58查找key=49程序?qū)崿F(xiàn):For i=1 to 7If d(i)=key then 輸出找到是第d(i)個(gè) Exit forEnd ifNext i2對(duì)分查找
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 心理咨詢師專(zhuān)業(yè)發(fā)展工作計(jì)劃
- 四川省遂寧高級(jí)實(shí)驗(yàn)學(xué)校2025屆數(shù)學(xué)八年級(jí)第一學(xué)期期末達(dá)標(biāo)測(cè)試試題含解析
- 喀什大學(xué)《普通話正音》2023-2024學(xué)年第一學(xué)期期末試卷
- 河北正定師范高等專(zhuān)科學(xué)?!毒坝^設(shè)計(jì)方法》2023-2024學(xué)年第一學(xué)期期末試卷
- 河南省南陽(yáng)市宛城區(qū)2024-2025學(xué)年八年級(jí)物理第一學(xué)期期末考試模擬試題含解析
- 新能源項(xiàng)目施工環(huán)保及“治污減霾”措施計(jì)劃
- 新版蘇教版四年級(jí)科學(xué)上冊(cè)課題研究計(jì)劃
- 區(qū)計(jì)劃生育年終工作總結(jié)
- 金融行業(yè)人事行政部2025年規(guī)劃計(jì)劃
- 2025年江西版新課標(biāo)小學(xué)一年級(jí)上冊(cè)美術(shù)教研計(jì)劃
- DB45∕T 1098-2024 橡膠瀝青路面施工技術(shù)規(guī)范
- 2025年沈陽(yáng)水務(wù)集團(tuán)招聘筆試沖刺題2025
- 《蠶絲》教學(xué)課件
- 浙江省麗水市普通高中2024-2025學(xué)年高二上學(xué)期期末教學(xué)質(zhì)量監(jiān)控日語(yǔ)試卷(PDF版含答案不含音頻和聽(tīng)力原文)
- 2025至2030電子海圖行業(yè)產(chǎn)業(yè)運(yùn)行態(tài)勢(shì)及投資規(guī)劃深度研究報(bào)告
- 東莞東華分班數(shù)學(xué)試卷
- 江西省金控科技產(chǎn)業(yè)集團(tuán)有限公司招聘筆試題庫(kù)2025
- 2025年湖北省中考英語(yǔ)試題(附答案)
- 2025中國(guó)系統(tǒng)性紅斑狼瘡診療指南解讀課件
- 成人重癥患者顱內(nèi)壓增高防控護(hù)理專(zhuān)家共識(shí)
- 2025年網(wǎng)絡(luò)安全與信息保護(hù)基礎(chǔ)知識(shí)考試題及答案
評(píng)論
0/150
提交評(píng)論