第一篇:VB程序設(shè)計(jì)的常用算法教案
VB程序設(shè)計(jì)的常用算法教案
算法(Algrith):計(jì)算機(jī)解題的基本思想方法和步驟。算法的描述:是對(duì)要解決一個(gè)問題或要完成一項(xiàng)任務(wù)所采 取的方法和步驟的描述,包括需要什么數(shù)據(jù)(輸入什么數(shù)據(jù)、輸出什么結(jié)果)、采用什么結(jié)構(gòu)、使用什么語句以及如何 安排這些語句等。通常使用自然語言、結(jié)構(gòu)化流程圖、偽代碼等來描述算法。
一、計(jì)數(shù)、求和、求階乘等簡(jiǎn)單算法
此類問題都要使用循環(huán),要注意根據(jù)問題確定循環(huán)變量的初值、終值或結(jié)束條,更要注意用來表示計(jì)數(shù)、和、階 乘的變量的初值。
例:用隨機(jī)函數(shù)產(chǎn)生100個(gè)[0,99]范圍內(nèi)的隨機(jī)整數(shù),統(tǒng)計(jì)個(gè)位上的數(shù)字分別為1,2,3,4,6,7,8,9,0的 數(shù)的個(gè)數(shù)并打印出來。
本題使用數(shù)組來處理,用數(shù)組a存放產(chǎn)生的確100個(gè)隨機(jī)整數(shù),數(shù)組x來存放個(gè)位上的數(shù)字分
別為1,2,3,4,6,7,8,9,0的數(shù)的個(gè)數(shù)。即個(gè)位是1的個(gè)數(shù)存放在x中,個(gè)位是2的個(gè)數(shù)存放在x中,…… 個(gè)位是0的個(gè)數(shù)存放在x。
將程序編寫在一個(gè)GetTput過程中,代碼如下: PubliSubGetTput
DiaAsInteger
DixAsInteger
DiiAsInteger,pAsInteger
'產(chǎn)生100個(gè)[0,99]范圍內(nèi)的隨機(jī)整數(shù),每行印出來
Fri=1T100
a=Int
Ifa<10Then
Fr1PrintSpae;a;
10個(gè)打
Else
Fr1PrintSpae;a;
EndIf
Ifid10=0ThenFr1Print
Nexti
'統(tǒng)計(jì)個(gè)位上的數(shù)字分別為1,2,3,4,6,7,8,9,0的數(shù)的個(gè)數(shù),并將統(tǒng)計(jì)結(jié)果保存在數(shù)組x,x,x中,將統(tǒng)計(jì)結(jié)果打印出來
Fri=1T100
p=a
d
0
'求個(gè)位上的數(shù)字
Ifp=0Thenp=10
x=x+1
Nexti
Fr1Print&qut;統(tǒng)計(jì)結(jié)果&qut;
Fri=1T10
p=i
Ifi=10Thenp=0 Fr1Print&qut;個(gè)位數(shù)為&qut;+Str+&qut;&qut;+Str)+&qut;個(gè)&qut;
Nexti EndSub
二、求兩個(gè)整數(shù)的最大公約數(shù)、最小公倍數(shù) 分析:求最大公約數(shù)的算法思想:
對(duì)于已知兩數(shù),n,使得>n;
共
除以n得余數(shù)r;
若r=0,則n為求得的最大公約數(shù),算法結(jié)束;否則執(zhí)行;
←n,n←r,再重復(fù)執(zhí)行。
例如:求=14,n=6的最大公約數(shù)
n
r
0 =inputBx n=inputBx n=n* If r=dn Dhile =n n=r r=dn Lp Print&qut;最大公約數(shù)=&qut;,n [1] [2] [3] [4] [] [6] [7] 下一頁 < VB08 1、打開“考生文件夾781”中的文件“test4.vbp”,完善Command1_Click事件代碼并保存。 實(shí)現(xiàn)功能:回文字符串是指一個(gè)字符串從左往右讀與從右往左讀是一樣的,如“ABCBA”,“123321”等等。輸入一個(gè)字符串,若是回文字符串,則輸出“Yes”,否則輸出“No”。使用文本框Text1輸入字符串,使用文本框Text2輸出結(jié)果。 Private Sub Command1_Click()Dim s As String Dim ok As String Dim i As Integer s = Text1.Text ok = “Yes” For i = 1 To ① If Mid(s, i, 1)<> ② Then ok = “No” Next i ③ End Sub ①len(s)2 ②Mid(s, len(s)+1-i, 1)③text2.text=ok 2、打開文件“考生文件夾606工程1.vbp”,完善Command1_Click事件代碼并保存。 實(shí)現(xiàn)功能:當(dāng)單擊“計(jì)算1+2+3+…+100”按鈕后,文本框Text1顯示1+2+3+…+100的值。 Private Sub Command1_Click()Dim s As Integer Dim i As Integer s = ① For i = 1 To ② s = ③ Next i Text1.Text = Str(④)End Sub ①0 ②100 ③s+i ④s 3、打開“考生文件夾779test2.vbp”,完善Command1_Click事件代碼并保存。 實(shí)現(xiàn)功能:輸入一個(gè)正整數(shù),計(jì)算并輸出它的各位數(shù)字之和。如輸入123,則輸出6。使用文本框Text1輸入正整數(shù),使用文本框Text2輸出計(jì)算結(jié)果。 Private Sub Command1_Click()Dim x As Integer Dim s As Integer x = Val(Text1.Text)① Do s = s + ② x = x 10 Loop Until x = 0 ③ End Sub ①s=0 ②x mod 10 ③text2.text=str(s) 4、打開文件“考生文件夾607工程1.vbp”,完善Command1_Click事件代碼并保存。 實(shí)現(xiàn)功能:當(dāng)單擊“顯示”按鈕后,隨機(jī)產(chǎn)生10個(gè)屬于區(qū)間[0,100)的自然數(shù),并保存于數(shù)組a中,然后在窗體上顯示這10個(gè)數(shù)及其平均值。(注:學(xué)生運(yùn)算結(jié)果有可能跟樣圖中數(shù)值不一致) Private Sub Command1_Click()Dim a(9)As Integer Dim s As Single Dim i As Integer Me.Cls s = 0 Randomize For i = 0 To ① a(i)= Int(Rnd * 100)Print a(i)Next i For i = 0 To 9 s = ② ③ Print “這10個(gè)自然數(shù)的平均值=”;s / 10 End Sub ①9 ②s+a(i)③next i 5、打開文件“考生文件夾609工程1.vbp”,完善Form_Click事件代碼并保存。 實(shí)現(xiàn)功能:?jiǎn)螕舸绑w時(shí)在窗體上打印下面所示的圖案。 **** *** ** * Private Sub Form_Click()Dim i As Integer Dim j As Integer For i = ① To 1 Step-1 For j = 1 To i ② Next j Print ③ End Sub ①4 ②print “*”;③next i 6、打開文件“考生文件夾610工程1.vbp”,完善Command1_Click事件代碼并保存。 實(shí)現(xiàn)功能:當(dāng)單擊“顯示”按鈕后,在窗體上顯示下面的圖形: @ @@ @@@ @@@@ @@@@@ @@@@@@ Private Sub Command1_Click()Dim i As Integer Dim j As Integer For i = 1 To 6 For j = 1 To ① Print ② Next ③ Print Next i End Sub ①i ②”@”;③j VB10 1、打開文件“考生文件夾178工程1.vbp”,完善Command1_Click事件及fac函數(shù)并保存。 實(shí)現(xiàn)功能:用遞歸法求3!+5!+7!的值,將結(jié)果輸出到窗體上。 Public Function fac(a As Integer)As Integer If a = 1 Then fac = ① Else fac = a * ②(a1)+ fib(n1)End If End Function Private Sub Command1_Click()Dim sum As Integer sum = s(③)Print “sum=”;sum End Sub ①1 ②n ③100 6、打開“考生文件夾776”中的文件“蝸牛爬竹.vbp”,完善Command1_Click事件代碼并保存。 實(shí)現(xiàn)功能:青竹高17米,蝸牛從青竹底端慢慢爬向頂端,晴天每天爬1.4米,雨天每天爬1.8米,若蝸牛爬到頂端用了11天,計(jì)算晴天、雨天各多少天?(晴天對(duì)應(yīng)文本框text1,雨天對(duì)應(yīng)文本框text2) Private Sub Command1_Click()Dim x As Single Dim y As Integer y =(171.4)① = 11-y Text1.Text = Str(②)+ “天” Text2.Text = Str(③)+ “天” End Sub ①x ②x ③y 第四課 學(xué)學(xué)程序設(shè)計(jì)—初步認(rèn)識(shí)編程軟件VB 教學(xué)目標(biāo): 知識(shí)目標(biāo):了解什么是程序設(shè)計(jì)語言和計(jì)算機(jī)程序以及語言的分類 過程與方法:培養(yǎng)學(xué)生的閱讀總結(jié)和自主探索能力 情感態(tài)度與價(jià)值觀:通過學(xué)生利用所學(xué)的知識(shí)解決實(shí)際問題,激 發(fā)學(xué)生的學(xué)習(xí)興趣 教學(xué)重難點(diǎn):了解什么是程序設(shè)計(jì)語言 啟發(fā)學(xué)生創(chuàng)新思維 以任務(wù)為驅(qū)動(dòng),激發(fā)學(xué)生創(chuàng)新思維 教法:講授法、任務(wù)驅(qū)動(dòng)法 教學(xué)過程: 一、導(dǎo)入新課 教師運(yùn)行游戲小程序,引起學(xué)生的興趣,并打開程序的原代碼說明編程并不很神秘。試運(yùn)行游戲小程序,激發(fā)學(xué)生的學(xué)習(xí)興趣。 二、教師講授: 程序設(shè)計(jì)語言 教師活動(dòng):語言是人類交流思想、溝通感情最重要的工具。那么語言不通的人如何交流呢? 學(xué)生活動(dòng):請(qǐng)一個(gè)語言翻譯或自己學(xué)會(huì)他人的語言 教師活動(dòng):計(jì)算機(jī)所做的事情均為人向機(jī)器下達(dá)的命令,那么操作作者又是通過什么語言同計(jì)算機(jī)進(jìn)行溝通的呢? 程序設(shè)計(jì)語言的分類及特點(diǎn) 1、機(jī)器語言 教師活動(dòng):①計(jì)算機(jī)能聽懂的語言(機(jī)器語言)②機(jī)器語言的實(shí)質(zhì)(二進(jìn)制語言)③二進(jìn)制語言的特點(diǎn)。強(qiáng)調(diào)計(jì)算機(jī)內(nèi)部只認(rèn)識(shí)二進(jìn)制 學(xué)生活動(dòng):談對(duì)二進(jìn)制語言的感受 教師小結(jié):機(jī)器語言的特點(diǎn)(二進(jìn)制、計(jì)算機(jī)直接能懂、難以理解,與人類語言差距較大)匯編語言-用助記符號(hào)表示面向機(jī)器的程序設(shè)計(jì)語言。使用匯編語言編寫的程序,機(jī)器不能直接識(shí)別,要由一種程雪匯編語言翻譯成機(jī)器語言。適合編寫直接控制機(jī)器操作的程序,不容易使用。高級(jí)語言-最接近人的自然語言,即簡(jiǎn)單易學(xué),它所編制的程序計(jì)算機(jī)執(zhí)行時(shí)需要“翻譯”,執(zhí)行速度比二進(jìn)制程序慢。三:展示微課視頻 VB簡(jiǎn)介、認(rèn)識(shí)VB窗口、相關(guān)概念: 1、對(duì)象的概念 2、屬性的概念 3、事件和代碼的概念。演示設(shè)計(jì)運(yùn)行程序“奔跑的小汽車”依照微課演示編寫程序“奔跑的小汽車” 四:學(xué)生體驗(yàn) 1、學(xué)生編寫程序“奔跑的小汽車”,教師巡回指導(dǎo)。 2、試修改程序,讓汽車倒車、速度變慢。 五、教學(xué)評(píng)價(jià): 1、教師點(diǎn)評(píng)教師通過巡視,把部分學(xué)生修改的結(jié)果進(jìn)行點(diǎn)評(píng),指出典型的錯(cuò)誤。 六、課后小結(jié): 這節(jié)課,我們體驗(yàn)了用VB設(shè)計(jì)程序,了解程序有關(guān)知識(shí)。(回顧本節(jié)知識(shí))希望同學(xué)們繼續(xù)努力。 第一課 初識(shí)算法與程序設(shè)計(jì) 一、教學(xué)目標(biāo) 1、知識(shí)與技能 (1)理解算法的概念,培養(yǎng)學(xué)生自我探索信息,高效獲取信息的能力; (2)能初步利用算法解決簡(jiǎn)單的問題,培養(yǎng)學(xué)生的理論聯(lián)系實(shí)際能力和動(dòng)手操作能力。 2、情感、態(tài)度、價(jià)值觀 學(xué)生在學(xué)習(xí)過程中,通過親身經(jīng)歷體驗(yàn)獲得對(duì)此算法的感性認(rèn)識(shí),培養(yǎng)學(xué)生自我獲取信息、分析評(píng)價(jià)信息、、表達(dá)呈現(xiàn)信息的能力,進(jìn)一步提高其信息素養(yǎng)。 二、教學(xué)重點(diǎn)難點(diǎn) 重點(diǎn):算法概念的理解 難點(diǎn):如何科學(xué)合理的選擇和設(shè)計(jì)算法。 三、教學(xué)策略與手段 以趣味性問題設(shè)置情境,激發(fā)學(xué)生探索解決問題的興趣,與學(xué)生進(jìn)行互動(dòng)探討,通過Flash演示材料,比較直觀地把抽象的問題簡(jiǎn)單化,使學(xué)生的思考逐步深入,從而總結(jié)出算法的概念,學(xué)會(huì)如何設(shè)計(jì)和選擇算法,培養(yǎng)學(xué)生自主探究學(xué)習(xí)的能力。 四、教學(xué)過程(1課時(shí)) (一)我們來共同尋找下面一些生活中比較現(xiàn)實(shí)的問題的解決方法。【問題一】天下真的有“不要錢的午餐”嗎? 某一餐館門口海報(bào)上寫著“不要錢的午餐”,規(guī)則如下:在三個(gè)月內(nèi),來賓必須湊夠五個(gè)人,五人每次來就餐必須按照不同的順序坐,直到把所有可能的順序都坐一遍,以后來吃飯就可永遠(yuǎn)免費(fèi)”。于是有人想,這太容易了,每人每次坐不同的位置,吃五次不就行了?于是他就叫上自己的朋友參加這項(xiàng)活動(dòng),可是,吃了十次之后,還沒有吃上免費(fèi)午餐,這是怎么回事呢? 學(xué)生們感覺非常有意思,很快以小組為單位進(jìn)行熱烈的討論并得出了破解問題的步驟:①第一個(gè)座位5個(gè)人都有坐的機(jī)會(huì)②第二個(gè)座位只有4個(gè)人中的任一個(gè)有坐的機(jī)會(huì)(一個(gè)人不能同時(shí)坐兩個(gè)座位)③第三個(gè)座位只有3個(gè)人中的任一個(gè)有坐的機(jī)會(huì)④第四個(gè)座位只有2個(gè)人中的任一個(gè)有坐的機(jī)會(huì)⑤第五個(gè)座位只有1個(gè)人有坐的機(jī)會(huì)⑥計(jì)算:5×4×3×2×1=120⑦得出結(jié)論:需要吃120次才有可能吃上免費(fèi)午餐。 【問題二】有三個(gè)和尚和三個(gè)妖怪過河,只有一條能裝下兩個(gè)人的船,在河的任何一方或者船上,如果妖怪的人數(shù)大于和尚的人數(shù),那么和尚就會(huì)有被吃掉的危險(xiǎn)。你能不能找出一種安全的渡河方法呢?請(qǐng)寫一寫你的渡河方案。學(xué)生:學(xué)生討論回答?!颊故静襟E〗 ①兩個(gè)妖怪先過河,一個(gè)妖怪回來; ②再兩個(gè)妖怪過河,一個(gè)妖怪回來; ③兩個(gè)和尚過河,一個(gè)妖怪和一個(gè)和尚回來; ④兩個(gè)和尚過河,一個(gè)妖怪回來; ⑤兩個(gè)妖怪過河,一個(gè)妖怪回來; ⑥兩個(gè)妖怪過河。 【Flash動(dòng)畫展示】通過討論和動(dòng)畫展示,我們可以知道,計(jì)算機(jī)解決問題和人解決問題一樣需要有清晰的解題步驟。算法就是解決問題的程序或步驟。 (二)【課件展示】算法的概念: 1、廣義的算法是指完成某項(xiàng)工作的方法和步驟,在我們?nèi)粘I钪幸步?jīng)常使用算法,只是沒意識(shí)到罷了。如:洗衣機(jī)的使用說明書是操作洗衣機(jī)的算法,菜譜是做菜的算法等等。 2、在數(shù)學(xué)中,現(xiàn)代意義的算法是指可以用計(jì)算機(jī)來解決的某一類問題的程序和步驟,這些程序或步驟必須是明確和有效的,而且能夠在有限步之內(nèi)完成。 【小試身手】按照這樣的理解,我們可以設(shè)計(jì)出很多由具體數(shù)學(xué)問題解決一類數(shù)學(xué)問題的算 法.下面看一個(gè)例子:(要求學(xué)生自己考慮并寫出具體的算法) 雞兔同籠問題。一個(gè)籠子里有雞和兔,現(xiàn)在只知道里面一共有17個(gè)頭,48只腳,雞和兔各有多少只?試設(shè)計(jì)一個(gè)求解的算法。 【設(shè)計(jì)意圖】求解雞兔的問題簡(jiǎn)單直觀,卻包含著深刻的算法思想。應(yīng)用解二元一次方程組的方法來求解雞兔同籠問題。 第一步:設(shè)有小雞x只,小兔y只,則有 第二步:將方程組中的第一個(gè)方程兩邊乘-2加到第二個(gè)方程中去,得到,得到y(tǒng)=7; 第三步:將y=7代入(1)得x=10。 【變一變】在籠中有雞、兔若干,已知有頭a個(gè),有腳b只,求各有多少只雞和兔。 【師生合作】老師帶領(lǐng)學(xué)生共同書寫規(guī)范的算法的具體步驟,最后引出算法使用的范圍:能解決一類問題,并且能重復(fù)使用。 (三)【課件展示】算法的基本特征 ①有窮性 ②確定性 ③不唯一性 ④有效性(邏輯性) 1、有窮性:一個(gè)算法應(yīng)該包含有限個(gè)操作步驟,而不能是無限的。 2、確定性:算法的每個(gè)步驟都應(yīng)該是明確無誤的,不能含義模糊,使執(zhí)行者無所適從。 3、有零個(gè)或者多個(gè)輸入,有一個(gè)或者多個(gè)輸出 4、有效性:算法中的每一步都應(yīng)該能有效地執(zhí)行,執(zhí)行算法最后應(yīng)該能得到確定的結(jié)果。 【教學(xué)總結(jié)】 1、本節(jié)課通過一些生活中看似簡(jiǎn)單問題的解決方法和步驟,使學(xué)生比較輕松的接受了生活算法的概念,進(jìn)一步理解了計(jì)算機(jī)算法的概念。 2、課堂教學(xué)的效益取決于學(xué)生對(duì)所學(xué)知識(shí)理解了多少,能否用所學(xué)知識(shí)來解決一些實(shí)際問題。本節(jié)課的設(shè)計(jì)突出講與練的結(jié)合,培養(yǎng)學(xué)生的動(dòng)手能力,并且引出學(xué)生對(duì)下一節(jié)課的內(nèi)容的思考,比較順利的完成了本節(jié)課的教學(xué)任務(wù)。 3、如何優(yōu)化算法,找到算法的形式和用算法解決問題的效益的最佳結(jié)合點(diǎn),還尚需探討。第二篇:算法與程序設(shè)計(jì)VB試題與答案08
第三篇:算法與程序設(shè)計(jì)VB試題與答案10
第四篇:公開課 VB程序設(shè)計(jì)教案
第五篇:算法與程序設(shè)計(jì)教案