2019-2020年人教版高中數(shù)學必修三教案:1-3 算法案例.doc
《2019-2020年人教版高中數(shù)學必修三教案:1-3 算法案例.doc》由會員分享,可在線閱讀,更多相關《2019-2020年人教版高中數(shù)學必修三教案:1-3 算法案例.doc(23頁珍藏版)》請在裝配圖網(wǎng)上搜索。
2019-2020年人教版高中數(shù)學必修三教案:1-3 算法案例 項目 內(nèi)容 課題 1.3 算法案例 (共 3 課時) 修改與創(chuàng)新 教學 目標 1.理解學習基本算法語句的意義. 2.學會循環(huán)語句的基本用法. 3.理解算法步驟、程序框圖和算法語句的關系,學會算法語句的寫法. 教學重、 難點 教學重點:循環(huán)語句的基本用法. 教學難點:循環(huán)語句的寫法. 教學 準備 多媒體課件 教學過程 第1課時 案例1 輾轉(zhuǎn)相除法與更相減損術(shù) 導入新課 (直接導入) 前面我們學習了算法步驟、程序框圖和算法語句.今天我們將通過輾轉(zhuǎn)相除法與更相減損術(shù)來進一步體會算法的思想. 推進新課 新知探究 提出問題 (1)怎樣用短除法求最大公約數(shù)? (2)怎樣用窮舉法(也叫枚舉法)求最大公約數(shù)? (3)怎樣用輾轉(zhuǎn)相除法求最大公約數(shù)? (4)怎樣用更相減損術(shù)求最大公約數(shù)? 討論結(jié)果: (1)短除法 求兩個正整數(shù)的最大公約數(shù)的步驟:先用兩個數(shù)公有的質(zhì)因數(shù)連續(xù)去除,一直除到所得的商是兩個互質(zhì)數(shù)為止,然后把所有的除數(shù)連乘起來. (2)窮舉法(也叫枚舉法) 窮舉法求兩個正整數(shù)的最大公約數(shù)的解題步驟:從兩個數(shù)中較小數(shù)開始由大到小列舉,直到找到公約數(shù)立即中斷列舉,得到的公約數(shù)便是最大公約數(shù). (3)輾轉(zhuǎn)相除法 輾轉(zhuǎn)相除法求兩個數(shù)的最大公約數(shù),其算法步驟可以描述如下: 第一步,給定兩個正整數(shù)m,n. 第二步,求余數(shù)r:計算m除以n,將所得余數(shù)存放到變量r中. 第三步,更新被除數(shù)和余數(shù):m=n,n=r. 第四步,判斷余數(shù)r是否為0.若余數(shù)為0,則輸出結(jié)果;否則轉(zhuǎn)向第二步繼續(xù)循環(huán)執(zhí)行. 如此循環(huán),直到得到結(jié)果為止. 這種算法是由歐幾里得在公元前300年左右首先提出的,因而又叫歐幾里得算法. (4)更相減損術(shù) 我國早期也有解決求最大公約數(shù)問題的算法,就是更相減損術(shù). 《九章算術(shù)》是中國古代的數(shù)學專著,其中的“更相減損術(shù)”也可以用來求兩個數(shù)的最大公約數(shù),即“可半者半之,不可半者,副置分母、子之數(shù),以少減多,更相減損,求其等也.以等數(shù)約之.”翻譯為現(xiàn)代語言如下: 第一步,任意給定兩個正整數(shù),判斷它們是否都是偶數(shù),若是,用2約簡;若不是,執(zhí)行第二步. 第二步,以較大的數(shù)減去較小的數(shù),接著把所得的差與較小的數(shù)比較,并以大數(shù)減小數(shù),繼續(xù)這個操作,直到所得的數(shù)相等為止,則這個數(shù)(等數(shù))或這個數(shù)與約簡的數(shù)的乘積就是所求的最大公約數(shù). 應用示例 例1 用輾轉(zhuǎn)相除法求8 251與6 105的最大公約數(shù),寫出算法分析,畫出程序框圖,寫出算法程序. 解:用兩數(shù)中較大的數(shù)除以較小的數(shù),求得商和余數(shù):8 251=6 1051+2 146. 由此可得,6 105與2 146的公約數(shù)也是8 251與6 105的公約數(shù),反過來,8 251與6 105的公約數(shù)也是6 105與2 146的公約數(shù),所以它們的最大公約數(shù)相等. 對6 105與2 146重復上述步驟:6 105=2 1462+1 813. 同理,2 146與1 813的最大公約數(shù)也是6 105與2 146的最大公約數(shù).繼續(xù)重復上述步驟: 2 146=1 8131+333, 1 813=3335+148, 333=1482+37, 148=374. 最后的除數(shù)37是148和37的最大公約數(shù),也就是8 251與6 105的最大公約數(shù). 這就是輾轉(zhuǎn)相除法.由除法的性質(zhì)可以知道,對于任意兩個正整數(shù),上述除法步驟總可以在有限步之后完成,從而總可以用輾轉(zhuǎn)相除法求出兩個正整數(shù)的最大公約數(shù). 算法分析:從上面的例子可以看出,輾轉(zhuǎn)相除法中包含重復操作的步驟,因此可以用循環(huán)結(jié)構(gòu)來構(gòu)造算法. 算法步驟如下: 第一步,給定兩個正整數(shù)m,n. 第二步,計算m除以n所得的余數(shù)為r. 第三步,m=n,n=r. 第四步,若r=0,則m,n的最大公約數(shù)等于m;否則,返回第二步. 程序框圖如下圖: 程序: INPUT m,n DO r=m MOD n m=n n=r LOOP UNTIL r=0 PRINT m END 點評:從教學實踐看,有些學生不能理解算法中的轉(zhuǎn)化過程,例如:求8 251與6 105的最大公約數(shù),為什么可以轉(zhuǎn)化為求6 105與2 146的公約數(shù).因為8 251=6 1051+2 146, 可以化為8 251-6 1051=2 164,所以公約數(shù)能夠整除等式兩邊的數(shù),即6 105與2 146的公約數(shù)也是8 251與6 105的公約數(shù). 變式訓練 你能用當型循環(huán)結(jié)構(gòu)構(gòu)造算法,求兩個正整數(shù)的最大公約數(shù)嗎?試畫出程序框圖和程序. 解:當型循環(huán)結(jié)構(gòu)的程序框圖如下圖: 程序: INPUT m,n r=1 WHILE r>0 r=m MOD n m=n n=r WEND PRINT m END 例2 用更相減損術(shù)求98與63的最大公約數(shù). 解:由于63不是偶數(shù),把98和63以大數(shù)減小數(shù),并輾轉(zhuǎn)相減,如下圖所示. 98-63=35 63-35=28 35-28=7 28-7=21 21-7=14 14-7=7 所以,98和63的最大公約數(shù)等于7. 點評:更相減損術(shù)與輾轉(zhuǎn)相除法的比較:盡管兩種算法分別來源于東、西方古代數(shù)學名著,但是二者的算理卻是相似的,有異曲同工之妙.主要區(qū)別在于輾轉(zhuǎn)相除法進行的是除法運算,即輾轉(zhuǎn)相除;而更相減損術(shù)進行的是減法運算,即輾轉(zhuǎn)相減,但是實質(zhì)都是一個不斷的遞歸過程. 變式訓練 用輾轉(zhuǎn)相除法或者更相減損術(shù)求三個數(shù)324,243,135的最大公約數(shù). 解:324=2431+81, 243=813+0, 則324與243的最大公約數(shù)為81. 又135=811+54,81=541+27, 54=272+0, 則 81 與 135的最大公約數(shù)為27. 所以,三個數(shù)324、243、135的最大公約數(shù)為27. 另法:324-243=81,243-81=162,162-81=81,則324與243的最大公約數(shù)為81. 135-81=54,81-54=27,54-27=27,則81與135的最大公約數(shù)為27. 所以,三個數(shù)324、243.135的最大公約數(shù)為27. 例3 (1)用輾轉(zhuǎn)相除法求123和48的最大公約數(shù). (2)用更相減損術(shù)求80和36的最大公約數(shù). 解:(1)輾轉(zhuǎn)相除法求最大公約數(shù)的過程如下: 123=248+27, 48=127+21, 27=121+6, 21=36+3, 6=23+0, 最后6能被3整除,得123和48的最大公約數(shù)為3. (2)我們將80作為大數(shù),36作為小數(shù),因為80和36都是偶數(shù),要除公因數(shù)2. 802=40,362=18. 40和18都是偶數(shù),要除公因數(shù)2. 402=20,182=9. 下面來求20與9的最大公約數(shù), 20-9=11, 11-9=2, 9-2=7, 7-2=5, 5-2=3, 3-2=1, 2-1=1, 可得80和36的最大公約數(shù)為221=4. 點評:對比兩種方法控制好算法的結(jié)束,輾轉(zhuǎn)相除法是到達余數(shù)為0,更相減損術(shù)是到達減數(shù)和差相等. 變式訓練 分別用輾轉(zhuǎn)相除法和更相減損術(shù)求1 734,816的最大公約數(shù). 解:輾轉(zhuǎn)相除法: 1 734=8162+102,816=1028(余0), ∴1 734與816的最大公約數(shù)是102. 更相減損術(shù):因為兩數(shù)皆為偶數(shù),首先除以2得到867,408,再求867與408的最大公約數(shù). 867-408=459, 459-408=51, 408-51=357, 357-51=306, 306-51=255, 255-51=204, 204-51=153, 153-51=102, 102-51=51. ∴1 734與816的最大公約數(shù)是512=102. 利用更相減損術(shù)可另解: 1 734-816=918, 918-816=102, 816-102=714, 714-102=612, 612-102=510, 510-102=408, 408-102=306, 306-102=204, 204-102=102. ∴1 734與816的最大公約數(shù)是102. 知能訓練 求319,377,116的最大公約數(shù). 解:377=3191+58, 319=585+29, 58=292. ∴377與319的最大公約數(shù)為29,再求29與116的最大公約數(shù). 116=294. ∴29與116的最大公約數(shù)為29. ∴377,319,116的最大公約數(shù)為29. 拓展提升 試寫出利用更相減損術(shù)求兩個正整數(shù)的最大公約數(shù)的程序. 解:更相減損術(shù)程序: INPUT “m,n=”;m,n WHILE m<>n IF m>n THEN m=m-n ELSE m=n-m END IF WEND PRINT m END 課堂小結(jié) (1)用輾轉(zhuǎn)相除法求最大公約數(shù). (2)用更相減損術(shù)求最大公約數(shù). 思想方法:遞歸思想. 作業(yè) 分別用輾轉(zhuǎn)相除法和更相減損術(shù)求261,319的最大公約數(shù). 分析:本題主要考查輾轉(zhuǎn)相除法和更相減損術(shù)及其應用.使用輾轉(zhuǎn)相除法可依據(jù)m=nq+r,反復執(zhí)行,直到r=0為止;用更相減損術(shù)就是根據(jù)m-n=r,反復執(zhí)行,直到n=r為止. 解:輾轉(zhuǎn)相除法: 319=2611+58, 261=584+29, 58=292. ∴319與261的最大公約數(shù)是29. 更相減損術(shù): 319-261=58, 261-58=203, 203-58=145, 145-58=87, 87-58=29, 58-29=29, ∴319與261的最大公約數(shù)是29. 第2課時 案例2 秦九韶算法 導入新課 (直接導入) 前面我們學習了輾轉(zhuǎn)相除法與更相減損術(shù), 今天我們開始學習秦九韶算法. 推進新課 新知探究 提出問題 (1)求多項式f(x)=x5+x4+x3+x2+x+1當x=5時的值有哪些方法?比較它們的特點. (2)什么是秦九韶算法? (3)怎樣評價一個算法的好壞? 討論結(jié)果: (1)怎樣求多項式f(x)=x5+x4+x3+x2+x+1當x=5時的值呢? 一個自然的做法就是把5代入多項式f(x),計算各項的值,然后把它們加起來,這時,我們一共做了1+2+3+4=10次乘法運算,5次加法運算. 另一種做法是先計算x2的值,然后依次計算x2x,(x2x)x,((x2x)x)x的值,這樣每次都可以利用上一次計算的結(jié)果,這時,我們一共做了4次乘法運算,5次加法運算. 第二種做法與第一種做法相比,乘法的運算次數(shù)減少了,因而能夠提高運算效率,對于計算機來說,做一次乘法運算所用的時間比做一次加法運算要長得多,所以采用第二種做法,計算機能更快地得到結(jié)果. (2)上面問題有沒有更有效的算法呢?我國南宋時期的數(shù)學家秦九韶(約1202~1261)在他的著作《數(shù)書九章》中提出了下面的算法: 把一個n次多項式f(x)=anxn+an-1xn-1+…+a1x+a0改寫成如下形式: f(x)=anxn+an-1xn-1+…+a1x+a0 =(anxn-1+an-1xn-2+…+a1)x+ a0 =((anxn-2+an-1xn-3+…+a2)x+a1)x+a0 =… =(…((anx+an-1)x+an-2)x+…+a1)x+a0. 求多項式的值時,首先計算最內(nèi)層括號內(nèi)一次多項式的值,即 v1=anx+an-1, 然后由內(nèi)向外逐層計算一次多項式的值,即 v2=v1x+an-2, v3=v2x+an-3, … vn=vn-1x+a0, 這樣,求n次多項式f(x)的值就轉(zhuǎn)化為求n個一次多項式的值. 上述方法稱為秦九韶算法.直到今天,這種算法仍是多項式求值比較先進的算法. (3)計算機的一個很重要的特點就是運算速度快,但即便如此,算法好壞的一個重要標志仍然是運算的次數(shù).如果一個算法從理論上需要超出計算機允許范圍內(nèi)的運算次數(shù),那么這樣的算法就只能是一個理論的算法. 應用示例 例1 已知一個5次多項式為f(x)=5x5+2x4+3.5x3-2.6x2+1.7x-0.8, 用秦九韶算法求這個多項式當x=5時的值. 解:根據(jù)秦九韶算法,把多項式改寫成如下形式: f(x)=((((5x+2)x+3.5)x-2.6)x+1.7)x-0.8, 按照從內(nèi)到外的順序,依次計算一次多項式當x=5時的值: v0=5; v1=55+2=27; v2=275+3.5=138.5; v3=138.55-2.6=689.9; v4=689.95+1.7=3 451.2; v5=3 415.25-0.8=17 255.2; 所以,當x=5時,多項式的值等于17 255.2. 算法分析:觀察上述秦九韶算法中的n個一次式,可見vk的計算要用到vk-1的值,若令v0=an,我們可以得到下面的公式: 這是一個在秦九韶算法中反復執(zhí)行的步驟,因此可用循環(huán)結(jié)構(gòu)來實現(xiàn). 算法步驟如下: 第一步,輸入多項式次數(shù)n、最高次的系數(shù)an和x的值. 第二步,將v的值初始化為an,將i的值初始化為n-1. 第三步,輸入i次項的系數(shù)ai. 第四步,v=vx+ai,i=i-1. 第五步,判斷i是否大于或等于0.若是,則返回第三步;否則,輸出多項式的值v. 程序框圖如下圖: 程序: INPUT “n=”;n INPUT “an=”;a INPUT “x=”;x v=a i=n-1 WHILE i>=0 PRINT “i=”;i INPUT “ai=”;a v=v*x+a i=i-1 WEND PRINT v END 點評:本題是古老算法與現(xiàn)代計算機語言的完美結(jié)合,詳盡介紹了思想方法、算法步驟、程序框圖和算法語句,是一個典型的算法案例. 變式訓練 請以5次多項式函數(shù)為例說明秦九韶算法,并畫出程序框圖. 解:設f(x)=a5x5+a4x4+a3x3+a2x2+a1x+a0 首先,讓我們以5次多項式一步步地進行改寫: f(x)=(a5x4+a4x3+a3x2+a2x+a1)x+a0 =((a5x3+a4x2+ a3x+a2)x+a1)x+a0 =(((a5x2+a4x+ a3)x+a2)x+a1)x+a0 =((((a5x+a4)x+ a3)x+a2)x+a1)x+a0. 上面的分層計算,只用了小括號,計算時,首先計算最內(nèi)層的括號,然后由里向外逐層計算,直到最外層的括號,然后加上常數(shù)項即可. 程序框圖如下圖: 例2 已知n次多項式Pn(x)=a0xn+a1xn-1+…+an-1x+an,如果在一種算法中,計算(k=2,3,4,…,n)的值需要k-1次乘法,計算P3(x0)的值共需要9次運算(6次乘法,3次加法),那么計算P10(x0)的值共需要__________次運算.下面給出一種減少運算次數(shù)的算法:P0(x)=a0,Pk+1(x)=xPk(x)+ak+1(k=0,1,2,…,n-1).利用該算法,計算P3(x0)的值共需要6次運算,計算P10(x0)的值共需要___________次運算. 答案:65 20 點評:秦九韶算法適用一般的多項式f(x)=anxn+an-1xn-1+…+a1x+a0的求值問題.直接法乘法運算的次數(shù)最多可到達,加法最多n次.秦九韶算法通過轉(zhuǎn)化把乘法運算的次數(shù)減少到最多n次,加法最多n次. 例3 已知多項式函數(shù)f(x)=2x5-5x4-4x3+3x2-6x+7,求當x=5時的函數(shù)的值. 解析:把多項式變形為:f(x)=2x5-5x4-4x3+3x2-6x+7 =((((2x-5)x-4)x+3)x-6)x+7. 計算的過程可以列表表示為: 最后的系數(shù)2 677即為所求的值. 算法過程: v0=2; v1=25-5=5; v2=55-4=21; v3=215+3=108; v4=1085-6=534; v5=5345+7=2 677. 點評:如果多項式函數(shù)中有缺項的話,要以系數(shù)為0的項補齊后再計算. 知能訓練 當x=2時,用秦九韶算法求多項式f(x)=3x5+8x4-3x3+5x2+12x-6的值. 解法一:根據(jù)秦九韶算法,把多項式改寫成如下形式: f(x)=((((3x+8)x-3)x+5)x+12)x-6. 按照從內(nèi)到外的順序,依次計算一次多項式當x=2時的值. v0=3; v1=v02+8=32+8=14; v2=v12-3=142-3=25; v3=v22+5=252+5=55; v4=v32+12=552+12=122; v5=v42-6=1222-6=238. ∴當x=2時,多項式的值為238. 解法二:f(x)=((((3x+8)x-3)x+5)x+12)x-6, 則f(2)=((((32+8)2-3)2+5)2+12)2-6=238. 拓展提升 用秦九韶算法求多項式f(x)=7x7+6x6+5x5+4x4+3x3+2x2+x當x=3時的值. 解:f(x)=((((((7x+6)+5)x+4)x+3)x+2)x+1)x v0=7; v1=73+6=27; v2=273+5=86; v3=863+4=262; v4=2623+3=789; v5=7893+2=2 369; v6=2 3693+1=7 108; v7=7 1083+0=21 324. ∴f(3)=21 324. 課堂小結(jié) 1.秦九韶算法的方法和步驟. 2.秦九韶算法的計算機程序框圖. 作業(yè) 已知函數(shù)f(x)=x3-2x2-5x+8,求f(9)的值. 解:f(x)=x3-2x2-5x+8=(x2-2x-5)x+8=((x-2)x-5)x+8 ∴f(9)=((9-2)9-5)9+8=530. 第3課時 案例3 進位制 導入新課 情境導入 在日常生活中,我們最熟悉、最常用的是十進制,據(jù)說這與古人曾以手指計數(shù)有關,愛好天文學的古人也曾經(jīng)采用七進制、十二進制、六十進制,至今我們?nèi)匀皇褂靡恢芷咛?、一年十二個月、一小時六十分的歷法.今天我們來學習一下進位制. 推進新課 新知探究 提出問題 (1)你都了解哪些進位制? (2)舉出常見的進位制. (3)思考非十進制數(shù)轉(zhuǎn)換為十進制數(shù)的轉(zhuǎn)化方法. (4)思考十進制數(shù)轉(zhuǎn)換成非十進制數(shù)及非十進制之間的轉(zhuǎn)換方法. 活動:先讓學生思考或討論后再回答,經(jīng)教師提示、點撥,對回答正確的學生及時表揚,對回答不準確的學生提示引導考慮問題的思路. 討論結(jié)果: (1)進位制是人們?yōu)榱擞嫈?shù)和運算方便而約定的計數(shù)系統(tǒng),約定滿二進一,就是二進制;滿十進一,就是十進制;滿十二進一,就是十二進制;滿六十進一,就是六十進制等等.也就是說:“滿幾進一”就是幾進制,幾進制的基數(shù)(都是大于1的整數(shù))就是幾. (2)在日常生活中,我們最熟悉、最常用的是十進制,據(jù)說這與古人曾以手指計數(shù)有關,愛好天文學的古人也曾經(jīng)采用七進制、十二進制、六十進制,至今我們?nèi)匀皇褂靡恢芷咛?、一年十二個月、一小時六十分的歷法. (3)十進制使用0~9十個數(shù)字.計數(shù)時,幾個數(shù)字排成一行,從右起,第一位是個位,個位上的數(shù)字是幾,就表示幾個一;第二位是十位,十位上的數(shù)字是幾,就表示幾個十;接著依次是百位、千位、萬位…… 例如:十進制數(shù)3 721中的3表示3個千,7表示7個百,2表示2個十,1表示1個一.于是,我們得到下面的式子: 3 721=3103+7102+2101+1100. 與十進制類似,其他的進位制也可以按照位置原則計數(shù).由于每一種進位制的基數(shù)不同,所用的數(shù)字個數(shù)也不同.如二進制用0和1兩個數(shù)字,七進制用0~6七個數(shù)字. 一般地,若k是一個大于1的整數(shù),那么以k為基數(shù)的k進制數(shù)可以表示為一串數(shù)字連寫在一起的形式 anan-1…a1a0(k)(0<an<k,0≤an-1,…,a1,a0<k). 其他進位制的數(shù)也可以表示成不同位上數(shù)字與基數(shù)的冪的乘積之和的形式,如 110 011(2)=125+124+023+022+121+120, 7 342(8)=783+382+481+280. 非十進制數(shù)轉(zhuǎn)換為十進制數(shù)比較簡單,只要計算下面的式子值即可: anan-1…a1a0(k)=ankn+an-1kn-1+…+a1k+a0. 第一步:從左到右依次取出k進制數(shù)anan-1…a1a0(k)各位上的數(shù)字,乘以相應的k的冪,k的冪從n開始取值,每次遞減1,遞減到0,即ankn,an-1kn-1,…,a1k,a0k0; 第二步:把所得到的乘積加起來,所得的結(jié)果就是相應的十進制數(shù). (4)關于進位制的轉(zhuǎn)換,教科書上以十進制和二進制之間的轉(zhuǎn)換為例講解,并推廣到十進制和其他進制之間的轉(zhuǎn)換.這樣做的原因是,計算機是以二進制的形式進行存儲和計算數(shù)據(jù)的,而一般我們傳輸給計算機的數(shù)據(jù)是十進制數(shù)據(jù),因此計算機必須先將十進制數(shù)轉(zhuǎn)換為二進制數(shù),再處理,顯然運算后首次得到的結(jié)果為二進制數(shù),同時計算機又把運算結(jié)果由二進制數(shù)轉(zhuǎn)換成十進制數(shù)輸出. 1十進制數(shù)轉(zhuǎn)換成非十進制數(shù) 把十進制數(shù)轉(zhuǎn)換為二進制數(shù),教科書上提供了“除2取余法”,我們可以類比得到十進制數(shù)轉(zhuǎn)換成k進制數(shù)的算法“除k取余法”. 2非十進制之間的轉(zhuǎn)換 一個自然的想法是利用十進制作為橋梁.教科書上提供了一個二進制數(shù)據(jù)與16進制數(shù)據(jù)之間的互化的方法,也就是先由二進制數(shù)轉(zhuǎn)化為十進制數(shù),再由十進制數(shù)轉(zhuǎn)化成為16進制數(shù). 應用示例 例1 把二進制數(shù)110 011(2)化為十進制數(shù). 解:110 011(2)=125+124+023+022+121+120=132+116+12+1=51. 點評:先把二進制數(shù)寫成不同位上數(shù)字與2的冪的乘積之和的形式,再按照十進制的運算規(guī)則計算出結(jié)果. 變式訓練 設計一個算法,把k進制數(shù)a(共有n位)化為十進制數(shù)b. 算法分析:從例1的計算過程可以看出,計算k進制數(shù)a的右數(shù)第i位數(shù)字ai與ki-1的乘積aiki-1,再將其累加,這是一個重復操作的步驟.所以,可以用循環(huán)結(jié)構(gòu)來構(gòu)造算法. 算法步驟如下: 第一步,輸入a,k和n的值. 第二步,將b的值初始化為0,i的值初始化為1. 第三步,b=b+aiki-1,i=i+1. 第四步,判斷i>n是否成立.若是,則執(zhí)行第五步;否則,返回第三步. 第五步,輸出b的值. 程序框圖如下圖: 程序: INPUT “a,k,n=”;a,k,n b=0 i=1 t=a MOD 10 DO b=b+t*k^(i-1) a=a\\10 t=a MOD 10 i=i+1 LOOP UNTIL i>n PRINT b END 例2 把89化為二進制數(shù). 解:根據(jù)二進制數(shù)“滿二進一”的原則,可以用2連續(xù)去除89或所得商,然后取余數(shù).具體計算方法如下: 因為89=244+1,44=222+0, 22=211+0, 11=25+1, 5=22+1, 2=21+0, 1=20+1, 所以 89=2(2(2(2(22+1)+1)+0)+0)+1 =2(2(2(2(22+1)+1)+0)+0)+1 =…=126+025+124+123+022+021+120 =1 011 001(2). 這種算法叫做除2取余法,還可以用下面的除法算式表示: 把上式中各步所得的余數(shù)從下到上排列,得到89=1 011 001(2). 上述方法也可以推廣為把十進制數(shù)化為k進制數(shù)的算法,稱為除k取余法. 變式訓練 設計一個程序,實現(xiàn)“除k取余法”. 算法分析:從例2的計算過程可以看出如下的規(guī)律: 若十制數(shù)a除以k所得商是q0,余數(shù)是r0,即a=kq0+r0,則r0是a的k進制數(shù)的右數(shù)第1位數(shù). 若q0除以k所得的商是q1,余數(shù)是r1,即q0=kq1+r1,則r1是a的k進制數(shù)的左數(shù)第2位數(shù). …… 若qn-1除以k所得的商是0,余數(shù)是rn,即qn-1=rn,則rn是a的k進制數(shù)的左數(shù)第1位數(shù). 這樣,我們可以得到算法步驟如下: 第一步,給定十進制正整數(shù)a和轉(zhuǎn)化后的數(shù)的基數(shù)k. 第二步,求出a除以k所得的商q,余數(shù)r. 第三步,把得到的余數(shù)依次從右到左排列. 第四步,若q≠0,則a=q,返回第二步;否則,輸出全部余數(shù)r排列得到的k進制數(shù). 程序框圖如下圖: 程序: INPUT “a,k=”;a,k b=0 i=0 DO q=a\\k r=a MOD k b=b+r*10^i i=i+1 a=q LOOP UNTIL q=0 PRINT b END 例3 將8進制數(shù)314 706(8)化為十進制數(shù),并編寫出一個實現(xiàn)算法的程序. 解:314 706(8)=385+184+483+782+081+680=104 902. 所以,化為十進制數(shù)是104 902. 點評:利用把k進制數(shù)轉(zhuǎn)化為十進制數(shù)的一般方法就可以把8進制數(shù)314 706(8)化為十進制數(shù). 例2 把十進制數(shù)89化為三進制數(shù),并寫出程序語句. 解:具體的計算方法如下: 89=329+2, 29=39+2, 9=33+0, 3=31+0, 1=30+1, 所以:89(10)=10 022(3). 點評:根據(jù)三進制數(shù)滿三進一的原則,可以用3連續(xù)去除89及其所得的商,然后按倒序的順序取出余數(shù)組成數(shù)據(jù)即可. 知能訓練 將十進制數(shù)34轉(zhuǎn)化為二進制數(shù). 分析:把一個十進制數(shù)轉(zhuǎn)換成二進制數(shù),用2反復去除這個十進制數(shù),直到商為0,所得余數(shù)(從下往上讀)就是所求. 解: 即34(10)=100 010(2) 拓展提升 把1 234(5)分別轉(zhuǎn)化為十進制數(shù)和八進制數(shù). 解:1 234(5)=153+252+35+4=194. 則1 234(5)=302(8) 所以,1 234(5)=194=302(8) 點評:本題主要考查進位制以及不同進位制數(shù)的互化.五進制數(shù)直接利用公式就可以轉(zhuǎn)化為十進制數(shù);五進制數(shù)和八進制數(shù)之間需要借助于十進制數(shù)來轉(zhuǎn)化. 課堂小結(jié) (1)理解算法與進位制的關系. (2)熟練掌握各種進位制之間轉(zhuǎn)化. 作業(yè) 習題1.3A組3、4. 板書設計 略 教學反思 第一課時:數(shù)學不僅是一門科學,也是一種文化,本節(jié)的引入從東、西方文化的不同開始,逐步向?qū)W生滲透數(shù)學文化.從知識方面主要學習用兩種方法求兩個正整數(shù)的最大公約數(shù),從思想方法方面,主要學習遞歸思想.本節(jié)設置精彩例題,不僅讓學生學到知識,而且讓學生進一步體會算法的思想,培養(yǎng)學生的愛國主義情操. 第二課時:本節(jié)主要介紹了秦九韶算法. 通過對秦九韶算法的學習,對算法本身有哪些進一步的認識? 教師引導學生思考、討論、概括,小結(jié)時要關注如下幾點:(1)算法具有通用的特點,可以解決一類問題;(2)解決同一類問題,可以有不同的算法,但計算的效率是不同的,應該選擇高效的算法;(3)算法的種類雖多,但三種邏輯結(jié)構(gòu)可以有效地表達各種算法等等 第三課時:計算機是以二進制的形式進行存儲和計算數(shù)據(jù)的,而一般我們傳輸給計算機的數(shù)據(jù)是十進制數(shù)據(jù),因此計算機必須先將十進制數(shù)轉(zhuǎn)換為二進制數(shù),再處理,顯然運算后首次得到的結(jié)果為二進制數(shù),同時,計算機又把運算結(jié)果由二進制數(shù)轉(zhuǎn)換成十進制數(shù)輸出.因此學好進位制是非常必要的,另外,進位制也是高考的重點,本節(jié)設置了多種題型供學生訓練,所以這節(jié)課非常實用.- 配套講稿:
如PPT文件的首頁顯示word圖標,表示該PPT已包含配套word講稿。雙擊word圖標可打開word文檔。
- 特殊限制:
部分文檔作品中含有的國旗、國徽等圖片,僅作為作品整體效果示例展示,禁止商用。設計者僅對作品中獨創(chuàng)性部分享有著作權(quán)。
- 關 鍵 詞:
- 2019-2020年人教版高中數(shù)學必修三教案:1-3 算法案例 2019 2020 年人教版 高中數(shù)學 必修 教案 算法 案例
裝配圖網(wǎng)所有資源均是用戶自行上傳分享,僅供網(wǎng)友學習交流,未經(jīng)上傳用戶書面授權(quán),請勿作他用。
鏈接地址:http://appdesigncorp.com/p-6142556.html