4-1節(jié)用解析法設(shè)計(jì)程序_第1頁(yè)
4-1節(jié)用解析法設(shè)計(jì)程序_第2頁(yè)
4-1節(jié)用解析法設(shè)計(jì)程序_第3頁(yè)
4-1節(jié)用解析法設(shè)計(jì)程序_第4頁(yè)
4-1節(jié)用解析法設(shè)計(jì)程序_第5頁(yè)
已閱讀5頁(yè),還剩18頁(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)介

1、4一1節(jié) 用解析法設(shè)計(jì)程序同學(xué)們,我想所有的同學(xué)都會(huì)測(cè)量物體和樓房的垂直高度,但如下的問(wèn)題會(huì)測(cè)量嗎?4.1. 1用解析法求解問(wèn)題的基本過(guò)程1、測(cè)量高度問(wèn)題的求解問(wèn)題:4. 1:如圖4一1所示,mn是豎直于地面的物體,其底部n不可到達(dá)。為了測(cè)量mn的高度, 在地面上選取一條與mn在同一平面的水平線線段ab為基線,測(cè)得ab的長(zhǎng)為a=20米,在a點(diǎn)向 m點(diǎn)張望的仰角a=38.4°,在b點(diǎn)向m點(diǎn)張望的仰角b=22. 8°。試設(shè)計(jì)程序計(jì)算高度mn。圖4 1(1)測(cè)量物體高度示意圖(1)分析問(wèn)題(以下內(nèi)容由老師正確引導(dǎo),學(xué)牛小組協(xié)作完成)我們不町能直接求出物體的高度。但我們可以利用所學(xué)

2、的知識(shí)(三角函數(shù))來(lái)完成該工作。在直角三角形anm屮可以得到:tana°=mn/an即:an=mn/ tan a0在直角三角形bnm屮可以得到:tan b°=mn/bn所以:ab = bn-an=mn/tan b°-mn/tan a0=mn (1/ tan b°-l/tan a0 )(2) 設(shè)計(jì)算法 設(shè)計(jì)輸入輸出界面,從三個(gè)文本框屮輸入棊線長(zhǎng)a ,仰角a°用alpha代替、"用bata代替 計(jì)算tan a°的倒數(shù)(用cota表示),即cota=l/tan (a0*3. 14159/180); 計(jì)算tan b°的倒數(shù)

3、(用cotb表示),即c0tb=l/tan (b°*3. 14159/180); 計(jì)算 a/(cotb-cota); 輸出結(jié)果(3) 編寫程序設(shè)計(jì)窗體如圖4 2tm基線長(zhǎng)a=仰角 a =仰角 p =計(jì)算iiiii, foral被測(cè)物高度二圖4 1 (2)測(cè)量高度問(wèn)題程序的窗口對(duì)象名屬性名屬性值功能labelllabe12名稱labe13標(biāo)簽的名稱標(biāo)簽label4基線長(zhǎng) a=仰角 a二caption仰角 3 =設(shè)置標(biāo)簽顯示的內(nèi)容被測(cè)物體高度二text 1 textbox文本框enabledtext2 textbox文本框的名稱text3 textboxtext4 textboxtext

4、全部設(shè)置成空設(shè)置text的值名稱command1命令按鈕的名稱按鈕caption計(jì)算設(shè)置命令按鈕顯示的內(nèi) 容表41 (1)對(duì)象屬性表參考程序41:private sub command1_click()a = vai (text 1. text)alpha = vai(text2. text)bata = vai (text3. text)pi = 3.14159265cota = 1 / tan(alpha * pi / 180)cotb = 1 / tan(bata * pi / 180)mn = a / (cotb - cota)text4. text = mnend sub(4) 調(diào)試

5、程序(運(yùn)行源程序)圖4一1 (3)參考程序41運(yùn)彳亍的結(jié)果(5) 檢驗(yàn)結(jié)果探究:在本問(wèn)題里,如果輸入的兩個(gè)仰角相等,或其屮一個(gè)仰角是90°,都會(huì)導(dǎo)致程序非正常結(jié)束。 如果,甚至?xí)馆敵龅慕Y(jié)果是負(fù)數(shù)!請(qǐng)討論一下使用者輸入數(shù)據(jù)時(shí)比較常見(jiàn)的錯(cuò)誤會(huì)冇哪些?我 們?cè)诔绦蝈梢栽鯓臃婪叮?、總結(jié)解析法的基本概念通過(guò)分析問(wèn)題屮各要素z間的關(guān)系,用最簡(jiǎn)練的語(yǔ)言或形式化的符號(hào)來(lái)表達(dá)它們的關(guān)系, 得岀解決問(wèn)題所需的表達(dá)式,然后設(shè)計(jì)程序求解問(wèn)題的方法稱為解析法。4.1.2用解析法求解問(wèn)題的實(shí)踐1、電阻計(jì)算問(wèn)題問(wèn)題:r2-ri = 2000qo工廠技術(shù)人員希望由這兩個(gè)分支并聯(lián)的電路的總電阻r分別取為1000

6、0、20000100000q.殳序嗎?(1) 分析問(wèn)題。(老師引導(dǎo),學(xué)牛完成)張軍是這樣想的:根據(jù)并聯(lián)電路電阻的計(jì)算公式,1/r=i/r1十1 /r2,以r2二r1 + 2000代入,即得:1/r=1/r1+1/(r1+2000)以r1為未知量、r為己知量,通過(guò)去分母整理可以得到關(guān)于r1的方程:r12+(2000一 2*r)*r1一 2000*r二0,解這個(gè)關(guān)于r1的二次方程即可解決問(wèn)題。(2) 設(shè)計(jì)算法。(老師引導(dǎo),學(xué)生完成)根據(jù)上述的分析,張軍寫出解決問(wèn)題的算法如下: 輸入總電阻r; 計(jì)算方程 r12+ (2000-2r) *r1 2000*r二0 的判別式二(2000-2*r) 2+80

7、00*r; 如果d20轉(zhuǎn),否則轉(zhuǎn); 計(jì)算出方程 r/+(20002*r)*r】一2000*r 二 0 的根 r,= (2*r-2000+sqr(d) /2, (r/= (2*r-2000+sqr(d) / 2肯定是增根,不必計(jì)算); 把r1和r1+2000在兩個(gè)文本框內(nèi)輸出,轉(zhuǎn); 輸出方程沒(méi)有解的信息“不可能”: 結(jié)束。(3) 編寫程序。用文本框輸入總電阻值,用兩個(gè)文本框分別輸出乩和&的值,用3個(gè)標(biāo)簽框?qū)@些文木框作說(shuō)明。另外設(shè)一個(gè)命令按鈕觸發(fā)程序執(zhí)行,如圖4-6所示。標(biāo)簽1命令按鈕標(biāo)簽2文本框1文木框3一 h5)電阻設(shè)計(jì)問(wèn)題的窗體設(shè)計(jì)圖表4一1(2)對(duì)象屬性表:生討論完成)對(duì)象名屬性

8、名屬性值功能labell名稱labe12標(biāo)簽的名稱標(biāo)簽labe13總電阻r二captionrl=設(shè)置標(biāo)簽顯示的內(nèi)容r2 二text 1 textbox文本框enabledtext2 textbox文本框的名稱text3 textboxtext全部設(shè)置成空設(shè)置text的值名稱command1命令按鈕的名稱按鈕caption計(jì)算設(shè)置命令按鈕顯示的內(nèi) 容(4) 調(diào)試程序圖4-1電阻計(jì)算問(wèn)題解答示總圖(5) 檢測(cè)結(jié)果小結(jié):用解析法求解問(wèn)題,有時(shí)需要根據(jù)問(wèn)題列出方程,用解方程的方法得到答案。例如:x'+x-2*x-9二0就沒(méi)有現(xiàn)成的求根公式可用,這時(shí)就需要用數(shù)值逼近的方法求解。復(fù)習(xí)解析法的概念:

9、通過(guò)分析問(wèn)題屮各要素z間的關(guān)系,用最簡(jiǎn)練的語(yǔ)言或形式化的符號(hào) 來(lái)表達(dá)它們的關(guān)系,得出解決問(wèn)題所需的表達(dá)式,然后設(shè)計(jì)程序求解問(wèn)題的方法稱為解析法。2、小球彈跳問(wèn)題問(wèn)題:4-3:小球從10米高處自由下落,每次彈起的高度是下落高度的70%。當(dāng)小球彈起的高度 不足原高度的千分之一時(shí),小球很快就會(huì)停止跳動(dòng)。計(jì)算小球在整個(gè)彈跳過(guò)程中所經(jīng)歷的總程(忽 略彈起高度不足原高度千分之一 的部分)。(1)分析問(wèn)題:(老師詳細(xì)分析整個(gè)運(yùn)動(dòng)過(guò)程,學(xué)生討論完成帶下劃線的部分內(nèi)容)八.八.八.iom=73vw*707=4.9 4.34.90.7=3.43vw*3.4310*0.7倂vw*10*0.7% 10*0.7% 10

10、*0.7a3vw*wxavw*圖4 1(7)小球運(yùn)動(dòng)分析圖根據(jù)上圖的第_種分析方法,請(qǐng)思考并歸納規(guī)律:小球每次彈起的距離就是本次下落距離的0. 7 倍,而毎一次下落距離等于上一次彈起的距離即:l = o. 7hhn*l= l1其中hn為第n次下落的距離,ln為第n次彈起的距離,n二1, 2, 3,,h產(chǎn)10。計(jì)算一直進(jìn)行到第皿次(lh./iooo ml <hi/1000> ,把它們都相加,即可求出問(wèn)題的解:s= (hi+li) + (h2+l2) + (h3+l3) 4卜(h+lm)(2) 設(shè)計(jì)算法 輸入小球開始高度home; h=homc; s = 0: 令 l=0. 7*11;

11、累加器:s = s + aa是一些變動(dòng)著的數(shù)據(jù),在a每次變動(dòng)之動(dòng)都 執(zhí)行一次此語(yǔ)句,那么所有由a取過(guò)的值都會(huì)加在 變量s±,所以這里的s被稱為累加器。h = l;特點(diǎn):如果home/1000則返回,(1)有一個(gè)變量在賦值號(hào)兩邊都出現(xiàn),這個(gè)否則下一步;變量就是累加器。輸出s的值;(2)這個(gè)語(yǔ)句要反復(fù)執(zhí)行才能起到累加器的 作用,所以通常是放在循環(huán)語(yǔ)句中結(jié)束。(2) 編寫程序(給出部分程序,讓學(xué)生補(bǔ)充完整)private sub command3 click()dim h as single, s as single, 1 as singlehome = vai (inputbox(/z請(qǐng)

12、輸入小球的開始高度(米):",10)h = homes = 0do1=0. 7*hs=s+h+lh二 1loop wh訂 e1二home/1000print zz小球移動(dòng)的總路程是:;s; 米end sub(運(yùn)行源程序)第二種分析方法(1)分析問(wèn)題注意到:笫一次下落是10米第一次彈起和第二次下落的距離都是第一次下落的:0. 7 倍第二次彈起和第三次下落的距離都是第一次下落的:0. 7*0. 7 倍第三次彈起和第四次下落的距離都是第一次下落的:0. 7*0. 7*0. 7 倍第i次彈起是第一次下落的:0.7"i 倍當(dāng)?shù)趇次彈起的高度不足原高度的干分之一時(shí),即0. 7 i>

13、;l/1000 時(shí),把它們都相加,即可求出問(wèn)題的解s二s+2 * h * 0. 7 " i(2)設(shè)計(jì)算法 輸入小球開始高度home; s二h® i-0 i 二 i + 1 s=s + 2*h*0. 7" i 如果0.7 " i >= 1 / 1000則返回,否則退出到 s=s-ii * 0. 7 " i 輸出s的值 結(jié)束(3)編寫程序private sub command1_click()dim home as singledim h as single, s as singlehome = vai (inputboxfi#輸入小球的開始

14、高度(米):”,10) h = homes=hi 二 i + 1 s 二 s + 2 * ii * 0. 7 " iloop while 0. 7 " i 二 1 / 1000s二s-h * 0. 7 " iprint 小球移動(dòng)的總路程是:;s; 米end sub(運(yùn)行源程序)(4)調(diào)試程序(略)方法歸納:用解析法求解問(wèn)題,并菲只是彖計(jì)算物體高度和電阻這樣一個(gè)解析式就可以 完事,很多時(shí)候還要根據(jù)問(wèn)題給出的條件,運(yùn)用歸納、演繹等邏輯方法,揭示問(wèn)題各要素之間的 關(guān)系,尋找表示這種關(guān)系的表達(dá)式,有時(shí)需要計(jì)算的解析式是一組而不僅僅是一條,需要使用合 適的結(jié)構(gòu)設(shè)計(jì)算法和編制

15、程序,求得問(wèn)題的答案。圖4一1(8)小球程序運(yùn)行結(jié)果圖(5)檢查結(jié)果(略)小結(jié):用解析法求解問(wèn)題,許多時(shí)候并非只是計(jì)算一個(gè)解析式就可以完事,還要根據(jù)問(wèn)題給出的已 知條件,運(yùn)用歸納、演繹等邏輯方法,揭示問(wèn)題各要素之間的關(guān)系,尋找表示這種關(guān)系的表達(dá)式, 有時(shí)需要計(jì)算一組解析式,需要使用合適的結(jié)構(gòu)設(shè)計(jì)算法和編制程序,求得問(wèn)題的答案。學(xué)生實(shí)踐與討論1x3x5x-x9992x4x6x-x 1000(1)計(jì)算下面表達(dá)式的值試用三種運(yùn)算方法計(jì)算此式的值,并上機(jī)調(diào)試,討論三種方法算出來(lái)的結(jié)果為什么不 同?第一方法:先求分子和分母的乘積,再用分子除以分母。private sub comitiand3_click

16、()s = 1v = 1for i = 1 to 999 step 2s二s*iv 二 v*(i+1)next iss = s / vtext 1.text = ssend sub結(jié)果分析: 分子分s和分“ v的結(jié)果均超出了取值范禺第二方法:14-24-44-64-8 10-1000x 3 x5x 7 x-x999private sub command2 click()n = 2s = 1dos二s/nn 二 n+2loop until n >= 1000dom 二 m+2s 二 s*l【lloop unt訂 m >二 999textl text = send sub結(jié)果分析:結(jié)果

17、為零,因?yàn)樽鐾甑谝淮吾墉h(huán)后s的結(jié)果已經(jīng)很小無(wú)限趨近零了第三方法:1=2x3 = 4x5 = 6xx999寧1000private sub command4_click ()s = 1eor i = 1 to 999 step 2 s 二 s*i/(i+l)next itextl text = sencl sub調(diào)試運(yùn)行可以得出正確答案。(2)設(shè)計(jì)通用倒計(jì)時(shí)程序要求:輸入日標(biāo)fi期,就可以算出日標(biāo)日期離當(dāng)天有多少天。分析問(wèn)題:vii提供“日期型(date) ”的數(shù)據(jù)類型,日期型數(shù)據(jù)表示方法和運(yùn)算方法如下: 在一對(duì)符號(hào)之間填入通??梢哉J(rèn)為fi期和時(shí)間的字符。如# jannuary 1,2000#1

18、 jan 2000#01/01/2000#2000-1-1 #注:在文木框輸入日期時(shí),不用輸“#” 口期型數(shù)據(jù)也可進(jìn)行運(yùn)算,方式有以下兒種兩個(gè)日期相減,得到兩個(gè)日期相隔的天數(shù)# 2007-6-7# # 2005-5-23# 2007-6-7# date(該函數(shù)表示當(dāng)天的日期)一個(gè)日期型數(shù)據(jù)加(減)一個(gè)表示天數(shù)的整數(shù),其結(jié)果是該整數(shù)值之后(之前)的日期。#2005-5-23#4-80 (-80)結(jié)果分別:#2005-8-11# 2005-3-4#算法設(shè)計(jì): 設(shè)計(jì)輸入輸出界面,在上面兩個(gè)文本輸入起始日期和目標(biāo)日期,在下面的文本和標(biāo)簽輸出兩者 還有多少天。表示起始口期,dd表示目標(biāo)口期。fuimj圖4 1(9)兩個(gè)fl期之間相差多少天的窗體設(shè)計(jì)圖標(biāo)簽計(jì)算相距口期:比如想了解現(xiàn)在離07年高考還有多少天?可用ss表示相距天數(shù),依據(jù)上 面分析,可得ss 二 #7/6/2007# date 輸出結(jié)果textl text二ss編寫程序:private sub command1 click()dim dd as dag dd as datedim ss as integeraa = text 1 textdd 二 text2. textss 二 val(dd - aa)text3

溫馨提示

  • 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)論