1.學(xué)習(xí)這部分知識的時候,要掌握各種圖形的形狀、作用以及使用規(guī)則
3.程序語言
程序語言是將自然語言和框圖所表達的解決問題的步驟用特定的計算機所識別的低級和高級語言編寫而成。特點:能在計算機上執(zhí)行,但格式要求嚴(yán)格。
程序框圖
2.程序框圖
程序框圖是用規(guī)定的圖形符號來表達算法的具體過程。
優(yōu)點是:簡捷形象、步驟的執(zhí)行方向直觀明了。
描述算法可以用不同的方式。例如:可以用自然語言和數(shù)學(xué)語言加以敘述,也可以借助形式語言(算法語言)給出精銳的說明,也可以用程序框圖直觀的顯示算法全貌。
1.自然語言
自然語言就是人們?nèi)粘J褂玫恼Z言,可以是人之間來交流的語言、術(shù)語等,通過分步的方式來表達出來的解決問題的過程。
其優(yōu)點為:好理解,當(dāng)算法的執(zhí)行都是先后順序時比較容易理解;
缺點是:表達冗長,且不易表達清楚步驟間的重復(fù)操作、分情況處理現(xiàn)象、先后順序等問題。
2.累加變量的值初始值一般取成0,而累乘變量的初始值一般取成1。
例10.相傳古代的印度國王要獎賞國際象棋的發(fā)明者,問他需要什么。發(fā)明者說:陛下,在國際象棋的第一個格子里面放1粒麥子,在第二個格子里面放2粒麥子,第三個格子放4粒麥子,以后每個格子中的麥粒數(shù)都是他前一個格子中麥粒數(shù)的二倍,依此類推(國際象棋棋盤共有64個格子)。請將這些麥子賞給我,我將感激不盡。國王想這還不容易,就讓人扛了一袋小麥,但不到一會兒就沒了,最后一算結(jié)果,全印度一年生產(chǎn)的糧食也不夠。國王很奇怪,小小的“棋盤”,不足100個格子,如此計算怎么能放這么多麥子?試用程序框圖表示一下算法過程。
解析:將實際問題轉(zhuǎn)化為數(shù)學(xué)模型,該問題就是來求的和
點評:對于開放探究問題,我們可以建立數(shù)學(xué)模型(上面的題目要與等比數(shù)列的定義、性質(zhì)和公式聯(lián)系起來)和過程模型來分析好算法,通過設(shè)計算法以及語言的描述選擇一些成熟的辦法進行處理。像上面應(yīng)用到了等比數(shù)列的通項公式和前n項和公式。
題型1:算法概念
例1.下列說法正確的是( )
A.算法就是某個問題的解題過程;
B.算法執(zhí)行后可以產(chǎn)生不同的結(jié)果;
C.解決某一個具體問題算法不同結(jié)果不同;
D.算法執(zhí)行步驟的次數(shù)不可以為很大,否則無法實施。
解析:答案為選項B;選項B,例如:判斷一個整數(shù)是否為偶數(shù),結(jié)果為“是偶數(shù)”和“不是偶數(shù)”兩種;選項A ,算法不能等同于解法;選項C,解決某一個具體問題算法不同結(jié)果應(yīng)該相同,否則算法構(gòu)造的有問題;選項D,算法可以為很多次,但不可以無限次。
點評:算法一般是機械的,有時需要進行大量的重復(fù)計算。只要按部就班去做,總能算出結(jié)果。通常把算法過程稱為“數(shù)學(xué)機械化”。數(shù)學(xué)機械化的最大優(yōu)點是它可以借助計算機來完成;實際上處理任何問題都需要算法。如:中國象棋有中國象棋的棋譜、走法、勝負(fù)的評判準(zhǔn)則;而國際象棋有國際象棋的棋譜、走法、勝負(fù)的評判準(zhǔn)則;再比如申請出國有一系列的先后手續(xù),購買物品也有相關(guān)的手續(xù)……。
例2.下列語句中是算法的個數(shù)為( )
①從濟南到巴黎:先從濟南坐火車到北京,再坐飛機到巴黎;
②統(tǒng)籌法中“燒水泡茶”的故事;
③測量某棵樹的高度,判斷其是否是大樹;
④已知三角形的一部分邊長和角,借助正余弦定理求得剩余的邊角,再利用三角形的面積公式求出該三角形的面積。
A.1 B.2 C.3 D.4
解析:正確選項為C,③中我們對“樹的大小”沒有明確的標(biāo)準(zhǔn),無法完成任務(wù),不是有效的算法構(gòu)造。①中,勾畫了從濟南到巴黎的行程安排,完成了任務(wù);②中,節(jié)約時間,燒水泡茶完成了任務(wù);④中,純數(shù)學(xué)問題,借助正、余弦定理解三角形,進而求出三角形的面積。
點評:算法過程要做到能一步一步的執(zhí)行,每一步執(zhí)行的操作,必須確切,不能含混不清,且在有限步后的必須得到問題的結(jié)果。
題型2:經(jīng)典算法
例3.一個人帶著三只狼和三只羚羊過河,只有一條船,同船可容納一個人和兩只動物,沒有人在的時候,如果狼的數(shù)量不少于羚羊的數(shù)量就會吃羚羊。該人如何將動物轉(zhuǎn)移過河?請設(shè)計算法?
解析:任何動物同船不用考慮動物的爭斗但需考慮承載的數(shù)量,還應(yīng)考慮到兩岸的動物都得保證狼的數(shù)量要小于羚羊的數(shù)量,故在算法的構(gòu)造過程中盡可能保證船里面有狼,這樣才能使得兩岸的羚羊數(shù)量占到優(yōu)勢,具體算法如下:
算法步驟:
第一步:人帶兩只狼過河,并自己返回;
第二步:人帶一只狼過河,自己返回;
第三步:人帶兩只羚羊過河,并帶兩只狼返回;
第四步:人帶一只羊過河,自己返回;
第五步:人帶兩只狼過河。
點評:算法是解決某一類問題的精確描述,有些問題使用形式化、程序化的刻畫是最恰當(dāng)?shù)。這就要求我們在寫算法時應(yīng)精練、簡練、清晰地表達,要善于分析任何可能出現(xiàn)的情況,體現(xiàn)思維的嚴(yán)密性和完整性。本題型解決問題的算法中某些步驟重復(fù)進行多次才能解決,在現(xiàn)實生活中,很多較復(fù)雜的問題經(jīng)常遇到這樣的問題,設(shè)計算法的時候,如果能夠合適地利用某些步驟的重復(fù),不但可以使得問題變得簡單,而且可以提高工作效率。
例4.這是中國古代的一個著名算法案例:一群小兔一群雞,兩群合到一群里,要數(shù)腿48,要數(shù)腦袋17,多少小兔多少雞?
解析:求解雞兔的問題簡單直觀,卻包含著深刻的算法思想。應(yīng)用解二元一次方程組的方法來求解雞兔同籠問題。
第一步:設(shè)有小雞x只,小兔y只,則有
第二步:將方程組中的第一個方程兩變乘-2加到第二個方程中去,得到,得到y(tǒng)=7;
第三步:將y=7代入(1)得x=10。
點評:解決這些問題的基本思想并不復(fù)雜,很清晰,但敘述起來很煩瑣,有的步驟非常多,有的計算量很大,有時候完全依靠人力完成這些工作很困難。但是這些恰恰是計算機的長處,它能不厭其煩的枯燥的、重復(fù)的、繁瑣的工作。但算法也有優(yōu)劣,我們要追求高效。
題型3:順序結(jié)構(gòu)
例5.寫出通過尺軌作圖確定線段AB一個5等分點的算法。
解析:我們借助于平行線定理,把位置的比例關(guān)系變成已知的比例關(guān)系,只要按照規(guī)則一步一步去做就能完成任務(wù)。
算法分析:
第一步:從已知線段的左端點A出發(fā),任意作一條與AB不平行的射線AP;
第二步:在射線上任取一個不同于端點A的點C,得到線段AC;
第三步:在射線上延AC的方向截取線段CE=AC;
第四步:在射線上延AC的方向截取線段EF=AC;
第五步:在射線上延AC的方向截取線段FG=AC;
第六步:在射線上延AC的方向截取線段GD=AC,那么線段AD=5AB;
第七步:連接DB;
第八步:過C作BD的平行線,交線段AB于M,這樣點M就是線段AB的一個5等分點。
程序框圖:
點評:這個算法步驟具有一般性,對于任意自然數(shù)n,都可以按照這個算法的思想,設(shè)計出確定線段的n等分點的步驟,解決問題。
例6.有關(guān)專家建議,在未來幾年內(nèi),中國的通貨膨脹率保持在3%左右,這將對我國經(jīng)濟的穩(wěn)定有利無害。所謂通貨膨脹率為3%,指的是每年消費品的價格增長率為3%。在這種情況下,某種品牌的鋼琴2004年的價格是10 000元,請用流程圖描述這種鋼琴今后四年的價格變化情況,并輸出四年后的價格。
解析:用P表示鋼琴的價格,不難看出如下算法步驟:
2005年P(guān)=10000×(1+3%)=10300;
2006年P(guān)=10300×(1+3%)=10609;
2007年P(guān)=10609×(1+3%)=10927.27;
2008年P(guān)=10927.27×(1+3%)=11255.09;
因此,價格的變化情況表為:
年份 |
2004 |
2005 |
2006 |
2007 |
2008 |
鋼琴的價格 |
10000 |
10300 |
10609 |
10927.27 |
11255.09 |
程序框圖為:
點評:順序結(jié)構(gòu)只須嚴(yán)格按照傳統(tǒng)的解決數(shù)學(xué)問題的解題思路,將問題解決掉。最后將解題步驟 “細(xì)化”就可以!凹(xì)化”指的是寫出算法步驟、畫出程序框圖。
題型4:條件結(jié)構(gòu)
例7.設(shè)計算法判斷一元二次方程是否有實數(shù)根,并畫出相應(yīng)的程序框圖。
解析:算法步驟如下:
第一步:輸入一元二次方程的系數(shù):a,b,c;
第二步:計算△的值;
第三步:判斷△≥0是否成立。若△≥0成立,輸出“方程有實根”;否則輸出“方程無實根”。結(jié)束算法。
相應(yīng)的程序框圖如下:
點評:根據(jù)一元二次方程的意義,需要計算判別式△的值。再分成兩種情況處理:(1)當(dāng)△≥0時,一元二次方程有實數(shù)根;(2)當(dāng)△<0時,一元二次方程無實數(shù)根。該問題實際上是一個分類討論問題,根據(jù)一元二次方程系數(shù)的不同情況,最后結(jié)果就不同。因而當(dāng)給出一個一元二次方程時,必須先確定判別式的值,然后再用判別式的值的取值情況確定方程是否有解。該例僅用順序結(jié)構(gòu)是辦不到的,要對判別式的值進行判斷,需要用到條件結(jié)構(gòu)。
例8.(1)設(shè)計算法,求的解,并畫出流程圖。
解析:對于方程來講,應(yīng)該分情況討論方程的解。
我們要對一次項系數(shù)a和常數(shù)項b的取值情況進行分類,分類如下:
(1)當(dāng)a≠0時,方程有唯一的實數(shù)解是;
(2)當(dāng)a=0,b=0時,全體實數(shù)都是方程的解;
(3)當(dāng)a=0,b≠0時,方程無解。
聯(lián)想數(shù)學(xué)中的分類討論的處理方式?傻萌缦滤惴ú襟E:
第一步:判斷a是否不為零。若成立,輸出結(jié)果“解為”;
第二步:判斷a=0,b=0是否同時成立。若成立,輸出結(jié)果“解集為R”;
第三步:判斷a=0,b≠0是否同時成立。若成立,輸出結(jié)果“方程無解”,結(jié)束。
程序框圖:
(2)。設(shè)計算法,找出輸入的三個不相等實數(shù)a、b、c中的最大值,并畫出流程圖。
解析:算法步驟:
第一步:輸入a,b,c的值;
第二步:判斷a>b是否成立,若成立,則執(zhí)行第三步;否則執(zhí)行第四步;
第三步:判斷a>c是否成立,若成立,則輸出a,并結(jié)束;否則輸出c,并結(jié)束;
第四步:判斷b>c是否成立,若成立,則輸出b,并結(jié)束;否則輸出c,并結(jié)束。
程序框圖:
點評:條件結(jié)構(gòu)嵌套與條件結(jié)構(gòu)疊加的區(qū)別是:
(1)條件結(jié)構(gòu)疊加,程序執(zhí)行時需依次對“條件1”、“條件2”、“條件3”……都進行判斷只有遇到能滿足的條件才執(zhí)行該條件對應(yīng)的操作。
(2)條件結(jié)構(gòu)的嵌套中,“條件2”是“條件1”的一個分支,“條件3”是“條件2”的一個分支,……依此類推,這些條件中很多在算法執(zhí)行過程中根據(jù)所處的分支位置不同可能不被執(zhí)行。
(3)條件結(jié)構(gòu)嵌套所涉及的“條件2”、“條件3”……是在前面的所有條件依次一個一個的滿足“分支條件成立”的情況下才能執(zhí)行的此操作,是多個條件同時成立的疊加和復(fù)合。
題型5:循環(huán)結(jié)構(gòu)
例9.設(shè)計一個算法,求的值,并劃出程序框圖。。
解析:算法步驟:
第一步:sum=0;
第二步:i=0;
第三步:sum=sum+2i;
第四步:i=i+1;
第五步:判斷i是否大于49,若成立,則輸出sum,結(jié)束;否則返回第三步重新執(zhí)行。
程序框圖:
點評:
1.如果算法問題里涉及的運算進行了許多次重復(fù)的操作,且先后參與運算的數(shù)之間有相同的規(guī)律,就可引入變量循環(huán)參與運算(我們稱之為循環(huán)變量),應(yīng)用于循環(huán)結(jié)構(gòu)。在循環(huán)結(jié)構(gòu)中,要注意根據(jù)條件設(shè)計合理的計數(shù)變量、累加和累乘變量及其個數(shù)等,特別要求條件的表述要恰當(dāng)、精確。
3.幾種重要的結(jié)構(gòu)
(1)順序結(jié)構(gòu)
順序結(jié)構(gòu)是最簡單的算法結(jié)構(gòu),語句與語句之間,框與框之間是按從上到下的順序進行的。它是由若干個依次執(zhí)行的步驟組成的,它是任何一個算法都離不開的一種基本算法結(jié)構(gòu)。
見示意圖和實例:
順序結(jié)構(gòu)在程序框圖中的體現(xiàn)就是用流程線將程序框自上而下地連接起來,按順序執(zhí)行算法步驟。如在示意圖中,A框和B框是依次執(zhí)行的,只有在執(zhí)行完A框指定的操作后,才能接著執(zhí)行B框所指定的操作。
(2)條件結(jié)構(gòu)
如下面圖示中虛線框內(nèi)是一個條件結(jié)構(gòu),此結(jié)構(gòu)中含有一個判斷框,算法執(zhí)行到此判斷給定的條件P是否成立,選擇不同的執(zhí)行框(A框、B框)。無論P條件是否成立,只能執(zhí)行A框或B框之一,不可能既執(zhí)行A框又執(zhí)行B框,也不可能A框、B框都不執(zhí)行。A框或B框中可以有一個是空的,即不執(zhí)行任何操作。
見示意圖
(3)循環(huán)結(jié)構(gòu)
在一些算法中要求重復(fù)執(zhí)行同一操作的結(jié)構(gòu)稱為循環(huán)結(jié)構(gòu)。即從算法某處開始,按照一定條件重復(fù)執(zhí)行某一處理過程。重復(fù)執(zhí)行的處理步驟稱為循環(huán)體。
循環(huán)結(jié)構(gòu)有兩種形式:當(dāng)型循環(huán)結(jié)構(gòu)和直到型循環(huán)結(jié)構(gòu)。
①當(dāng)型循環(huán)結(jié)構(gòu),如左下圖所示,它的功能是當(dāng)給定的條件P成立時,執(zhí)行A框,A框執(zhí)行完畢后,返回來再判斷條件P是否成立,如果仍然成立,返回來再執(zhí)行A框,如此反復(fù)執(zhí)行A框,直到某一次返回來判斷條件P不成立時為止,此時不再執(zhí)行A框,離開循環(huán)結(jié)構(gòu)。繼續(xù)執(zhí)行下面的框圖。
②直到型循環(huán)結(jié)構(gòu),如右下圖所示,它的功能是先執(zhí)行重復(fù)執(zhí)行的A框,然后判斷給定的條件P是否成立,如果P仍然不成立,則返回來繼續(xù)執(zhí)行A框,再判斷條件P是否成立。以次重復(fù)操作,直到某一次給定的判斷條件P時成立為止,此時不再返回來執(zhí)行A框,離開循環(huán)結(jié)構(gòu)。繼續(xù)執(zhí)行下面的框圖。
見示意圖
1.算法的概念
(1)算法的定義:廣義的算法是指完成某項工作的方法和步驟,那么我們可以說洗衣機的使用說明書是操作洗衣機的算法,菜譜是做菜的算法等等。
在數(shù)學(xué)中,現(xiàn)代意義的算法是指可以用計算機來解決的某一類問題的程序和步驟,這些程序或步驟必須是明確和有效的,而且能夠在有限步之內(nèi)完成。
(2)算法的特征:①確定性:算法的每一步都應(yīng)當(dāng)做到準(zhǔn)確無誤、“不重不漏”!安恢亍笔侵覆皇强捎锌蔁o的、甚至無用的步驟,“不漏” 是指缺少哪一步都無法完成任務(wù)。②邏輯性:算法從開始的“第一步”直到“最后一步”之間做到環(huán)環(huán)相扣。分工明確,“前一步”是“后一步”的前提, “后一步”是“前一步”的繼續(xù)。③有窮性:算法要有明確的開始和結(jié)束,當(dāng)?shù)竭_終止步驟時所要解決的問題必須有明確的結(jié)果,也就是說必須在有限步內(nèi)完成任務(wù),不能無限制的持續(xù)進行。
(3)算法的描述:自然語言、程序框圖、程序語言。
算法是高中數(shù)學(xué)課程中的新內(nèi)容,本章的重點是算法的概念和算法的三種邏輯結(jié)構(gòu)。
預(yù)測2007年高考對本章的考察是:以選擇題或填空題的形式出現(xiàn),分值在5分左右,考察的熱點是算法的概念。
湖北省互聯(lián)網(wǎng)違法和不良信息舉報平臺 | 網(wǎng)上有害信息舉報專區(qū) | 電信詐騙舉報專區(qū) | 涉歷史虛無主義有害信息舉報專區(qū) | 涉企侵權(quán)舉報專區(qū)
違法和不良信息舉報電話:027-86699610 舉報郵箱:58377363@163.com