《VB程序設計》PPT課件.ppt

上傳人:w****2 文檔編號:16539770 上傳時間:2020-10-10 格式:PPT 頁數(shù):57 大?。?89KB
收藏 版權申訴 舉報 下載
《VB程序設計》PPT課件.ppt_第1頁
第1頁 / 共57頁
《VB程序設計》PPT課件.ppt_第2頁
第2頁 / 共57頁
《VB程序設計》PPT課件.ppt_第3頁
第3頁 / 共57頁

下載文檔到電腦,查找使用更方便

14.9 積分

下載資源

還剩頁未讀,繼續(xù)閱讀

資源描述:

《《VB程序設計》PPT課件.ppt》由會員分享,可在線閱讀,更多相關《《VB程序設計》PPT課件.ppt(57頁珍藏版)》請在裝配圖網(wǎng)上搜索。

1、Visual Basic 程序設計教程 內蒙古科技大學實踐訓練中心 第五章 VB控制結構 5.1 算法及其描述 5.1.1 算法的概念 算法: 是解決問題的有序步驟。每一步驟都必須是確定的、可行的, 且不論何種情況,在經過有限步驟后,算法一定能結束。 1、算法的特征 例如:求 N!,其算法可描述如下: 步驟 1:輸入 N的值; 步驟 2:設兩個變量 R、 I, I為大于等于零的整數(shù), R I!。令 I 0, R 1 步驟 3: I=I+1, R=R*I 步驟 4:判斷 I

2、三步驟,否則向下執(zhí)行 步驟 5:輸出 R,即 N! 5.1 算法及其描述 1、算法的特征 算法的有窮 性 算法的確定性 算法的有效性 有零個或多個輸入 至少有一個輸出 5.1 算法及其描述 2、算法的描述 自然語言:自然語言存在著文字冗長、有二義性,表達不確切等缺點; 流程圖: 起止框 數(shù)據(jù)框 處理框 判斷框 流程線 N-S圖:是流程圖的發(fā)展,去掉了流程圖的流程線,全部算法都表示在 一個矩形框內。 5.1 算法及其描述 2、算法的描述 開始 輸入 N I 0 R 1 I

3、 Y N 輸入 N I=0 R=1 I=I+1 R=R*I I

4、一組操作再返 回到條件判斷,決定是否繼續(xù)循環(huán);若不成立,跳過這組操作,執(zhí)行此結構后面 的操作。 條件 循環(huán)體 Y N 條件 循環(huán)體 5.1 算法及其描述 5.1.2 三種基本控制語句 3、循環(huán)結構 直到循環(huán): 首先執(zhí)行一遍要循環(huán)的操作,然后判斷條件是否成立,若成 立,則返回到這組操作的開始,重復執(zhí)行這組操作;若不成立,執(zhí)行此結構以后 的操作。 條件 循環(huán)體 Y N 條件 循環(huán)體 5.2 選擇結構 5.2.1 單行結構條件語句 格式: If Then Else 功能:如果 “ 條件 ” 成立 (其值為 True)或為非 0值,則執(zhí)行 “ 語句 1”

5、,否則 執(zhí)行 “ 語句 2”。 其中: “ 條件 ” 通常是關系表達式或邏輯表達式; “ 語句 1”和 “ 語句 2”可為簡單語句,也可為用冒號分割的復合語句; 若省略 ”Else”,則 If語句簡化為: If Then 條件 語句 (序列 ) 下一條語句 False True 條件 語句 1 語句 2 下一條語句 True False 5.2 選擇結構 5.2.1 單行結構條件語句 例 【 5-1】 輸入三個數(shù),輸出其中最大值 。 解題思路 :設臵一個變量 max,將第一個數(shù)賦給 max,然后依次和第二個、第三個數(shù)比較,將每

6、次 比較的大的數(shù)賦給 max。 開始 輸入 a,b,c max=a bmax max=b cmax 輸出 max False True False True max=c Dim a As Single, b As Single Dim c As Single, max As Single a = Val(InputBox(輸入第一個數(shù): )) b = Val(InputBox(輸入第二個數(shù): )) c = Val(InputBox(輸入第三個數(shù): )) max = a If b max Then max = b If c max Then max = c Font

7、Size = 12 Print Print a; 、 ; b; 、 ; c; 中最大數(shù)是: ; max 5.2 選擇結構 5.2.1 單行結構條件語句 例 5-2編程求函數(shù) sgn(x)的值 。 解題思路 :根據(jù)題意: x0, sgn=1 x=0, sgn=0 x 0 Then Print 1 Else If X = 0 Then Print 0 Else Print -1 5.2 選擇結構 5.2.2 塊結構條件語句 格式 : If Then Elseif Then

8、 Elseif Then Else End If 條件語句中的 “ 條件 ” 不但可以是邏輯表達 式 或關系表達式,還可以是數(shù)值表達式; ”語句塊 “ 中的語句不能與 “ Then”在同一行 上,否則 VB認為是一個單行結構的條件語句; 當省略 Elseif子句和 Else子句時,塊結構就 簡化為: If Then End If 5.2 選擇結構 5.2.2 塊結構條件語句 條件 1 條件 2 條件 n 1 語句塊 n 語句塊 1 下一條語句 語

9、句塊 2 語句塊 n 1 False False False True True True 5.2 選擇結構 5.2.2 塊結構條件語句 例 【 5-3】 輸入系數(shù) a, b, c,求二次方程: ax2+bx+c=0 的實根 。 d0 d 0 X1=(-b+ )/(2*a) X2=(-b- )/(2*a) False False True True 開始 輸入 a, b, c d=b*b 4*a*c d d 輸出 x1, x2 x= b/2a 無實根 輸出 x 結束 5.2 選擇結構 5.2.2 塊結構條件語句 例 【 5-5】 輸設計一個程序,從鍵盤

10、輸入學生的分數(shù),統(tǒng)計其中及格的人數(shù)以 及總平均數(shù)。 解題思路 : 在窗體上建立三個文本框,用于顯示人數(shù)、成績的及格人數(shù)和總平 均數(shù),并分別編寫相應的命令。 5.2 選擇結構 5.2.3 多分支語句 格式: Select Case Case Case Case Else End Select 先對 “ 測試表達式 ” 求值,而后順序測試 與哪一個 Case子句中的 “ 表達式

11、表列 ” 相匹 配,找到就執(zhí)行該分支的 “ 語句塊 ” ,而后 退出該分支;,否則就執(zhí)行 “ Case Else”分支 的語句塊,然后,執(zhí)行 “ End Select”后面的 語句; “ 測試表達式 ” 可以是數(shù)值表達式或字符 串表達式,通常為變量或常量; 每個 Case子句中的語句塊可以是一行或多 行 VB語句; “ 表達式表列 ” 中的表達式必須與測試表 達式的類型相同 ; 5.2 選擇結構 5.2.3 多分支語句 使用舉例: 若變量 x的值為 1、 3、 5、 7,則 Select Case語句使用如下: Select case x cas

12、e 1 表示當 x 1時應執(zhí)行的語句 .. case 3 表示當 x 3時應執(zhí)行的語句 case 5 表示當 x 5時應執(zhí)行的語句 case else 表示當 x 1、 3、 5(即 x 7)時應執(zhí)行的語句 End select 5.2 選擇結構 5.2.3 多分支語句 ”表達式表列 “ 稱為域值,可以是下列形式之一: , 當 “ 測試表達式 ” 的值與其中之一相同時目就執(zhí)行該 Case子句中的語 句

13、 塊; 例: Case 2, 4, 6, 8, 10 to 當 ” 測試表達式 “ 的值落在表達式 1和表達式 2之間時(包含表達式 1 和 表達式 2的值),執(zhí)行該 Case子句的語句塊。 書寫時,把小值寫在前 面 例: Case 2 to 10 Is 當 ” 測試表達式 “ 的值滿足 ” 關系表達式 “ 指定條件時,執(zhí)行該 Case子句 的語句塊。 例: Case Is18*a ”測試表達式 “ 的值大于 18*a的值 Case Is 5 ”測試表達式 “ 的值等于 5

14、 Case Is5, 1 to 2 ”測試表達式 “ 的值 大于 5或 在 1 2之間 5.2 選擇結構 5.2.3 情況語句 例 【 5-6】 從鍵盤上輸入學生成績,然后在文件框中顯示其等級(按 5級計 分制輸出不及格、及格、中等、良好、優(yōu)秀) 解題思路 :利用 inputbox輸入成績,根據(jù)其百分制成績轉換為 5級制成績; 0 59:不及格; 60 69:及格; 70 79:中等; 80 89:良好; 90 100:優(yōu)秀; 5.2 選擇結構 5.2.3 情況語句 例 【 5-7】 商店售貨,按購買貨物的款數(shù)給予不同的優(yōu)惠

15、折扣,,編程計 算購貨款數(shù)。 解題思路 :利用 inputbox輸入 “ 應付款 ” ,根據(jù)其值,折算為 “ 實付款 ” ; 購貨不足 250元,無折扣; 購貨滿 250元,不足 500元,減價 5; 購貨滿 500元,不足 1000元,減價 7.5; 購貨滿 1000元,不足 2000元,減價 10; 購貨滿 2000元,減價 15; 5.2 選擇結構 5.2.4 IIf函數(shù)和 Choose函數(shù) 1、 IIf函數(shù) IIf函數(shù)用于執(zhí)行簡單判斷及相應處理。 格式: IIf(條件, True部分, Fals

16、e部分 ) 功能:當 “ 條件 ” 為真時,返回 True部分的值為函數(shù)值,當 “ 條件 ” 為假 時,返回 False部分的值為函數(shù)的值; 說明: ” 條件 “ 是邏輯表達式或關系表達式; ” True部分 “ 或 ” False部分 “ 是表達式; ” True部分 “ 和 ”False部分 ” 的返回值類型必須與結果變量類型一 致; IIf函數(shù)與 If Then Else的執(zhí)行機制類似; 5.2 選擇結構 5.2.4 IIf函數(shù) IfThenElse IIf函數(shù) If x=0 The

17、n y=0 Else y=1/x y=iif(x=0, 0, 1/x) d=b*b 4*a*c If d=0 Then Print “此方程有解 ” Else Print “此方程無實解 ” End If d=b*b 4*a*c Print IIf(d=0,”此方程有解 ”,”此方程無實 解” ) 5.2 選擇結構 2、 Choose函數(shù) Choose函數(shù)可以替代 Select Case語句,適用于簡單的多重判斷場合; 格式: Choose(變量,值為 1的返回值,值為 2的返回值 值為 n的返回值 ) 功能:當變量的值為 1時,函數(shù)值為 “ 值為 1的返

18、回值 ” ,依此類推,當變 量 的值為 n時,函數(shù)值為 “ 值為 n的返回值 ” 。 說明: 變量的類型為數(shù)值型; 當變量的值是在 1 n的非整數(shù)時系統(tǒng)自動取整; 若變量的值不在 1 n之間,則 Choose函數(shù)的值為 Null; 例: op=Choose(Nop, ”+”, ” ”, ”*”, ” ”) 則當: Nop 1時, op ”+”; Nop 2時 , op ” ”,依此類推。 5.2 選擇結構 5.2.5 嵌套的選擇結構 例 【 5-4】 輸入系數(shù) a, b, c,問能否構成三角形的 3邊;若能,

19、則求此三 角形的面積 解題思路 : a, b, c構成三角形的 3邊,必須俱備以下條件: a, b, c均為正數(shù) 即 a0 and b0 and c0; a, b, c中任意兩數(shù)之和大于第三個數(shù) 即 a+bc and a+cb and b+ca ; (3)三角形的面積公式 : p=(a+b+c)/2 s = Sqr(p * (p - a) * (p - b) * (p - c)) 5.2 選擇結構 5.2.5 嵌套的選擇結構 例 【 5-4_1】 設計一個登錄界面,并對輸入的用戶名和密碼進行

20、驗證。 假 設用戶名為: root,密碼為: “ abc123”。 解題思路 :窗體上畫兩個文本框,用于輸入用戶名和密碼,以及兩個命令按 鈕,若用戶輸入用戶名或密碼錯誤,則提示錯誤以及剩下登錄的次數(shù)。 If Text1.Text root or Text2.Text abc123 Then i = i + 1 If i < 5 Then MsgBox 錯誤!你還有 ” !=; k 5.3 循環(huán)結構 例 【 5-9】 輸入一個班的學生成績,統(tǒng)計其中的及格人數(shù),并計算出全班的 平均分。學生人數(shù)不定,輸入負數(shù)就截止,設全班人數(shù)不超過 50人。 解題思路 :利用 Fo

21、r Next循環(huán)、 inputbox輸入成績,若輸入成績小于零,則 退出循環(huán),在循環(huán)內求出累計總成績,以及及格人數(shù)。 5.3 循環(huán)結構 例 【 5-10】 求 1 1/2+1/3+1/4+ +1/n。 該題通項為 ai=1/i ,求 。 解題思路 :首先利用 textbox或 inputbox輸入 n的值,在 For Next循環(huán)內利 用累加,求出每個單項的值,以及總和。 ni ia1 Dim n As Integer, i As Integer n為項數(shù), i為循環(huán)變量 Dim sum As Single, a As Single sum為和, a為 1/i

22、 sum = 0 n = Val(Text1.Text) For i = 1 To n a = 1 / i sum = sum + a Next Print n; 項的和為: ; sum 5.3 循環(huán)結構 5.3.2 While Wend循環(huán) While又稱當循環(huán),根據(jù)某一條件進行判斷,決定是否執(zhí)行循環(huán)。 格式: While 條件 循環(huán)體 Wend 開始 計算“條件”值 條件為“真”? 循環(huán)體 結束 Y N 功能: 當給定的條件為真時,執(zhí)行循環(huán)體 ; 說明: While循環(huán)語句首先對 “ 條件 ” 進行測試,

23、然后決定是否執(zhí)行循環(huán)體; 若 “ 條件 ” 總是成立,則不停地執(zhí)行循環(huán) 體,構成 “ 死循環(huán) ” 。 當循環(huán)可以嵌套,不允許交叉; 5.3 循環(huán)結構 5.3.2 While Wend循環(huán) 例 【 5-11】 小紅今年 12歲,她父親比她大 30歲,編程計算出她的父親在幾年 后比她年齡大一倍。 解題思路 : 利用 While循環(huán)語句,循環(huán)的條件時 “ 小紅的年齡 *2父親的年齡 ”, 在循環(huán)體中,小紅的年齡累加 1,直到 ” 小紅的年齡 *2父親的年齡 “ 時,退出 While循環(huán)。 另:本題也可使用 For Next循環(huán)語句解答 。 Dim

24、age As Integer age = 12 While age * 2 age + 30 age = age + 1 Wend Print 經過 ; age - 12; 年,小紅父女的年齡分別是: ; age + 30; age 5.3 循環(huán)結構 5.3.3 DO Loop循環(huán) 格式 1: Do While | Until Exit Do Loop 格式 2: Do Exit Do Loop While | Until 功能: 當循環(huán) “ 條件 ” 為真( While

25、條件)或直到指定的循環(huán)結束 “ 條件 ” 為 真之前 (Until條件 )重復執(zhí)行循環(huán)體。 5.3 循環(huán)結構 說明: While是當條件為 True時執(zhí)行循環(huán),而 Until則是在條件變?yōu)?True之前重復 當只有 Do和 Loop關鍵字時,格式簡化為: Do Exit Do Loop 此時,要使循環(huán)正常結束,循環(huán)體內應有 Exit Do語句。 在格式 1中, While和 Until放在循環(huán)的開頭是先判斷條件,再決定是否執(zhí)行 循環(huán)體; 在格式 2中, While和 Until放在循環(huán)的尾部,是先執(zhí)行循

26、環(huán)再判斷條件,以 決定是重復循環(huán)還是終止循環(huán)。 5.3 循環(huán)結構 例如 : 求 1 100的自然數(shù)之和 。 n=1:sum=0 Do While n100 sum=sum+n n=n+1 Loop Print “Sum=“;Sum n=1:sum=0 Do sum=sum+n n=n+1 Loop While n100 Print “Sum=“;Sum 5.3 循環(huán)結構 例 【 5-12】 編寫程序,對任意輸入的正數(shù) n(n 3)判斷其是否是素數(shù) 。 解題思路 ; 素數(shù):除了 1和

27、自身外,不能被任何數(shù)整除的數(shù)。用數(shù) n依次去除 2 n 1間的各個數(shù),只要都除不盡,即為素數(shù)。 Dim n As Integer, i As Integer, k As Integer rem n為判斷的正數(shù) , i為循環(huán)變量 n = Val(InputBox(請輸入一個正數(shù): )) i = 2: k = Int(n / 2) Do While i k Then Print n; 是素數(shù) ; Else Print n; 不是素數(shù) 5.3 循環(huán)結構 例 【 5-13】 輸入兩個正整數(shù),求它們的最大公約數(shù) 。 解題思路 :求最大公約數(shù)的方法為 “ 輾轉相除法 ” ;如 24和 1

28、6 14和 26的最大公約數(shù)為 2 0 2 12 2 12 14 二 12 14 26 一 14和 26 24和 16的最大公約數(shù)為 8 0 8 16 二 8 16 24 一 24和 16 結論 余數(shù) r 除數(shù) n 被除數(shù) m 步驟 原數(shù) 注:程序中無比要將 m臵為最大的值, n為最小的數(shù)。 Do r = m Mod n 求被除數(shù)、除數(shù)的余數(shù) m = n 將除數(shù)賦予被除數(shù) n = r 將余數(shù)賦予除數(shù) Loop Until r = 0 5.3 循環(huán)結構 5.3.4 多重循

29、環(huán) 在一個循環(huán)結構的循環(huán)體系內含有另一個循環(huán)結構,稱為循環(huán)嵌套,又稱多 重循環(huán),處于內部的循環(huán)為內循環(huán),處于外部的循環(huán)為外循環(huán)。 例 【 5-15】 用臺勞公式求解 Sinx的近似解 ; x, n由鍵盤輸入。 )!12(....!7!5!31 121753 )1( n xSi n x xxxx nn 解題思路 :需要用兩層循環(huán)。外層循環(huán)控制計算的項數(shù),內層循環(huán)具體計算每 一個項的值,而后進行計算結果的累加。 5.3 循環(huán)結構 5.3.4 多重循環(huán) 例 【 5-16】 編寫程序,輸出 100 200間的所有素數(shù)。 解題思路 :需要設臵兩層循環(huán),其中外層循環(huán)負責控制

30、取值范圍,即 100 200; 內層循環(huán)具體判斷每一個數(shù)是否為素數(shù)。 number為輸出計數(shù)器, x為輸出的素數(shù), i, k為循環(huán)變量 Dim number As Integer, x As Integer, i As Integer, k As Integer number = 0 For x = 100 To 200 i = 2: k = Int(x / 2) Do While i k Then number = number + 1 If number Mod 5 = 0 Then Print x Else Print x, 每 5個素

31、數(shù)為一行 End If Next 5.4 常用算法與數(shù)據(jù)結構一 5.4.1 累加、連乘 累加:就是在原有和的基礎上再加一個數(shù),并重復該操作; 連乘:在原有積的基礎上再乘以一個數(shù),并重復該操作; 例如 : 求 100以內的自然數(shù)之和。其中 sum為累加和變量, i為循環(huán)控制變量 求 10以內的偶數(shù)連乘之乘積 ; Private Sub Command1_Click() sum=0 For i=1 to 100 sum=sum+i Next Print sum End Sub Private Sub

32、 Command1_Click() p=1 For i=2 to 10 Step 2 p=p*i Next Print p End Sub 5.4 常用算法與數(shù)據(jù)結構一 5.4.2 定位輸出 例 【 5-17】 編寫程序,打印出如下的乘積表 * 3 6 9 12 15 45 90 135 180 16 48 96 144 192 17 51 102 153 204 18 54 108 162 216

33、 19 57 114 171 228 20 60 120 180 240 解題思路 :第一行可看為標題,具體計算可從第二行開始:需要設臵兩層循 環(huán), 外層循環(huán)負責控制行數(shù)或向內層循環(huán)傳輸每列的第一個值,內層循環(huán)具 體計算每列的第一個值同 3、 6、 9、 12的乘積,并顯示出來。 5.4 常用算法與數(shù)據(jù)結構一 5.4.2 定位輸出 例 【 5-19_1】 編寫程序,打印出如下圖形 * * * * * * * * * * * * * * * * * * * * * * * *

34、 * * * * * * * * * * * * * * * * 思路一:采用單層循環(huán),每一行顯示的 tab值(列的坐標)應依次遞加。 思路二:采用二重循環(huán),外層循環(huán)控制行數(shù)和打印位臵,內層循環(huán)具體顯示每 一行的 *。 5.4 常用算法與數(shù)據(jù)結構一 5.4.2 定位輸出 例 【 5-19_2】 編寫程序,打印出如下圖形 * *** ***** ******* ********* 解題思路 :采用二重循環(huán),外層循環(huán)控制行數(shù)和打印位臵,內層循環(huán)具

35、體顯示 每一行的 *;每行顯示 *的個數(shù)與所在行數(shù)的關系為:個數(shù) 2*行數(shù) 1;每行顯 示的 tab值(列的坐標)依次遞減; Dim i, j As Integer For i = 1 To 5 控制顯示的行數(shù) Print Tab(15 - 2 * i); 每行顯示的列的起始位置 For j = 1 To 2 * i - 1 每行顯示的 *的個數(shù) Print * ; Next Print Next 5.4 常用算法與數(shù)據(jù)結構一 例 【 5-19】 編寫程序,打印出如下數(shù)的金字塔 1

36、 1 2 1 1 2 3 2 1 1 2 3 4 3 2 1 . 1 2 3 4 5 6 7 8 9 8 7 6 5 4 3 2 1 思路:采用二重循環(huán),外循環(huán)控制行數(shù)和打印位臵,內循環(huán)實際為 2個并列循 環(huán),分別控制打印一行的前半部和后半部。 5.4 常用算法與數(shù)據(jù)結構一 5.4.3 窮舉法 根據(jù)提出的問題,列舉所有可能的情況,并用問題中給定的條件檢驗那些是 需要的,哪些是不需要的。 例 【 5-20】 算經 中出了一道題: “ 雞翁一,值錢五;雞母一,值錢

37、三; 雞雛三,值錢一。百錢買百雞,問雞翁、母、雛各幾何? ” 解題思路 :設 x, y, z分別為雞翁、雞母、雞雛的數(shù),則有: 5*x+3*y+z/3=100(元 ) x+y+z=100(只 ) 則按 x取值 0 100, y取值: 0 100,依次取值,直到滿足上式即可; Dim x, y, z As Integer FontSize = 14 Print cock, hen, chick For x = 0 To 100 For y = 0 To 100 z = 100 - x - y If 5 * x + 3 * y +

38、z / 3 = 100 Then Print x, y, z Next Next 5.4 常用算法與數(shù)據(jù)結構一 5.4.3 窮舉法 例 【 5-25】 將一張 1元鈔票分成一分、二分和五分硬幣,每種至少 8枚,問 有多少種方案? 解題思路 :每種硬幣至少 8枚,則 1分最多有 44枚( 100 2*8 5*8) /1, 2 分硬幣最多有 26枚, 5分硬幣最多有 15枚。 則 1分幣取值: 8 44, 2分幣取值: 8 26, 5分幣取值: 8 15, 各依次取值,直到滿足: 1分幣總值 2分幣總值 5分幣總值 100分 5

39、.4 常用算法與數(shù)據(jù)結構一 5.4.4 遞推法 又稱迭代法,就是把一個復雜的計算過程轉化為簡單過程的多次重復。每次 重復都在舊值的基礎上遞推出新值,并由新值代替舊值。 例 【 5-14】 求方程 f(x)=x3 2x 5=0在區(qū)域 1.5,2.5上的一個實根。要求按四 舍五入的方式精確到小數(shù)點后第二位。 解:本題采用牛頓迭代法: xn+1=xn f(xn)/f(xn). f(x1)=f(x1)/(x1-x2)為曲線 f(x)在 x x1點處的切線斜率 ,因此,若給出 x1和 f(x),先找到 f(x1),通過 f(x1)作切 線求出 x2: x2=x1 f(x1)/f(x1)

40、, x2為上訴切線與 x軸的 交點。求出 x2后,再找出 f(x2),通過 f(x2)作切線,與 x軸 交與 x3, f(x2)是通過 f(x2)的切線斜率 ,如此求下去, 直至接近方程真正的根。 f(x) f(x1) x1 x2 x3 f(x2) 5.4 常用算法與數(shù)據(jù)結構一 5.4.4 遞推法 例 【 5-14】 求方程 f(x)=x3 2x 5=0在區(qū)域 1.5,2.5上的一個實根。要求按四 舍五入的方式精確到小數(shù)點后第二位 。 已知: f(x)=x3 2x 5,則 f(x)=3x2 2; 用 f代表 f(x), f1代表 f(x),給出 x的初值,賦給 x1, 用

41、xn+1=xn f(xn)/f(xn)式 求出 x2(程序中用 x表示),再將新求出的 x2(程序中的 x)作為下一次迭代時的 x1, 再去求新的 x2。 f(x) f(x1) x1 x2 x3 f(x2) 5.4 常用算法與數(shù)據(jù)結構一 5.4.4 遞推法 例 【 5-26】 有一個數(shù)列,第一個數(shù)為 2,第二個是為 3,第三個是前兩個數(shù) 之和,以后每個數(shù)都是前兩個數(shù)之和,要求輸出該數(shù)列的前 N項 。 解題思路 :可先把前兩個數(shù)分別賦給變量 A和 B中,再計算 C A B;再將上一 輪 B的值移到 A中,將上一輪的 C的值移到 B中,再計算 C=A+B,得到的就是第四個 數(shù);

42、 再 B的值移到 A中, C的值移到 B中,計算 C=A+B,得到的就是第五個數(shù) 以此 循環(huán),以此循環(huán),就可得到第 N個數(shù); A B C 2 3 5 3 5 8 5 8 13 .. C=A+B --5=2+3 第一輪 A=3: B=5 --將上一輪的 B賦給 A、 C賦給 B 5.6 綜合應用舉例 例 【 5-21】 求整數(shù) 351 432之間既不能被 3整除又不能被 8整除的數(shù)的個數(shù)及這 些數(shù)的和。

43、解題思路 :不能被 3整除: n mod 30;不能被 8整除: n mod 80 Dim i As Integer, n As Integer, sum As Long For i = 351 To 432 If (i Mod 3) 0 And (i Mod 8) 0 Then n = n + 1 sum = sum + i End If Next FontSize = 14 Print 數(shù)的個數(shù): ; n Print 數(shù)的和是: ; sum 5.6 綜合應用舉例 例 【 5-22】 在 200,900范圍內同時滿足以下兩個條件的十進

44、制數(shù): ( 1)其個位數(shù)與十位數(shù)之和除以 10所得的余數(shù)是百位數(shù); ( 2)該數(shù)是素數(shù); 問有多少個這樣的數(shù)? 解題思路 :設臵兩層循環(huán),外層循環(huán)控制取值范圍: 200 900,并取其個位數(shù)、 十位數(shù)及百位數(shù)加以計算; 如一個三位數(shù)為 abc,則其各位數(shù) c=(abc mod 10); 十位數(shù) b=(abc mod 100) 10; 百位數(shù) a=abc 100 ; 內層循環(huán)具體判斷每個數(shù)是否為素數(shù); 5.6 綜合應用舉例 例 【 5-23】 求 100 200之間有奇數(shù)個不同因子的數(shù)有幾個? 解題思路 : n的因子是指能被 n整除的非零正整數(shù),如 6

45、的因子有: 1, 2, 3, 6. 本題采用二層循環(huán),外循環(huán)從 100到 200循環(huán),內循環(huán)計算每一個數(shù)的因子個數(shù) ; 再在外循環(huán)判斷是否有奇數(shù)個不同的因子。 Dim i As Integer, j As Integer, k As Integer Dim number As Integer number = 0 統(tǒng)計有奇數(shù)個因子的數(shù)的個數(shù) For i = 100 To 200 k = 0 For j = 1 To i If (i Mod j = 0) Then k = k + 1 計算 i的因子

46、 Next If (k Mod 2 0) Then number = number + 1 統(tǒng)計有奇數(shù)個因子 Next Print 有奇數(shù)個不同的因子的數(shù)有: ; number; 個 5.6 綜合應用舉例 例 【 5-24】 已知 24有 8個因子,而 24個正好被 8整除,求 100 300之間有多少個 能被其因子數(shù)目整除的數(shù)。 解題思路 :首先統(tǒng)計每個數(shù)的因子數(shù),而后判斷這個數(shù)能否被因子數(shù)整除; 需要設臵兩層循環(huán),外層循環(huán)控制取值范圍: 100 300;內層循環(huán)具體計 算每個數(shù)的因子數(shù),而后判斷這個數(shù)能否被其因子數(shù)整除。 Dim i, j, k,

47、 number As Integer number = 0 For i = 100 To 300 k = 0 For j = 1 To i If (i Mod j = 0) Then k = k + 1 統(tǒng)計因子數(shù) Next If (i Mod k = 0) Then number = number + 1 統(tǒng)計能被因子數(shù)整除的數(shù)的個數(shù) Print I End If Next Print 能被其因子數(shù)整除的數(shù)的個數(shù)為: ; number; 個 5.6 綜合應用舉例 例 【 5-2

48、7】 猴子吃桃子。有猴子第一天吃掉一半多一個,第二天吃掉剩下的一 半多一個, 如此,到第七天吃時,只剩下 1只桃子,問一共有多少只桃子? 解題思路 :設第 n天桃子數(shù)為 xn,前一天的桃子數(shù): xn 1,則有 xn=xn-1 ((xn-1)/2+1),即: xn-1=(xn 1)*2 ; 已知第七天只剩下 1只桃子,則可依據(jù)上式倒推到第六天剩下的桃子,以 及第五天剩下的桃子,直至第一天的桃子 。 Dim n as integer, i as integer x = 1 FontSize = 12 Print Tab(10); 第 7天桃子數(shù) :; x Print For i = 6 To 1 Step -1 x = (x + 1) * 2 Print Tab(10); 第 & I & 天桃子數(shù) & x & 只 Print Next

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

相關資源

更多
正為您匹配相似的精品文檔
關于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權所有   聯(lián)系電話:18123376007

備案號:ICP2024067431-1 川公網(wǎng)安備51140202000466號


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對上載內容本身不做任何修改或編輯。若文檔所含內容侵犯了您的版權或隱私,請立即通知裝配圖網(wǎng),我們立即給予刪除!