資源簡介 第1節 解析算法考試內容考試要求解析算法思想c解析算法程序實現c解析算法基本思想解析算法是指用解析的方法找出表示問題的前提條件與所求結果之間的關系的數學表達式,并通過表達式的計算來實現問題的求解。【典例1】 某停車場的收費標準是:3小時以內5元,超過3小時,每小時1.5元,不足一小時按一小時計算。解決這個問題最合適采用的算法是( )A.枚舉算法 B.解析算法 C.查找算法 D.排序算法解析 本題主要考查的是解析算法的基本思想。停車的時間是問題的前提條件,應付停車費用是所求的結果,兩者根據收費標準可列出相應的公式,這種解題方法符合解析算法的基本思想。答案 B【典例2】 BMI指數是用體重(kg)數除以身高(米)的平方得出的數字,即體質指數(BMI)=體重(kg)÷身高^2(m),是目前國際上常用的衡量人體胖瘦程度以及是否健康的一個標準。BMI指數與胖瘦程度如下表所示:BMI指數胖瘦程度BMI<18.5體重過輕18.5≤BMI≤23.9體重正常23.9體重過重27肥胖BMI>32非常肥胖小明編寫程序判斷胖瘦程度,程序運行時在文本框Text1輸入體重(kg),在文本框Text2輸入身高(cm),單擊“判斷”按鈕Command1后在標簽Label2上顯示結果。程序運行如圖所示。(1)要改變標簽Label1上“體重(kg)”的文字內容,應修改該對象的______屬性。(2)為實現上述功能,請在劃線處填入合適代碼。Private Sub Command1_Click() Dim m As Single Dim h As Single Dim bmi As Single m = Val(Text1.Text) h = Val(Text2.Text) __________①__________ If bmi < 18.5 ThenLabel2.Caption = “體重過輕!” __________②__________Label2.Caption = “體重正常!” ElseIf bmi <= 27 ThenLabel2.Caption = “體重過重!” ElseIf bmi <= 32 ThenLabel2.Caption = “肥胖!” ElseLabel2.Caption = “非常肥胖!” End IfEnd Sub解析 本題主要考查解析算法的基本思想及程序實現。(1)在標簽Label1上顯示內容要更改,需要修改其Caption屬性。(2)①根據題意BMI指數是用體重(kg)數除以身高(米)的平方得出的數字得出第一空答案為bmi = m / (h / 100) ^ 2。②結合題目中的BMI指數與胖瘦程度表格得出第二空答案為ElseIf bmi <= 23.9 Then。答案 (1)Caption (2)①bmi = m / (h / 100) ^ 2 ②ElseIf bmi <= 23.9 Then【典例3】 下列VB程序的功能是:在文本框Text1中輸入十制數x,單擊“轉換”按鈕,在文本框Text2上顯示該十進制對應的十六進制數。程序運行界面如圖所示。(1)要使命令按鈕Command1顯示的文本改為“十進制轉換為十六進制”,可在其屬性窗口中將________屬性的屬性值修改為“十進制轉換為十六進制”。(2)在文本框Text1中輸入79,在文本框Text2中輸出的值是________。(3)請在程序的劃線處填寫合適的代碼。 Private Sub Command1_Click() Dim n As Integer, r As Integer, s As String Const k=“0123456789ABCDEF” ________①________s = “ ” Do While n>0r=n mod 16∶n=n16bs = ________②________ Loop Text2.text=sEnd Sub解析 本題主要考查解析算法的基本思想及程序實現。(1)按鈕上顯示的內容是按鈕的Caption屬性值。(2)十進制轉換成十六進制:除以16取余數,余數倒序相排。(3)首先將Text1中的內容取出并轉化成數值賦值給n,所以①處的答案是:n = Val(Text1.Text) 。在Do循環中,將n轉換成十六進制數。r是n除以16得到的余數,如果r是10,對應的十六進制數是A,如果r是11,對應的十六進制數是B,……,即字符串k中的第r+1位字符。將余數拼接到字符串的前面,所以②處的答案是: Mid(k, r + 1, 1) + s。答案 (1)Caption (2)4F (3)①n = Val(Text1.Text) ②Mid(k, r + 1, 1) + s【典例4】 某種編碼以4位二進制碼為一組,每組前兩位表示方向,后兩位表示距離。編寫一個程序,將編碼翻譯成方向和距離,距離值為每組編碼后兩位二進制碼轉換為十進制數的值。具體功能如下:在 文本框Text1中輸入連續多組編碼,單擊“翻譯”按鈕Commandl,結果顯示在列表框List1中。程序運行界面如圖所示。(1)要使程序運行時,文本框Text1的Width屬性值為2018,可在Form_Load事件過程中添加語句________(單選,填字母:A. Width=2018 / B.Text1.Width = 2018 / C. Width. Text1=2018)。(2)實現上述功能的VB程序如下,請在劃線處填入合適的代碼。Private Sub Command1_Click()Dim s As String, c As String, d As StringDim n As Integer, b1 As Integer, b2 As Integer, v As Integer, i As Integers = Text1.Text: n = Len(s): i = 1Do While i <= nc = Mid(s, i, 2)If c = “00” Thend = “東”ElseIf c = “01” Thend = “南”ElseIf c = “10” Thend = “西”Elsed = “北”End Ifb1 = Val(Mid(s, i + 2, 1))b2 = Val(Mid(s, i + 3, 1))v=____①____List1.AddItem d + “ ” + Str(v)②____LoopEnd Sub(3)若文本框Text1中輸入的內容為“1111”,單擊“翻譯”按鈕,列表框List1中顯示的內容是________。解析 (1)文本框Text1的Width屬性值為2018,根據“對象名.屬性名”=屬性值,答案選B。(2)①變量d存儲方向信息,變量b1、b2存儲距離的二進制值,變量v存儲距離的十進制值,為了實現二進制轉換成十進制,表達式是b1*2+b2。②每組數據為4位,步長是4,故答案是i = i + 4(3)前兩位“11”表示方向是北,后兩位“11”為距離,轉換成十進制數是3,因此,答案是北 3。答案 (1)B (2)①b1*2+b2 ②i = i + 4(3)北 3【方法總結】 運用解析算法分析問題,尋找問題的各要素間的聯系,并用數學表達式表示它們的關系。1.某地區公共自行車收費信息如下:“60分鐘內免費;60分鐘以上至120分鐘(含),收費1元;120分鐘以上至180分鐘(含),收費2元;租用超過180分鐘(含)以上的時間,按每小時3元計費(不足一小時的按一小時計)”。現按要求編寫VB程序,界面如圖1所示,程序功能如下:在文本框Text1中輸入租車時間,單擊“計費”按鈕Command1,在標簽Label5中輸出對應的租車費用。圖1 圖2 圖3(1)在應用程序界面設計時,為添加“計費”按鈕,應使用圖2所示的“控件工具箱”中的________(請填寫相應編號),并在圖3所示的“屬性窗口”中,將________屬性值設置為“計費”。(2)請根據題意將下列程序補充完整。Private Sub Command1_Click() Dim zysj As Single, zyfy As Single ′zysj:租用時間,zyfy:租用費用 ________①________ If zysj <= 60 Thenzyfy = 0 ElseIf zysj <= 120 Thenzyfy = 1 ElseIf zysj <= 180 Thenzyfy = 2 ElseIf zysj Mod 60 = 0 Thenzyfy = ________②______ Elsezyfy = (Int((zysj - 180) / 60) + 1) * 3 + 2 End If Label5.Caption = Str(zyfy)End Sub解析 本題主要考查解析算法的基本思想及程序實現。(1)題圖2中①是列表框,②是文本框,③是水平滾動條,④是按鈕,⑤是驅動器列表框,所以答案為④。按鈕上顯示的內容是按鈕的Caption屬性值。(2)①將文本框Text1中的內容取出轉換成數值并賦值給zysj,所以答案是:zysj = Val(Text1.Text)。② ElseIf zysj Mod 60 = 0表示租用超過180分鐘(含)以上,并且租用時間是整個小時,超過的時間=收費按每小時3元計算,因此,答案為zyfy = (zysj - 180) / 60 * 3 + 2。答案 (1)④ Caption (2)①zysj = Val(Text1.Text) ②(zysj-180) / 60 * 3 +22.編寫VB程序,實現如下功能:在文本框Text1中輸入包含數字、字母的字符串,點擊“統計”按鈕Command1,統計該字符串中字母字符的個數,并在標簽Label1中輸出結果,界面如圖a所示。(1)在設計界面時,應使用圖b所示“控件工具箱”中的 ________(填寫響應編號)添加“統計”按鈕。(2)為實現上述功能,請在劃線處填入合適代碼。Private Sub Command1_Click() Dim i As Integer, n As Integer, num As Integer,s As String,c As String s=Text1.Text:num=0 n= ________①________ i=1 Do While i<=n ________②________ If c>=“a” And c<=“z” Or c >=“A” And c<=“Z” Then ________③________ End If i=i+1 ________④________ Label1.Caption=Str(num) End Sub解析 本題主要考查解析算法的基本思想及程序實現。(1)題圖b中①是圖片框,②是標簽,③是文本框,④是按鈕,所以答案為4。(2)本程序需要對字符串中的每個字符進行逐個判斷,所以循環的次數和字符串的長度有關,所以得出①空答案為:Len(s) 。當i=1時取出字符串中的第1個字符,當i=2時取出字符串中的第2個字符……所以②空為取出第i個字符并存儲在變量c中,所以答案為;c=Mid(s,i,1)。塊IF語句判斷是否是字母,如果是大寫字母或小寫字母,num累加1所以 ③空答案為num=num+1。分析程序結構得出④空答案為Loop。答案 (1)4 (2)①Len(s) ②c=Mid(s,i,1)③num=num+1 ④Loop3.編寫VB程序,實現如下功能:單擊“啟動”按鈕Command1,在列表框List1內每隔2秒輸出一個由30個大、小寫字母組合成的字符串,運行界面如圖所示,程序代碼如下(字母A和字母a的ASCII碼值分別為65、97)。(1)該程序除窗體外使用了________(填數字)個對象。(2)為實現上述功能,請在劃線處填入合適的代碼。Private Sub Command1_Click() Timer1.Enabled = ______①______ ′Timer1控件的Timer事件是否有效End SubPrivate Sub Timer1_Timer() Dim s As String, c As String Dim a As Integer, e As Integer, h As Integer Randomize s = “ ” For a = 1 To 30e = Int(Rnd() * 52 + 1)If e <= 26 Then h = e + 64Else h =______②______ End Ifc = ______③______ s = s + c Next a List1.AddItem sEnd Sub(3)為了減緩字符串的出現速度,可將Timer1的Interval屬性值__________ (選填,填字母:A.增大/B.減小)。解析 本題主要考查解析算法的基本思想及程序實現。(1)圖中使用了1個窗體對象、1個標簽對象、1個列表框對象、1個時鐘對象、1個按鈕對象,除了窗體還有4個對象。(注意:時鐘對象不會在窗體中顯示出來。)(2)①點擊“啟動”按鈕,設置timer.Enabled屬性為True讓timer控件起作用。②在For循環中,隨機產生一個在[1,52]之間的隨機整數并賦值給e,如果e在[1,26]之間,表示產生的是大寫字母,h表示產生的大寫字母的ASCII碼,否則產生的是小寫字母,轉換成相對應的ASCII碼是:e + 70,所以第②空的答案是:e + 70。第③是將相對應的ASCII碼轉換成字符,故答案是:Chr(h)。(3)Timer的Interval屬性值越大,時間間隔越大。答案 (1)4 (2)①True ②e + 70 ③Chr(h) (3)A基礎鞏固1.現要求編寫VB程序實現如下功能:在文本框Text1中輸入正整數n(n為奇數),單擊“生成”按鈕,在文本框Text2中會顯示一個有規律的對稱數字串,形式為“1 3 …… n-2 n n-2 3 1”。例如n=9時,顯示的數字串為“1 3 5 7 9 7 5 3 1”。(1)根據代碼可知,命令按鈕“生成”的對象名是________。(2)實現上述功能的VB程序如下,請在劃線處填入合適的代碼。Private Sub Com1_Click() Dim n As Integer, i As Integer, s As String __________①________ s = “ ” For i=1 to nIf i<=n2 +1 then s=s+Str(2*i-1)Else s=s+ ______②______End If Next i ________③________End Sub解析 本題主要考查解析算法的基本思想及程序實現。(1)代碼中第一行“Com1_Click”是事件驅動過程,“Com1”是對象名,“Click”是事件名。(2)①變量n是正整數,其值通過文本框Text1輸入,答案是n=Val(Text1.Text) 。②在For循環中,前半部分數字串依次遞增2,后半部分依次遞減2,Else解決的是后半部分數據的計算,s為字符串數據類型,故答案是Str(2*(n-i)+1)。③最終的結果存儲在變量s中,并通過Text2輸出,故答案是Text2.Text=s。答案 (1)Com1 (2)①n=Val(Text1.Text)②Str(2*(n-i)+1) ③Text2.Text=s2.小明用VB程序編寫了一個密碼生成器,單擊“生成密碼”按鈕生成一個8位數的密碼,該密碼必須同時包含數字、大寫字母和小寫字母,并在文本框Text1中顯示。程序界面如下圖所示。(1)在設計程序界面時,要將文本框Text1中的內容清空,應修改該文本框的 __________ 屬性。(2)實現上述功能的VB程序如下,請在劃線處填入合適代碼。Private Sub Command1_Click() Const n = 8 Dim s As String Dim a As Integer, i As Integer Dim x As Boolean, y As Boolean, z As Boolean x = False:y = False:z = False Randomize Do While ______①______s = “ ”For i = 1 To na = Int(Rnd() * 62) + 1If a <= 10 Then x = True s = s + Chr(a + Asc(“0”) - 1)ElseIf a <= 36 Then y = True s = s + Chr(a + Asc(“A”) - 11)Else z = True ______②______End If Next iLoopText1.Text =______③______End Sub解析 本題主要考查解析算法的基本思想及程序實現。(1)文本框里的內容是文本框Text屬性的屬性值。(2)①Do循環用來判斷產生的密碼是否符合要求,如果不符合要求,要繼續重新生成,直到符合要求為止。故答案是:x = False Or y = False Or z = False。②在For循環中,a表示產生[1,62]之間的隨機整數,如果a在[1,10]之間,表示產生一個數字字符,如果a在[11,36]之間,表示產生一個大寫字符,若在[37,62]之間,表示產生的是小寫字符,轉換成相對應的小寫字符為:Chr(a + Asc(“a”) - 37),再將產生的字符拼接在s中,故答案是:s=s+Chr(a + Asc(“a”) - 37)。③將產生的密碼s顯示在Text1中。答案 (1)Text (2)①x = False Or y = False Or z = False或Not x Or Not y Or Not z ②s=s+Chr(a + Asc(“a”) - 37) ③s能力提升3.小李編寫VB程序,實現如下功能:在文本框Text1中輸入十六進制數,如A2.4,單擊“轉換”按鈕Command1,在標簽Label2輸出該十六進制對應的十進制數,運行界面如圖所示。(1)為了實現上述功能,請在劃線處填入合適的代碼,使程序正常運行。Private Sub Command1_Click() Dim i As Integer, n As Integer, m As Integer,y As Integer Dim x As String, s As Single,r As String x=Text1.Text:s=0 ______①______ For i=1 to nIf Mid(x,i,1)=“.” Then Exit For Next i m=i ′小數點位置 For i =1 to nr=Mid(x,i,1)If r>=“0” And r<=“9” Then y=Val(r)If r>=“A” And r<=“F” Then y=____②____If iIf i>m then s=s+y*16^(m-i) ′小數部分 Next i Label2.Caption=“對應的十進制數為:”+Str(s)+“D” End Sub(2)在文本框Text1中輸入A.8,則在文本框Text2中輸出的結果是 ________。解析 本題主要考查解析算法的基本思想及程序實現。(1)①獲取字符串x的長度并賦值給n,故答案是n=Len(x)。②第一個For循環是尋找小數點的位置,第二個For循環是進制轉換,在第二個If語句中,需把“A”-“F”的值轉化成對應的數值“10”-“16”,故答案是Asc(r)-55或Asc(r)-Asc(“A”)+10。③把遍歷取值r乘以相對應的權值并累加到s中。(2)A.8=10×160+8×16-1=10.5,因此答案是10.5D。答案 (1)①n=Len(x) ②Asc(r)-55或Asc(r)-Asc(“A”)+10 ③s*16+y或s+y*16^(m-i-1) (2)10.5D4.某數字加密算法描述如下:將某位數字與其位置相加得到num,num除以11的余數即為編號,若余數為0編號為11,從密碼表中找出與編號對應的加密字符完成加密。密碼表如下:編號1234567891011加密字符VisualBASIC小明按照上述方法,設計了一個數字加密的VB程序,功能如下:單擊“加密”按鈕Command1,程序依次將文本框Text1中每個數字進行加密,并將加密后的密文在文本框Text2中輸出。下表顯示了數字“2018”的加密過程:數字2018位置1234編號3241加密字符siuV程序運行效果如圖所示。(1)設計如圖所示的程序界面,至少要使用________類(填數字)。(2)實現上述功能的VB程序如下,請在劃線處填入合適代碼。 Private Sub Command1_Click() Dim s As String, s1 As String, s2 As String, num As Integer s = “VisualBASIC” s1 = Text1.Text s2=“ ” i = 1 Do While ____①____ num = Val(Mid(s1, i, 1)) + i num = num Mod 11 If num = 0 Then num = 11 s2 =____②____ i = i + 1 Loop Text2.Text = s2 End Sub(3)若密文是“uAV”,則明文是________ 。解析 (1)在圖中,有窗體類、標簽類、按鈕類、文本框類4個類。(2)①While后面跟循環條件,循環的次數和Text1中的內容有關,所以答案是:i<=len(s1)。②s2為密文, num用來計算編號,從密碼表中找出與編號對應的加密字符,再拼接到字符串s中,故答案是:s2+Mid(s,num,1)。(3)若密文是“uAV”,則對應的編號是“481”,“4”是第1位,“4”對應的明文是“3”;“8”是第2位,“8”對應的明文是“6”;“1”是第3位,“1”對應的明文是“9”。答案 (1)4 (2)①i<=len(s1) ②s2+Mid(s,num,1) (3)369或“369”課件20張PPT。第1節 解析算法解析算法基本思想解析算法是指用解析的方法找出表示問題的前提條件與所求結果之間的關系的數學表達式,并通過表達式的計算來實現問題的求解。【典例1】 某停車場的收費標準是:3小時以內5元,超過3小時,每小時1.5元,不足一小時按一小時計算。解決這個問題最合適采用的算法是( ) A.枚舉算法 B.解析算法 C.查找算法 D.排序算法 解析 本題主要考查的是解析算法的基本思想。停車的時間是問題的前提條件,應付停車費用是所求的結果,兩者根據收費標準可列出相應的公式,這種解題方法符合解析算法的基本思想。 答案 B【典例2】 BMI指數是用體重(kg)數除以身高(米)的平方得出的數字,即體質指數(BMI)=體重(kg)÷身高^2(m),是目前國際上常用的衡量人體胖瘦程度以及是否健康的一個標準。BMI指數與胖瘦程度如下表所示:小明編寫程序判斷胖瘦程度,程序運行時在文本框Text1輸入體重(kg),在文本框Text2輸入身高(cm),單擊“判斷”按鈕Command1后在標簽Label2上顯示結果。程序運行如圖所示。(1)要改變標簽Label1上“體重(kg)”的文字內容,應修改該對象的______屬性。(2)為實現上述功能,請在劃線處填入合適代碼。Private Sub Command1_Click() Dim m As Single Dim h As Single Dim bmi As Single m = Val(Text1.Text) h = Val(Text2.Text) __________①__________ If bmi < 18.5 Then Label2.Caption = “體重過輕!”__________②__________ Label2.Caption = “體重正常!”ElseIf bmi <= 27 Then Label2.Caption = “體重過重!”ElseIf bmi <= 32 Then Label2.Caption = “肥胖!”Else Label2.Caption = “非常肥胖!” End IfEnd Sub解析 本題主要考查解析算法的基本思想及程序實現。(1)在標簽Label1上顯示內容要更改,需要修改其Caption屬性。(2)①根據題意BMI指數是用體重(kg)數除以身高(米)的平方得出的數字得出第一空答案為bmi = m / (h / 100) ^ 2。②結合題目中的BMI指數與胖瘦程度表格得出第二空答案為ElseIf bmi <= 23.9 Then。答案 (1)Caption (2)①bmi = m / (h / 100) ^ 2 ②ElseIf bmi <= 23.9 Then【典例3】 下列VB程序的功能是:在文本框Text1中輸入十制數x,單擊“轉換”按鈕,在文本框Text2上顯示該十進制對應的十六進制數。程序運行界面如圖所示。(1)要使命令按鈕Command1顯示的文本改為“十進制轉換為十六進制”,可在其屬性窗口中將________屬性的屬性值修改為“十進制轉換為十六進制”。(2)在文本框Text1中輸入79,在文本框Text2中輸出的值是________。(3)請在程序的劃線處填寫合適的代碼。 Private Sub Command1_Click() Dim n As Integer, r As Integer, s As String Const k=“0123456789ABCDEF” ________①________ s = “ ” Do While n>0 r=n mod 16∶n=n16b s = ________②________ Loop Text2.text=sEnd Sub解析 本題主要考查解析算法的基本思想及程序實現。(1)按鈕上顯示的內容是按鈕的Caption屬性值。(2)十進制轉換成十六進制:除以16取余數,余數倒序相排。(3)首先將Text1中的內容取出并轉化成數值賦值給n,所以①處的答案是:n = Val(Text1.Text) 。在Do循環中,將n轉換成十六進制數。r是n除以16得到的余數,如果r是10,對應的十六進制數是A,如果r是11,對應的十六進制數是B,……,即字符串k中的第r+1位字符。將余數拼接到字符串的前面,所以②處的答案是: Mid(k, r + 1, 1) + s。答案 (1)Caption (2)4F (3)①n = Val(Text1.Text) ②Mid(k, r + 1, 1) + s【典例4】 某種編碼以4位二進制碼為一組,每組前兩位表示方向,后兩位表示距離。編寫一個程序,將編碼翻譯成方向和距離,距離值為每組編碼后兩位二進制碼轉換為十進制數的值。具體功能如下:在 文本框Text1中輸入連續多組編碼,單擊“翻譯”按鈕Commandl,結果顯示在列表框List1中。程序運行界面如圖所示。(1)要使程序運行時,文本框Text1的Width屬性值為2018,可在Form_Load事件過程中添加語句________(單選,填字母:A. Width=2018 / B.Text1.Width = 2018 / C. Width. Text1=2018)。(2)實現上述功能的VB程序如下,請在劃線處填入合適的代碼。Private Sub Command1_Click()Dim s As String, c As String, d As StringDim n As Integer, b1 As Integer, b2 As Integer, v As Integer, i As Integers = Text1.Text: n = Len(s): i = 1Do While i <= n c = Mid(s, i, 2) If c = “00” Then d = “東”ElseIf c = “01” Then d = “南”ElseIf c = “10” Then d = “西”Else d = “北”End Ifb1 = Val(Mid(s, i + 2, 1))b2 = Val(Mid(s, i + 3, 1))v=____①____List1.AddItem d + “ ” + Str(v)____②____LoopEnd Sub(3)若文本框Text1中輸入的內容為“1111”,單擊“翻譯”按鈕,列表框List1中顯示的內容是________。解析 (1)文本框Text1的Width屬性值為2018,根據“對象名.屬性名”=屬性值,答案選B。(2)①變量d存儲方向信息,變量b1、b2存儲距離的二進制值,變量v存儲距離的十進制值,為了實現二進制轉換成十進制,表達式是b1*2+b2。②每組數據為4位,步長是4,故答案是i = i + 4(3)前兩位“11”表示方向是北,后兩位“11”為距離,轉換成十進制數是3,因此,答案是北 3。答案 (1)B (2)①b1*2+b2 ②i = i + 4 (3)北 3【方法總結】 運用解析算法分析問題,尋找問題的各要素間的聯系,并用數學表達式表示它們的關系。 展開更多...... 收起↑ 資源列表 第1節 解析算法.doc 第四單元第1節 解析算法.pptx 縮略圖、資源來源于二一教育資源庫