算法循環(huán)結(jié)構(gòu)流程圖_第1頁
算法循環(huán)結(jié)構(gòu)流程圖_第2頁
算法循環(huán)結(jié)構(gòu)流程圖_第3頁
算法循環(huán)結(jié)構(gòu)流程圖_第4頁
算法循環(huán)結(jié)構(gòu)流程圖_第5頁
已閱讀5頁,還剩7頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

精品文檔精心整理精品文檔可編輯的精品文檔算法循環(huán)結(jié)構(gòu)流程圖目錄:1、算法循環(huán)結(jié)構(gòu)流程圖2、談算法中循環(huán)結(jié)構(gòu)的流程圖的學(xué)習(xí)策略當(dāng)前文文件修改密碼:8362839更多數(shù)據(jù)請(qǐng)?jiān)L問精品數(shù)據(jù)網(wǎng)(.....)談?wù)勑抡n程改革中“算法循環(huán)結(jié)構(gòu)流程圖”的教學(xué)論文摘要:本文是分析新教材中“算法循環(huán)結(jié)構(gòu)流程圖”的類型、循環(huán)結(jié)構(gòu)的退出條件、循環(huán)結(jié)構(gòu)與其它結(jié)構(gòu)的聯(lián)系、以及設(shè)計(jì)循環(huán)結(jié)構(gòu)流程圖應(yīng)注意的事項(xiàng)等四個(gè)方面,其中重點(diǎn)談到如何把握和設(shè)計(jì)循環(huán)結(jié)構(gòu)的退出條件,著手探索算法循環(huán)結(jié)構(gòu)流程圖的教學(xué)。關(guān)鍵詞:流程圖;計(jì)數(shù)變數(shù);循環(huán)結(jié)構(gòu)為了加強(qiáng)高中課程與社會(huì)發(fā)展、科技進(jìn)步以及學(xué)生生活的聯(lián)系,于是在2004年高中課程改革時(shí),高中數(shù)學(xué)新教材就增加了算法知識(shí),并放在數(shù)學(xué)必修Ⅲ的第一章。其中流程圖是算法中的重點(diǎn),而循環(huán)結(jié)構(gòu)的流程圖是一個(gè)難點(diǎn),學(xué)生在學(xué)習(xí)時(shí)感到最困難的是循環(huán)結(jié)構(gòu)出口條件的把握,也就是說何時(shí)應(yīng)該退出循環(huán)結(jié)構(gòu)執(zhí)行下一步?退出時(shí)該用“>”還是“≥”,用“<”還是“≤”?計(jì)數(shù)變量、累加變量的初始值與終值分別是什么?循環(huán)結(jié)構(gòu)中的當(dāng)型與直到型有何區(qū)別?等等,學(xué)生感到茫然。若學(xué)生掌握了流程圖,編程序就容易了,因此我認(rèn)為,加強(qiáng)對(duì)算法中循環(huán)結(jié)構(gòu)的分析與研究很有必要。下面結(jié)合具體問題談?wù)勎以趯W(xué)習(xí)新教材和實(shí)施“算法中循環(huán)結(jié)構(gòu)流程圖”教學(xué)過程中的認(rèn)識(shí)和體會(huì)。滿足條件循環(huán)體是否圖1當(dāng)型循環(huán)結(jié)構(gòu)正如我們知道的,“在一些算法中,也經(jīng)常會(huì)出現(xiàn)從某處開始,按照一定條件,反復(fù)執(zhí)行某一處步驟的情況,這就是循環(huán)結(jié)構(gòu)。滿足條件循環(huán)體是否圖1當(dāng)型循環(huán)結(jié)構(gòu)關(guān)注的問題一:循環(huán)結(jié)構(gòu)有哪些類型?根據(jù)對(duì)條件的不同處理,循環(huán)結(jié)構(gòu)分為如下兩種,滿足條件循環(huán)體是否圖2直到型循環(huán)結(jié)構(gòu)(一)當(dāng)型(while型)?!爱?dāng)型循環(huán)在每次執(zhí)行循環(huán)體前對(duì)控制循環(huán)條件進(jìn)行判斷,當(dāng)條件滿足時(shí)執(zhí)行循環(huán)體,不滿足則停止;”【2】當(dāng)型循環(huán)有時(shí)也稱為“滿足條件循環(huán)體是否圖2直到型循環(huán)結(jié)構(gòu)(二)直到型(until型)。“直到型循環(huán)在執(zhí)行了一次循環(huán)體之后,對(duì)控制循環(huán)條件進(jìn)行判斷,當(dāng)條件不滿足時(shí)執(zhí)行循環(huán)體,滿足則停止?!薄?】直到型循環(huán)又稱為“后測(cè)試型”循環(huán)(如圖2)。對(duì)同一個(gè)問題,一般來說既可以用當(dāng)型,又可以用直到型。當(dāng)然其流程圖(即程序框圖)是有所不同的。開始I=0S=0I>=100?輸出SS=S+II=I+1結(jié)束是否圖4直到型循環(huán)結(jié)構(gòu)開始I=0S=0I>=100?輸出SS=S+II=I+1結(jié)束是否圖4直到型循環(huán)結(jié)構(gòu)開始I=0S=0I<100?輸出SS=S+II=I+1結(jié)束是否圖3當(dāng)型循環(huán)結(jié)構(gòu)循環(huán)結(jié)構(gòu)不能是永無終止的“死循環(huán)”,一定要在某個(gè)條件下終止循環(huán),這就需要判斷框作出判斷,因此,循環(huán)結(jié)構(gòu)中一定包含判斷框。從以上例子還可看出當(dāng)型循環(huán)的判斷條件“I<100?”與直到型循環(huán)的判斷條件“I>=100?”剛好是相反的。即在同一算法中,當(dāng)型循環(huán)與直到型循環(huán)的條件互為對(duì)立。關(guān)注的問題二:如何把握和設(shè)計(jì)循環(huán)結(jié)構(gòu)的退出條件?開始t=0,i=1,p=1p=p×ii>46?輸出p開始t=0,i=1,p=1p=p×ii>46?輸出pt=t+1結(jié)束是否i=i+t圖6直到型循環(huán)結(jié)構(gòu)開始s=0,i=1s=s+ii>31?輸出si=i+2結(jié)束是否圖5直到型循環(huán)結(jié)構(gòu)(一)計(jì)數(shù)變量和累加變量(或稱累積變量)一般是同步執(zhí)行的,計(jì)數(shù)一次,就累加(或累積)一次。例1中“I”是計(jì)數(shù)變量,“S”是累加變量。每對(duì)I計(jì)數(shù)一次,就對(duì)S累加一次,當(dāng)I=100時(shí),退出循環(huán),此時(shí)循環(huán)次數(shù)剛好為100次。(二)有時(shí)計(jì)數(shù)變量并沒有準(zhǔn)確記錄循環(huán)次數(shù)。如:例2設(shè)計(jì)求1+3+5+7+…+31的流程圖。例2流程圖(圖5)用的是直到型循環(huán),當(dāng)中的s是累加變量,i是計(jì)數(shù)變量,這里每對(duì)s累加一次,就對(duì)i計(jì)數(shù)一次,當(dāng)i>31(即i=33)時(shí)要退出循環(huán)體,但此時(shí)循環(huán)次數(shù)卻只有16次;(三)有時(shí)計(jì)數(shù)變量有兩個(gè),一個(gè)用來判斷循環(huán)是否結(jié)束,另一個(gè)用來準(zhǔn)確記錄循環(huán)次數(shù)。如:否開始輸入nd=d+1n>2?結(jié)束是d+1整除n?是否d=0否開始輸入nd=d+1n>2?結(jié)束是d+1整除n?是否d=0如何退出循環(huán)?d≥n-2?否是輸出“n不是質(zhì)數(shù)”輸出“n是質(zhì)數(shù)”圖7例3程序框圖(圖6)是直到型循環(huán),當(dāng)中t與i都是計(jì)數(shù)變量,p是累積變量,每對(duì)t和i計(jì)數(shù)一次,就對(duì)p累積一次,其中t是控制循環(huán)次數(shù),i是判斷循環(huán)是否終止。當(dāng)i>46(即i=56,t=9)時(shí),退出循環(huán)體,此時(shí)循環(huán)次數(shù)剛好是9次,只是在設(shè)計(jì)框圖時(shí)不需人為算出t=9。(四)有時(shí)要退出循環(huán)體,有計(jì)數(shù)變量還是無法真正退出循環(huán)結(jié)構(gòu)的。如例4任意給定一個(gè)大于1的整數(shù)n,試設(shè)計(jì)一個(gè)程序或步驟對(duì)n是否為質(zhì)數(shù)做出判定。算法如下:第一步,判斷n是否等于2。若n=2,則n是質(zhì)數(shù);若n>2,執(zhí)行第二步。第二步,依次從2~(n-1)檢驗(yàn)是不是n的因子,即整除n的數(shù)。若有這樣的數(shù),則n不是質(zhì)數(shù);若沒有這樣的數(shù),則n是質(zhì)數(shù)。根據(jù)算法直接畫出的程序框圖(圖7),這里d是計(jì)數(shù)變數(shù),但此時(shí)當(dāng)中紅色粗線部分問題還沒解決。這就需要增加一個(gè)變量flag,它是用來判斷是否為質(zhì)數(shù)的一個(gè)變量,該變量的取值只有兩個(gè),“1”和“0”,若flag=1,則是質(zhì)數(shù);否則不是質(zhì)數(shù)。flag并沒有實(shí)質(zhì)的含義,那就象一個(gè)人的姓名能代表他本人,其外號(hào)也可代表他本人,學(xué)號(hào)同樣能代表他本人。而一般來說用學(xué)號(hào)管理更方便?!癴lag=1”只是質(zhì)數(shù)的一個(gè)代號(hào)。當(dāng)然代號(hào)可以選別的,如用b變量,“b=1是質(zhì)數(shù)的代號(hào),而當(dāng)b≠1時(shí)則不是質(zhì)數(shù)”等等都行。直到型循環(huán)結(jié)構(gòu)的圖8是正確的。開始輸入nd=d+1n>2?結(jié)束是否輸出“n不是質(zhì)數(shù)”d+1整除n?是否d開始輸入nd=d+1n>2?結(jié)束是否輸出“n不是質(zhì)數(shù)”d+1整除n?是否d≥n-2或flag=0?否是flag=1,d=0flag=0flag=1?輸出“n是質(zhì)數(shù)”是否圖8直到型循環(huán)結(jié)構(gòu)(五)有時(shí)循環(huán)體中并無計(jì)數(shù)變量,且循環(huán)次數(shù)是不能確定的。以上的例1,例2,例3中都有計(jì)數(shù)變量,且循環(huán)體的循環(huán)次數(shù)都是確定的,而在例4中循環(huán)次數(shù)是不確定的,有0,1,2,…,n-2次多種可能。又例如例5用二分法設(shè)計(jì)一個(gè)求方程x2-2=0的正近似根的算法(精確到ε=0.005)。第一步:令f(x)=x2-2,因?yàn)閒(1)<0,f(2)>0,則根在區(qū)間(1,2),設(shè)x1=1,x2=2,即根在區(qū)間(x1,x2)。第二步:令m=,計(jì)算f(m)的值,并判斷f(m)是否為0。若是,則m為所求根;若否,則繼續(xù)執(zhí)行以下步驟。第三步:若f(x1)?f(m)>0,知f(m)?f(x2)<0,則根在區(qū)間(m,x2),令x1=m;否則根在區(qū)間(x1,m),令x2=m。開始f(x)=x2-2m=,f(m)=m2-1f(m)=0?輸出mx1=m結(jié)束輸入誤差ε和初始值x1,x2開始f(x)=x2-2m=,f(m)=m2-1f(m)=0?輸出mx1=m結(jié)束輸入誤差ε和初始值x1,x2f(x1)·f(m)>0?x2=ma<ε?否否是是是否m=a=|x1-x2|圖9直到型循環(huán)結(jié)構(gòu)x1=m,x2=m其框圖如圖9(是直到型循環(huán)結(jié)構(gòu)),這里并無計(jì)數(shù)變量,而用來判斷循環(huán)是否終止的只是標(biāo)志變量a。其循環(huán)次數(shù)最多為(這里x1,x2是初始值),但實(shí)際上并不知道其實(shí)際的循環(huán)次數(shù)。關(guān)注的問題三:循環(huán)結(jié)構(gòu)與其它結(jié)構(gòu)有何聯(lián)系?循環(huán)結(jié)構(gòu)中都有順序結(jié)構(gòu)。條件結(jié)構(gòu)嵌套著循環(huán)結(jié)構(gòu),如圖8。循環(huán)結(jié)構(gòu)嵌套著條件結(jié)構(gòu),如圖8,圖9。循環(huán)結(jié)構(gòu)嵌套著循環(huán)結(jié)構(gòu),如圖10(是一個(gè)關(guān)于九九表的流程圖)最后談?wù)勗O(shè)計(jì)循環(huán)結(jié)構(gòu)流程圖應(yīng)注意的事項(xiàng):計(jì)數(shù)變量和累加變量(或累積變量)分別代表什么?有什么作用?兩個(gè)變量(計(jì)數(shù)變量和累加變量)的初始值、終值分別是多少?計(jì)數(shù)變數(shù)遞加的值(即步長)有多大?退出循環(huán)體時(shí)判斷框中計(jì)數(shù)變量取值限制,用“>”還是“≥”?用“<”還是“≤”?開始k=1,i=1k=ii=i+1結(jié)束NYa=kxii<=9?圖10當(dāng)型循環(huán)嵌套當(dāng)型循環(huán)k<=9?輸出k;“開始k=1,i=1k=ii=i+1結(jié)束NYa=kxii<=9?圖10當(dāng)型循環(huán)嵌套當(dāng)型循環(huán)k<=9?輸出k;“x”;i;“=”;ak=k+1YN當(dāng)遇到條件結(jié)構(gòu)嵌套著循環(huán)結(jié)構(gòu),或循環(huán)結(jié)構(gòu)嵌套著條件結(jié)構(gòu),或循環(huán)結(jié)構(gòu)嵌套著循環(huán)結(jié)構(gòu)時(shí),注意一定要把整個(gè)結(jié)構(gòu)套進(jìn)去,就象大盆裝小盆,要完整的裝好,不能溢出。循環(huán)結(jié)構(gòu)一般只有一個(gè)進(jìn)口,一個(gè)出口。在二分法的圖9中,循環(huán)體中設(shè)計(jì)了一個(gè)進(jìn)口,一個(gè)出口,只有這樣才能順利轉(zhuǎn)化為程序語言。【1】普通高中課程標(biāo)準(zhǔn)實(shí)驗(yàn)教科書《數(shù)學(xué)3》(A版)人民教育出版社,2004,5第1版P9【2】【3】普通高中課程標(biāo)準(zhǔn)實(shí)驗(yàn)教科書《數(shù)學(xué)3》(A版)人民教育出版社,2004,5第1版P10參考文獻(xiàn)①普通高中課程標(biāo)準(zhǔn)實(shí)驗(yàn)教科書《數(shù)學(xué)3》(A版)人民教育出版社,2004,5第1版②《中學(xué)教材全解高中數(shù)學(xué)必修③》主編:薛金星,陜西人民教育出版社,2005,1第1版,2006,2第1版③《高中同步測(cè)控優(yōu)化設(shè)計(jì)》主編:任志鴻,南方出版社2004,12第2版,2006,1第3版論文題目:談?wù)勑抡n程改革中“算法循環(huán)結(jié)構(gòu)流程圖”的教學(xué)作者:盧麗英單位:東莞中學(xué)數(shù)學(xué)科聯(lián)系電話:22119827品文檔精心整理精品文檔可編輯的精品文檔談算法中“循環(huán)結(jié)構(gòu)的流程圖”的學(xué)習(xí)策略孟慶東(江蘇省淮陰中學(xué),江蘇223002)高中數(shù)學(xué)新教材增加了算法知識(shí),其中流程圖是算法中的重點(diǎn),而相對(duì)于順序結(jié)構(gòu)和選擇結(jié)構(gòu)的流程圖來說,循環(huán)結(jié)構(gòu)的流程圖教學(xué)難度較大。這是因?yàn)椋绦蛟O(shè)計(jì)中的循環(huán)結(jié)構(gòu)與學(xué)生熟悉的重復(fù)運(yùn)算存在一定的區(qū)別,學(xué)生對(duì)循環(huán)體和終止條件的學(xué)習(xí)還是比較困難的。因此,加強(qiáng)對(duì)算法中循環(huán)結(jié)構(gòu)的分析與研究很有必要,下面結(jié)合具體問題談?wù)剬?duì)循環(huán)結(jié)構(gòu)的流程圖認(rèn)識(shí)及學(xué)習(xí)策略。一、理解兩類循環(huán)結(jié)構(gòu)及相互轉(zhuǎn)化循環(huán)結(jié)構(gòu)是指在算法中從某處開始,按照一定的條件反復(fù)執(zhí)行某一處理步驟的結(jié)構(gòu)。循環(huán)結(jié)構(gòu)有兩類,當(dāng)型循環(huán)和直到型循環(huán)。如圖1所示為當(dāng)型循環(huán)結(jié)構(gòu)表示“當(dāng)條件p滿足時(shí),反復(fù)執(zhí)行A框操作,直到條件P不成立時(shí)才停止循環(huán)”;如圖2所示直到型循環(huán)結(jié)構(gòu)表示“先執(zhí)行A框操作,再判斷給定的條件P是否成立,若條件P不成立,則執(zhí)行A,如此反復(fù),直到條件P成立為止”。直到型循環(huán)的特點(diǎn)是至少執(zhí)行一次操作,當(dāng)事先不能確定是否至少執(zhí)行一次循環(huán)的情況下,用當(dāng)型循環(huán)較好。兩類循環(huán)結(jié)構(gòu)是可以相互轉(zhuǎn)化的。圖2APYN圖2APYN圖1AYNP問題:設(shè)計(jì)計(jì)算1+3+5+7+...+99的一個(gè)算法直到型循環(huán)結(jié)構(gòu)流程圖為:當(dāng)型循環(huán)結(jié)構(gòu)流程圖為:開始輸出S結(jié)束開始開始輸出S結(jié)束開始輸出S結(jié)束二、關(guān)注循環(huán)結(jié)構(gòu)的三要素及其對(duì)程序的影響(1)循環(huán)前,初始化變量的值,并關(guān)注其對(duì)程序的影響所謂循環(huán)變量,是指在算法執(zhí)行過程中,被反復(fù)賦值修改的變量。例如,在上述兩類循環(huán)結(jié)構(gòu)中,都先給變量s、i分別賦初值0、1,當(dāng)然也可以給變量s、i分別賦初值1、3。(2)確定循環(huán)體,并關(guān)注其對(duì)程序的影響循環(huán)體就是在循環(huán)結(jié)構(gòu)中反復(fù)執(zhí)行的操作步驟,例如,上述循環(huán)結(jié)構(gòu)中的循環(huán)體是“S←S+I,I←I+2”(3)設(shè)置循環(huán)終止條件,并關(guān)注其對(duì)程序的影響循環(huán)結(jié)構(gòu)不能是永無終止的,一定要在某個(gè)條件下終止循環(huán),這就需要條件結(jié)構(gòu)來做出判斷,因此,循環(huán)結(jié)構(gòu)中一定包含條件結(jié)構(gòu)。例如,上述循環(huán)結(jié)構(gòu)中的“i>99”、“”都是終止條件。如果把上述循環(huán)結(jié)構(gòu)中的循環(huán)體“S←S+i,i←i+2”改成“i←i+2,S←S+i”,則循環(huán)終止條件也要作出相應(yīng)的改變,程序流程圖如下:開始輸出S結(jié)束開始輸出開始輸出S結(jié)束開始輸出S結(jié)束為了更好的理解循環(huán)結(jié)構(gòu)的三要素對(duì)程序的影響,現(xiàn)把上述問題作如下改變:變題1:如果將上面的問題改為1+3+5+7+...+__>10000,那么,如何尋找滿足條件的最小整數(shù)呢?流程圖如下:開始輸出開始輸出結(jié)束在練習(xí)中發(fā)現(xiàn)有不少同學(xué)將循環(huán)體中的兩個(gè)賦值語句的順序顛倒一下,流程圖如下:開始輸出開始輸出結(jié)束事實(shí)上我們可以發(fā)現(xiàn)上述語句是錯(cuò)誤。因?yàn)橐葯z驗(yàn)條件“S≤1000”是否成立,如果成立,則重復(fù)循環(huán)體中的語句“S←S+i,i←i+2”,只有當(dāng)條件“S≤1000”不成立時(shí),才結(jié)束循環(huán)。那么上述算法語句中的最后一次循環(huán):“S的值的大于10000,i的值仍然要增加2”,這樣輸出的i值會(huì)比所求的值大2。大家如果看不清的話,不妨將問題改為:1+3+5+7+...+__>10,如何尋找滿足條件的最小整數(shù)呢?那么按照上述算法流程圖應(yīng)為:開始輸出開始輸出結(jié)束好,我們先來看S的初始值為0,i的初始值為1首先檢驗(yàn)“S≤10是否成立”,此時(shí)成立那么進(jìn)入第一次循環(huán):S←S+i,i←i+2得S=0+1=1,i=3;再檢驗(yàn)“S≤10是否成立”,此時(shí)成立那么進(jìn)入第二次循環(huán):S←S+i,i←i+2得S=1+3=4,i=5;再檢驗(yàn)“S≤10是否成立”,4≤10成立,進(jìn)入第三次循環(huán):S←S+i,i←i+2得S=4+5=9,i=7;再檢驗(yàn)“S≤10是否成立”,9≤10成立,進(jìn)入第四次循環(huán):S←S+i,i←i+2得S=9+7=16,i=9;再檢驗(yàn)“S≤10是否成

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論