一輪復(fù)習(xí) 13 算法與程序框圖課件_第1頁
一輪復(fù)習(xí) 13 算法與程序框圖課件_第2頁
一輪復(fù)習(xí) 13 算法與程序框圖課件_第3頁
一輪復(fù)習(xí) 13 算法與程序框圖課件_第4頁
一輪復(fù)習(xí) 13 算法與程序框圖課件_第5頁
已閱讀5頁,還剩39頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

算法初步知識體系一輪復(fù)習(xí)13算法與程序框圖第一節(jié)算法與流程圖基礎(chǔ)梳理1.一般而言,對一類問題的

的、

的求解方法稱為算法.2.流程圖是由一些

組成的,其中圖框表示各種操作的

,圖框中的文字和符號表示操作的

,流程線表示操作的

.3.順序結(jié)構(gòu):依次進(jìn)行多個(gè)處理的結(jié)構(gòu).其結(jié)構(gòu)形式為:機(jī)械統(tǒng)一圖框流程線類型類型先后次序一輪復(fù)習(xí)13算法與程序框圖4.選擇結(jié)構(gòu):先根據(jù)條件作出判斷,再?zèng)Q定執(zhí)行哪一種操作的結(jié)構(gòu).其結(jié)構(gòu)形式為:5.循環(huán)結(jié)構(gòu):需要重復(fù)執(zhí)行同一操作的結(jié)構(gòu).6.如圖是一種常見的循環(huán)結(jié)構(gòu):先判斷所給條件p是否成立,若p成立,則執(zhí)行A,再判斷條件p是否成立;若p仍成立,則又執(zhí)行A,如此反復(fù),直到某一次條件p不成立時(shí)為止.這樣的循環(huán)結(jié)構(gòu)稱為當(dāng)型循環(huán).一輪復(fù)習(xí)13算法與程序框圖7.直到型循環(huán):先執(zhí)行A,再判斷所給條件p是否成立,若p不成立,則再執(zhí)行A,如此反復(fù),直到p成立,該循環(huán)過程結(jié)束.典例分析題型一算法的設(shè)計(jì)【例1】已知點(diǎn)P(x0,y0)和直線l:Ax+By+C=0(A≠0),求點(diǎn)P(x0,y0)到直線l的距離d,寫出其算法并畫出流程圖.一輪復(fù)習(xí)13算法與程序框圖分析由公式可知,欲求點(diǎn)到直線的距離,要先求Z1=Ax0+By0+C及Z2=A2+B2,代入用順序結(jié)構(gòu)解決.解算法如下:S1輸入點(diǎn)的坐標(biāo)x0,y0及直線方程的系數(shù)A、B、C;S2Z1←Ax0+By0+C;S3Z2←A2+B2;S4d←;S5輸出d.一輪復(fù)習(xí)13算法與程序框圖學(xué)后反思給出一個(gè)問題,設(shè)計(jì)算法時(shí)應(yīng)注意:(1)認(rèn)真分析問題,聯(lián)系解決此問題的一般數(shù)學(xué)方法;(2)綜合考慮此問題中可能涉及的各種情況;(3)借助有關(guān)變量或參數(shù)對算法加以表述;(4)將解決問題的過程劃分為若干個(gè)步驟;(5)用簡練的語言將各個(gè)步驟表示出來.流程圖:一輪復(fù)習(xí)13算法與程序框圖1.寫出求解方程ax2+x+c=0的一個(gè)算法.舉一反三解析:S1判斷a是否等于零.若a=0,則解得x←-c,輸出x;若a≠0,則轉(zhuǎn)S2;S2判斷判別式Δ=1-4ac是否小于零.若Δ<0,那么輸出“方程無實(shí)數(shù)根”;若Δ≥0,則轉(zhuǎn)S3;S3計(jì)算;S4輸出x1,x2.題型二算法的順序結(jié)構(gòu)【例2】(創(chuàng)新題)已知函數(shù)f(x)=,實(shí)a1=f(1),an+1=f(an)(n∈N*),試寫出一個(gè)求a4的算法,并畫出流程圖.一輪復(fù)習(xí)13算法與程序框圖分析本題是一道求函數(shù)值的題目,顯然a1=f(1)=,可利用an+1=f(an)(n∈N*)逐個(gè)求a2,a3,a4.解算法如下:流程圖如下:S1;S2;S3;S4;S5輸出a4.一輪復(fù)習(xí)13算法與程序框圖學(xué)后反思本題是按照函數(shù)中求函數(shù)值的方法展開的,這里用了a1、a2、a3、a4四個(gè)單元分別存放了四個(gè)值.因此利用算法和流程圖,能夠規(guī)范思維,可以鍛煉書面表達(dá)的能力,對于一些不很復(fù)雜的算法,都可用順序結(jié)構(gòu)來實(shí)現(xiàn).因?yàn)樗趫?zhí)行的過程中沒有“岔路”,是依次執(zhí)行的.2.寫出過兩點(diǎn)P1(2,0),P2(0,3)的直線方程的一個(gè)算法,并畫出流程圖.舉一反三一輪復(fù)習(xí)13算法與程序框圖解析:

算法如下:流程圖如下:S1a←2,b←3;S2;S3輸出結(jié)果.題型三算法的選擇結(jié)構(gòu)

-2,x>0,【例3】(2010·青島模擬)函數(shù)y=0,x=0,寫出求該函數(shù)函數(shù)值

2,x<0,的算法及流程圖.一輪復(fù)習(xí)13算法與程序框圖分析該函數(shù)是分段函數(shù),當(dāng)x取不同范圍內(nèi)的值時(shí),函數(shù)表達(dá)式不同,因此當(dāng)給出一個(gè)自變量x的值時(shí),用條件結(jié)構(gòu)解決須先判斷x的范圍,然后確定利用哪一段解析式求函數(shù)值.解算法如下:相應(yīng)的流程圖如圖:S1輸入x;S2如果x>0,則y←-2;

如果x=0,則y←0;如果x<0,則y←2;S3輸出函數(shù)值y.學(xué)后反思求分段函數(shù)值的算法應(yīng)用到選擇結(jié)構(gòu),因此在流程圖的畫法中需要引入判斷框,要根據(jù)題目的要求確定引入判斷框的個(gè)數(shù),而判斷框內(nèi)的條件不同,對應(yīng)的下一圖框中的內(nèi)容或操作就相應(yīng)地進(jìn)行變化.一輪復(fù)習(xí)13算法與程序框圖舉一反三3.下圖輸出的是--------------.解析:

由判斷框可知,當(dāng)S>2004時(shí)輸出n,又由S=n(n+1)2可知S為1+2+…+n的和,所以是求S恰好大于2004時(shí)n的值.答案:

63一輪復(fù)習(xí)13算法與程序框圖題型四算法的循環(huán)結(jié)構(gòu)【例4】(14分)某企業(yè)2009年的生產(chǎn)總值為200萬元,技術(shù)創(chuàng)新后預(yù)計(jì)以后每年的生產(chǎn)總值將比上一年增加5%,問最早哪一年的生產(chǎn)總值將超過300萬元?試寫出解決該問題的一個(gè)算法,并畫出相應(yīng)的流程圖.分析設(shè)第n年后該企業(yè)生產(chǎn)總值為a,則a=200×(1+0.05)n,此時(shí)為2009+n年.解算法設(shè)計(jì)如下:S1n←0,a←200,r←0.05;S2T←ar(計(jì)算年增量);S3a←a+T(計(jì)算年產(chǎn)量);…………………3′S4如果a≤300,那么n←n+1,轉(zhuǎn)S2;如果a>300,則轉(zhuǎn)S5;一輪復(fù)習(xí)13算法與程序框圖S5N←2009+n;S6輸出N.…………………7′流程圖如下:方法一:方法二:

……14′……14′一輪復(fù)習(xí)13算法與程序框圖學(xué)后反思注意直到型循環(huán)結(jié)構(gòu)和當(dāng)型循環(huán)結(jié)構(gòu)的本質(zhì)區(qū)別,直到型循環(huán)結(jié)構(gòu)先執(zhí)行a←a+T,再判斷a>300,若不滿足,則執(zhí)行循環(huán)體,直到滿足才輸出N;而當(dāng)型循環(huán)結(jié)構(gòu)先判斷a≤300,若成立,則執(zhí)行循環(huán)體,直到a≤300不成立才結(jié)束循環(huán),輸出N.4.(2009·江蘇)下圖是一個(gè)算法的流程圖,最后輸出的W------.舉一反三一輪復(fù)習(xí)13算法與程序框圖解析:第一次:T=1,S=12-0=1;第二次:T=3,S=32-1=8;第三次:T=5,S=52-8=17;此時(shí)滿足S≥10,所以W=S+T=17+5=22.答案:

22易錯(cuò)警示【例】設(shè)計(jì)一個(gè)流程圖,求S=12+32+52+…+992的值.錯(cuò)解(如圖甲、乙)一輪復(fù)習(xí)13算法與程序框圖錯(cuò)解分析圖甲的錯(cuò)誤在于I←I+1,步長為1,計(jì)算的是S=12+22+32+…+992.圖乙的錯(cuò)誤在于先執(zhí)行I←I+2而后執(zhí)行S←S+I2,計(jì)算的是S=32+52+72+…+992.正解一輪復(fù)習(xí)13算法與程序框圖考點(diǎn)演練10.(2009·海南、寧夏改編)如果執(zhí)行下邊的算法流程圖,輸入x=-2,h=0.5,求輸出的各個(gè)數(shù)的和.解析:

由流程圖可知,當(dāng)x=-2時(shí),y=0;當(dāng)x=-1.5時(shí),y=0;當(dāng)x=-1時(shí),y=0;當(dāng)x=-0.5時(shí),y=0;當(dāng)x=0時(shí),y=0;當(dāng)x=0.5時(shí),y=0.5;當(dāng)x=1時(shí),y=1;當(dāng)x=1.5時(shí),y=1;當(dāng)x=2時(shí),y=1.故輸出的各數(shù)之和為3.5.一輪復(fù)習(xí)13算法與程序框圖11.在國家法定工作日內(nèi),每周滿工作量的時(shí)間為40小時(shí),若每周工作時(shí)間不超過40小時(shí),則每小時(shí)工資8元;如因需要加班,超過40小時(shí)的每小時(shí)工資為10元.某公務(wù)員在一周內(nèi)工作時(shí)間為x小時(shí),但他須交納個(gè)人住房公積金和失業(yè)保險(xiǎn)(這兩項(xiàng)費(fèi)用為每周總收入的10%).試分析算法步驟并畫出其凈得工資y元的算法的流程圖.(注:滿工作量外的工作時(shí)間為加班)解析:

算法如下:S1輸入工作時(shí)間x小時(shí);S2若x≤40,則y←8x×(1-10%);否則,

y←40×8(1-10%)+(x-40)×10(1-10%);S3輸出y值.一輪復(fù)習(xí)13算法與程序框圖流程圖:12.給出以下10個(gè)數(shù)5、9、80、43、95、73、23、17、60、36.要求把其中大于40的數(shù)找出來并輸出,畫出解決該問題的一個(gè)算法流程圖.一輪復(fù)習(xí)13算法與程序框圖解析:可以先把第1個(gè)數(shù)輸入,然后將它與40進(jìn)行比較,若該數(shù)大于40,就輸出,再輸入第2個(gè)數(shù);否則,若該數(shù)小于40,則直接輸入第2個(gè)數(shù),再將第2個(gè)數(shù)與40比較.依次下去,共輸入10次,可利用循環(huán)結(jié)構(gòu)控制輸入的次數(shù),用選擇結(jié)構(gòu)將輸入的數(shù)與40進(jìn)行比較.算法流程圖如圖所示.一輪復(fù)習(xí)13算法與程序框圖第二節(jié)基本算法語句基礎(chǔ)梳理1.三種語句的一般格式和功能

語句

一般格式

功能輸入語句

輸出語句

賦值語句

2.條件語句(1)定義:在執(zhí)行算法時(shí),有時(shí)要根據(jù)一定的條件選擇流程線的方向,我們用

來實(shí)現(xiàn).Read變量輸入信息Print表達(dá)式輸出結(jié)果變量←表達(dá)式將表達(dá)式的值賦給變量條件語句一輪復(fù)習(xí)13算法與程序框圖(2)條件語句的格式IfAThenBElseCEndIfA表示

,B表示滿足條件時(shí)執(zhí)行的操作內(nèi)容,C表示

時(shí)執(zhí)行的操作內(nèi)容,EndIf表示條件語句結(jié)束.3.循環(huán)語句(1)算法中的

是由循環(huán)語句來實(shí)現(xiàn)的.(2)循環(huán)語句的格式判斷的條件不滿足條件循環(huán)結(jié)構(gòu)一輪復(fù)習(xí)13算法與程序框圖當(dāng)型循環(huán)①Whilep

循環(huán)體EndWhile②ForIFrom“初值”To“終值”Step“步長”循環(huán)體EndFor直到型循環(huán)Do

循環(huán)體UntilpEndDoWhile循環(huán)For循環(huán)一輪復(fù)習(xí)13算法與程序框圖題型一輸入、輸出和賦值語句【例1】已知點(diǎn)D(x0,y0)和直線l:Ax+By+C=0,試編寫一個(gè)偽代碼,求D到直線l的距離.典例分析分析根據(jù)點(diǎn)到直線距離公式知,只需求兩個(gè)量Ax0+By0+C,A2+B2,然后賦值給兩個(gè)變量Z1,Z2.故可用順序結(jié)構(gòu)實(shí)現(xiàn).解偽代碼如下:ReadA,B,C,x0,y0Z1←Ax0+By0+CZ2←A2+B2d←Printd一輪復(fù)習(xí)13算法與程序框圖學(xué)后反思編寫偽代碼的關(guān)鍵是搞清問題的算法,特別是算法的結(jié)構(gòu),然后確定采用哪一種算法語句.本題用到解析幾何中的求點(diǎn)到直線的距離公式,在此基礎(chǔ)上確定用順序結(jié)構(gòu)實(shí)現(xiàn)算法.1.(2010·臨沂模擬改編)下列賦值語句中正確的是

.①3←B;②x-y←2;③A←B←-2;④T←T+T.舉一反三解析:①錯(cuò),賦值語句中“←”左邊只能是變量;②錯(cuò),賦值語句不能給一個(gè)表達(dá)式賦值;③錯(cuò),賦值語句只能給一個(gè)變量賦值.答案:④一輪復(fù)習(xí)13算法與程序框圖題型二條件語句

2x2-1,x>0,【例2】已知函數(shù)y=2x+1,x=0,試輸入x的值計(jì)算y的值.畫出

-2x2+4x,x<0,流程圖,并寫出偽代碼.分析因?yàn)閤在不同區(qū)間取值時(shí)對應(yīng)的函數(shù)關(guān)系不一樣,需判斷x的符號,故應(yīng)用條件語句完成.注意條件語句的不同格式.解流程圖如下圖所示.一輪復(fù)習(xí)13算法與程序框圖學(xué)后反思在求分段函數(shù)的函數(shù)值時(shí),由于自變量x的值不同,其函數(shù)值的求法也不同,故先對x的值進(jìn)行判斷,然后根據(jù)其具體值選擇不同的計(jì)算方法,故用條件語句進(jìn)行算法設(shè)計(jì).ReadxIfx>0Theny←2x2-1ElseIfx=0Theny←2x+1Elsey←-2x2+4xEndIfEndIfPrinty偽代碼如下:一輪復(fù)習(xí)13算法與程序框圖2.某商場購物實(shí)行優(yōu)惠措施,若購物金額x在800元以上,打八折;若購物金額x在500元以上,則打9折;否則不打折.設(shè)計(jì)算法流程圖,要求輸入購物金額x,能輸出實(shí)際交款額,并寫出相應(yīng)的偽代碼.舉一反三解析:依照題意,實(shí)際交款額y與購物金額x的函數(shù)關(guān)系如下:

x,x≤500,y=0.9x,500<x≤800,0.8xx>800.一輪復(fù)習(xí)13算法與程序框圖流程圖:偽代碼如下:

Readx

Ifx>800Then

y←0.8x

Else

Ifx>500Then

y←0.9x

Else

y←x

EndIf

EndIf

Printy一輪復(fù)習(xí)13算法與程序框圖題型三循環(huán)語句【例3】高一(2)班共有54名同學(xué)參加數(shù)學(xué)競賽,現(xiàn)已有這54名同學(xué)的競賽分?jǐn)?shù),請?jiān)O(shè)計(jì)一個(gè)將競賽成績優(yōu)秀同學(xué)的平均分輸出的算法(規(guī)定90分以上為優(yōu)秀),畫出流程圖,并寫出偽代碼.分析由于涉及到54名同學(xué)的分?jǐn)?shù),因此可以使用循環(huán)結(jié)構(gòu)控制輸入分?jǐn)?shù),用選擇結(jié)構(gòu)來判斷分?jǐn)?shù)是否高于90分,同時(shí)統(tǒng)計(jì)高于90分的成績的總和和人數(shù),從而求平均分.一輪復(fù)習(xí)13算法與程序框圖解流程圖:偽代碼如下:

S←0M←0ReadxForIFrom1To54Ifx>90ThenS←S+x,M←M+1EndForP←S/MPrintP一輪復(fù)習(xí)13算法與程序框圖學(xué)后反思在解決實(shí)際問題時(shí),要正確理解其中的算法思想,根據(jù)題目寫出其關(guān)系式,再寫出相應(yīng)的算法.在循環(huán)語句中,也可以嵌套條件語句,甚至是循環(huán)語句,此時(shí)需要注意嵌套這些語句需要保證語句的完整性,否則就會造成程序無法執(zhí)行.3.高一(1)班共60人,市青少年保護(hù)中心來抽樣檢測同學(xué)們的身體素質(zhì),要求學(xué)號能被3整除的同學(xué)參加體檢,已知學(xué)生的學(xué)號從1到60號,請畫出輸出參加體檢同學(xué)學(xué)號的流程圖,并寫出偽代碼.舉一反三一輪復(fù)習(xí)13算法與程序框圖解析:流程圖如圖所示:可寫出偽代碼如下:I←0WhileI<60I←I+3PrintIEndWhile題型四算法語句的實(shí)際應(yīng)用【例4】(14分)青年歌手電視大獎(jiǎng)賽共有10名選手參加,并請了12名評委,在計(jì)算每位選手的平均分?jǐn)?shù)時(shí),為了避免個(gè)別評委所給的極端分?jǐn)?shù)的影響,必須去掉一個(gè)最高分和一個(gè)最低分后再求平均分?jǐn)?shù).試設(shè)計(jì)一個(gè)算法解決該問題,要求畫出流程圖,寫出程序(假定分?jǐn)?shù)采用10分制,即每位選手的分?jǐn)?shù)最低為0分,最高為10分).一輪復(fù)習(xí)13算法與程序框圖解算法分析:由于共有12名評委,所以每位選手會有12個(gè)分?jǐn)?shù),我們可以用循環(huán)結(jié)構(gòu)來完成這12個(gè)分?jǐn)?shù)的輸入,同時(shí)設(shè)計(jì)累加變量求出這12個(gè)分?jǐn)?shù)之和.本題的關(guān)鍵在于從這12個(gè)輸入的分?jǐn)?shù)中找出最大數(shù)與最小數(shù),以便從總分中減去這兩個(gè)數(shù).由于每位選手的分?jǐn)?shù)都介于0分和10分之間,故我們可以先假設(shè)其中的最大數(shù)為0,最小數(shù)為10,然后每輸入一個(gè)評委的分?jǐn)?shù),就進(jìn)行一次比較.若輸入的數(shù)大于0,就將其代替最大數(shù);若輸入的數(shù)小于10,就用它代替最小的數(shù);依次比較下去,就能找出這12個(gè)數(shù)中的最大數(shù)與最小數(shù),循環(huán)結(jié)束后,從總和中減去最大數(shù)與最小數(shù),再除以10,就得到該選手最后的平均分?jǐn)?shù).分析此題難度較大,利用循環(huán)結(jié)構(gòu),而循環(huán)結(jié)構(gòu)中還有選擇結(jié)構(gòu),要分清層次.最好先寫算法分析,再畫流程圖,最后寫出偽代碼.一輪復(fù)習(xí)13算法與程序框圖流程圖如圖:偽代碼如下:S←0k←1min←10max←0DoReadxS←S+xIfmax≤xThenmax←xEndIfIfmin≥xThenmin←xEndIfk←k+1Untilk>12EndDoS1←S-max-mina←S1/10Printa一輪復(fù)習(xí)13算法與程序框圖學(xué)后反思在解決實(shí)際問題時(shí),要正確地理解其中的算法思想,根據(jù)題目寫出其關(guān)系式,再寫出相應(yīng)的算法步驟,畫出流程圖,最后準(zhǔn)確地編寫出偽代碼,同時(shí)要注意結(jié)合題意加深對算法的理解.4.在音樂唱片超市里,每張唱片售價(jià)25元,顧客若購買5張以上(含5張)唱片,則按照九折收費(fèi);若顧客購買10張以上(含10張)唱片,則按照八五折收費(fèi),請寫出流程圖和此算法的偽代碼.舉一反三解析:若用變量a表示顧客購買的唱片數(shù),用變量c表示顧客要繳納的金額,則需根據(jù)唱片數(shù)選擇其費(fèi)用的算法,可用選擇結(jié)構(gòu)加以判斷.一輪復(fù)習(xí)13算法與程序框圖流程圖如圖:偽代碼如下:ReadaIfa<5Thenc←25aElseIfa<10Thenc←22.5aElsec←21.25aEndIfEndIfPrintc一輪復(fù)習(xí)13算法與程序框圖考點(diǎn)演練10.(2010·南通二模)下圖是由所輸入的x值計(jì)算y值的一個(gè)偽代碼,若x依次取數(shù)列(n∈N*,n≤2009)的項(xiàng),求所得y值中的最小值.ReadxIfx<5Theny←x2+1Elsey←5xPrinty一輪復(fù)習(xí)13算法與程序框圖解析:當(dāng)n=1,2,3,4,5,6,…時(shí),x依次取5,4

溫馨提示

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

評論

0/150

提交評論