資源簡介 課時1 算法的概念及描述課時目標1.理解算法的定義、特征及要素。2.初步掌握使用自然語言、流程圖、偽代碼描述簡單算法,了解常用的計算機程序設(shè)計語言。3.掌握繪制簡單算法的流程圖。1.算法“算法”是指解決問題或完成任務(wù)的一系列步驟。在計算機科學(xué)領(lǐng)域,“算法”指的是用計算機解決問題的步驟,是為了解決問題而需要讓計算機有序執(zhí)行的、無歧義的、有限步驟的集合。2.算法的特征①有窮性:一個算法的處理步驟必須是有限的。②可行性:算法中的每一步操作與要求都應(yīng)該是現(xiàn)實中可以實施,能在有限的時間內(nèi)完成。③確定性:算法中對于每一步的執(zhí)行描述必須是明確的。④有0個或多個輸入:算法被執(zhí)行時,初始數(shù)據(jù)可以從外部獲取,也可以包含在算法中。⑤有1個或多個輸出:算法必須包含至少一個輸出,以告訴外界問題求解的結(jié)果。3.算法的要素用計算機解決問題,本質(zhì)上是以“數(shù)據(jù)計算”的方式來實現(xiàn)的。①數(shù)據(jù):用算法解決問題時,必須明確參與運算的初始數(shù)據(jù)、運算時產(chǎn)生的中間數(shù)據(jù)以及代表問題解決的結(jié)果數(shù)據(jù)。②運算:在對數(shù)據(jù)進行運算時,必須明確每一步的運算是什么、對哪些數(shù)據(jù)進行運算等。③控制轉(zhuǎn)移:在算法執(zhí)行過程中,有時需要根據(jù)數(shù)據(jù)或運算結(jié)果的特點進行不同的處理,需要運用控制轉(zhuǎn)移來執(zhí)行不同的操作。4.常見的算法描述方式常見的算法描述方式有自然語言、流程圖、偽代碼、程序設(shè)計語言等。5.流程圖流程圖用一些圖形符號表示規(guī)定的操作,并用帶箭頭的流程線連接這些圖形符號,表示操作進行的方向。常見的流程圖基本圖形及功能圖形 名稱 功能開始/結(jié)束符 表示算法的開始或結(jié)束輸入/輸出框 表示算法中數(shù)據(jù)的輸入或輸出處理框 表示算法中數(shù)據(jù)的運算處理判斷框 表示算法中的條件判斷流程線 表示算法中的流向連接點 表示算法中的轉(zhuǎn)接6.偽代碼的語法約定(1)條件判斷語句格式1:if條件then (語句序列1) else (語句序列2)格式2:if條件then (語句序列1)(2)循環(huán)語句格式:while條件 (循環(huán)體)例1 下列關(guān)于算法的概念及描述,說法正確的是 ( )A.算法的一個步驟可以被執(zhí)行多次B.算法必須包括一個或多個輸入C.算法就是數(shù)學(xué)運算方法D.算法只能用自然語言進行描述答案 A解析 本題考查算法的概念和特征。A選項循環(huán)結(jié)構(gòu)可以實現(xiàn)多次執(zhí)行同一步驟。B選項可以沒有輸入。C選項算法還包含解決問題的方法和步驟,數(shù)學(xué)運算方法是建模。D選項算法可以用自然語言、流程圖、偽代碼等方法來表示。變式訓(xùn)練1 下列關(guān)于算法及算法的特征的描述,正確的是 ( )A.算法必須使用計算機借助用某種語言實現(xiàn)B.自然語言不能用來表示算法,而流程圖可以C.任何一個算法都必須有數(shù)據(jù)輸入D.算法必須有問題求解的結(jié)果,包含至少一個輸出答案 D解析 本題考查算法的特征及其描述方式。廣義的算法指的是解決問題的方法和步驟,不是所有的算法都需要計算機語言來實現(xiàn),A選項錯誤。B選項錯誤,算法的描述方法有自然語言、流程圖、偽代碼及計算機語言。C選項,算法的特征可以沒有輸入,但是必須要有輸出。例2 計算機編程解決“斐波那契數(shù)列(每一項都是前兩項之和)”問題的過程由以下4個步驟組成:①用Python中的循環(huán)結(jié)構(gòu)編寫程序②調(diào)試運行程序,發(fā)現(xiàn)錯誤并進行修正③設(shè)計算法:設(shè)計輸入、處理、輸出等一系列算法④抽象與建模:用數(shù)學(xué)符號F(0)=F(1)=1,F(n)=F(n-1)+F(n-2)(n≥2,n∈N)描述解決問題的計算模型正確的順序是 ( )A.①②③④ B.③④①② C.④③②① D.④③①②答案 D解析 本題考查算法的表示。先抽象建模,再設(shè)計算法,接編寫程序,最后調(diào)試運行程序。變式訓(xùn)練2 “梅森素數(shù)”指的是符合條件m=2p-1,其中指數(shù)p與整數(shù)m均為素數(shù)。小李想找出10000以內(nèi)所有的“梅森素數(shù)”,設(shè)計算法過程如下:①設(shè)計核心算法:如何判斷素數(shù)②調(diào)試運行程序,重點檢測邊界條件③借助Python語言,具體編程實現(xiàn)④將問題抽象成條件的判斷與素數(shù)的判斷,并完成建模下列選項中,解決該問題的過程正確次序是 ( )A.①②③④ B.②①④③C.④①③② D.①④②③答案 C解析 本題考查算法的表示。抽象建模是第一步,設(shè)計算法是第二步,計算機編程實現(xiàn)是第三步,調(diào)試程序是最后一步。例3 某算法的自然語言描述與流程圖表示分別如下:自然語言第1步:輸入一個實數(shù)x第2步:判斷x與0的大小關(guān)系,若x<0,則y=2x-1,否則y=x2-1第3步:輸出y的值第4步:算法結(jié)束則流程圖中處理框①、②處可分別填入的是 ( )A.①y←x2-1 ②x←2x-1B.①y←x2-1 ②y←2x-1C.①y←2x-1 ②y←x2-1D.①x←x2-1 ②y←2x-1答案 B解析 對于同一個算法,可以用不同的表示方法來描述。分析自然語言描述和流程圖描述,可知自然語言中的第2步,對應(yīng)著流程圖中的判斷部分。由自然語言可知,處理框①和②處的功能是求y的值。在執(zhí)行過程中,當(dāng)條件“x<0 ”不成立時,會執(zhí)行①,否則會執(zhí)行②。對照自然語言描述,處理框②處是在求解當(dāng)“x<0 ”成立時的y值,即“y←2x-1”;處理框①處是在求解當(dāng)“x<0 ”不成立時的y值,即“y←x2-1”。因此,答案為B。變式訓(xùn)練3 某算法的自然語言描述與流程圖表示分別如下:自然語言輸入a、b的值如果a≥b,則c←a×(b+1),否則c←a×(b-1)輸出c的值算法結(jié)束則流程圖中處理框①、②處可分別填入的是 ( )A.①c←b×(a-1) ②b×(a+1)B.①b×(a+1) ②c←b×(a-1)C.①a×(b+1) ②c←a×(b-1)D.①c←a×(b-1) ②c←a×(b+1)答案 D解析 本題采用偽代碼和流程圖來描述算法。從偽代碼可知,處理框①和②處的功能是求c的值。在執(zhí)行過程中,當(dāng)條件“a≥b”成立時,會轉(zhuǎn)向②處執(zhí)行,否則,轉(zhuǎn)向①處執(zhí)行,即處理框①處的代碼為c←a×(b-1),②處的代碼為c←a×(b+1)。因此,答案為D。變式訓(xùn)練4 下列能準確表達“如果明天不下雨,那么我們騎車去郊游”的偽代碼是 ( )A.if (明天下雨) then (我們騎車去郊游)B.if (明天不下雨) then (我們騎車去郊游) else (我們不去郊游)C.if (明天下雨) then (我們不去郊游) else (我們騎車去郊游)D.if (明天不下雨) then (我們騎車去郊游)答案 D解析 本題主要考查的是用偽代碼來表示條件判斷語句。題目要表達的意思僅是“如果明天不下雨,那么我們騎車去郊游”;如果明天下雨,我們可能不去郊游,也可能是通過其他交通工具去郊游。因此,答案為D。變式訓(xùn)練5 某算法用偽代碼描述如下。輸入兩個正整數(shù)x,yif x關(guān)于上述算法,下列說法正確的是 ( )A.不符合“可行性”特征B.無法用流程圖來描述C.運用了循環(huán)結(jié)構(gòu)的控制轉(zhuǎn)移D.z為正整數(shù)x與y差的一半答案 D解析 本題要求對算法及其描述進行全面的理解。題中用偽代碼描述的算法,其每一個步驟都有明確的作用和含義,符合“可行性”等算法特征。本題算法可以用自然語言、流程圖等方式來描述。由偽代碼可知,該算法運用了分支結(jié)構(gòu)的控制轉(zhuǎn)移。為了保證x、y的差為正,需要對x與y的大小關(guān)系進行判斷,z為正整數(shù)x與y差的一半,因此,答案為D。 1.算法就是解決問題的方法和步驟,下列關(guān)于算法的描述,正確的是 ( )A.算法是對程序的描述,程序決定算法B.一個問題的算法是唯一的,而程序可以有多個C.算法只能用流程圖表示D.到超市購物的一系列活動流程與策略就是所謂的算法答案 D解析 本題考查算法的相關(guān)知識。A選項算法決定程序而非程序決定算法,用計算機編程解決問題時先設(shè)計算法,再用程序語言來編程實現(xiàn)算法;B選項一個問題的算法可以有多個,而程序也可以有多個;C選項算法有多種表示方法,自然語言,流程圖,偽代碼以及程序語言。2.求100以內(nèi)所有能被3整除的自然數(shù)之和,算法如下:①1賦值給變量i;②判斷i除以3的余數(shù)是否為0,若是,則將該數(shù)累加到變量sum中;③將變量i加1,若i小于或等于100,轉(zhuǎn)②;④輸出變量sum的值;⑤算法結(jié)束。該算法采用的描述方法屬于 ( )A.流程圖 B.偽代碼C.自然語言 D.計算機程序語言答案 C解析 本題主要考查的是算法的描述方法。本題算法的描述方法是自然語言。3.不能用算法描述“輸出所有完全平方數(shù)”,是因為該任務(wù)不符合算法特征中的 ( )A.確定性 B.有0個或多個輸入C.有窮性 D.有1個或多個輸出答案 C解析 本題主要考查算法的特征。輸出所有完全平方數(shù),是無窮的,因此它違背了算法的有窮性特征。4.下列步驟是用計算機解決物質(zhì)密度計算問題時經(jīng)歷的三個階段:①編制計算機程序,用計算機進行處理,并調(diào)試程序②設(shè)計“根據(jù)物質(zhì)的質(zhì)量與體積計算密度”的算法③獲取物質(zhì)的質(zhì)量與體積,找出其與物質(zhì)密度的關(guān)系,建立計算模型上述階段的正確順序是 ( )A.③②① B.③①② C.①②③ D.①③②答案 A解析 本題考查計算機解決問題的一般過程。用計算機解決問題時,由于實際問題情境的復(fù)雜性,需要先對實際問題進行抽象與建模,再根據(jù)建立的計算模型設(shè)計算法,并將算法用合適的方式加以準確描述。5.某算法的流程圖如圖所示,執(zhí)行該算法,當(dāng)x的值為4時,則輸出y的值為 ( )A.9 B.10 C.11 D.12答案 B解析 本題主要考查的是流程圖。輸入的x的值為4,不滿足條件“x≤0 ”,因此執(zhí)行y←3x-2,y=10,因此答案為B。一、基礎(chǔ)鞏固 1.下列問題不能用算法描述的是 ( )A.已知a、b、c的值,求一元二次方程ax2+bx+c=0(a≠0)的實數(shù)解B.計算某個班級英語成績的平均分C.列出方程y=2x+1的所有實數(shù)解D.根據(jù)矩形的長和寬求面積答案 C解析 C選項不符合算法有窮性特征。2.(多選)下列關(guān)于算法的描述,正確的有 ( )A.廣義地講,“算法”指的是解決問題或完成任務(wù)的一系列步驟B.算法有多種不同的描述方式C.不能用算法描述“輸出所有素數(shù)”是因為這不符合算法特征中的“確定性”D.算法的第一個執(zhí)行步驟必須是數(shù)據(jù)輸入E.通過算法讓計算機解決問題時,數(shù)據(jù)、運算及控制轉(zhuǎn)移成為算法的要素答案 ABE3.關(guān)于算法,下列敘述正確的是 ( )A.解決任何一個具體問題只有一種算法B.流程圖是算法的一種表示形式C.一種算法只能用一種程序語言來實現(xiàn)D.算法是解題方法的精確描述,它可以有無限個步驟答案 B解析 解決問題的算法可以有多個。4.用于求變量s的值的算法如下:①變量s的初值是0,變量n的初值是1。②若變量n的值大于100,則轉(zhuǎn)到步驟⑤。③s←s+(-1)n-1×n。④n的值增加1,轉(zhuǎn)到步驟②。⑤輸出s的值。⑥結(jié)束。下列數(shù)學(xué)表達式中,其計算結(jié)果與上述算法執(zhí)行后變量s的值相等的是 ( )A.1+2+3+…+100 B.-1-2-3-…-100C.1-2+3-4+…-100 D.-1+2-3+4…+100答案 C解析 隨著n的變化,(-1)n-1實現(xiàn)1和-1之間的交替變化,當(dāng)n大于100時,結(jié)束運行。5.用偽代碼描述算法:①輸入a、b的值;②c←a;③a←b;④b←c;⑤輸出a、b的值;當(dāng)輸入a的值為3,b的值為5時,輸出結(jié)果中a和b的值分別為 ( )A.3 5 B.3 3 C.5 5 D.5 3答案 D解析 算法實現(xiàn)兩個變量值發(fā)生交換。6.關(guān)于下面流程圖功能的描述正確的是 ( )A.輸入一個數(shù),輸出它的相反數(shù)B.輸入一個數(shù),若其小于或等于0,則輸出該數(shù)的相反數(shù)C.輸入一個數(shù),輸出其絕對值D.輸入一個數(shù),若其大于0,則輸出該數(shù)本身,若其小于0,則輸出該數(shù)的相反數(shù)答案 C解析 本題主要考查的是對算法及對流程圖功能的理解。7.古代數(shù)學(xué)家歐幾里得在《幾何原本》中提出“輾轉(zhuǎn)相除法”,利用該算法可以求出任意兩個正整數(shù)的最大公約數(shù)。用“輾轉(zhuǎn)相除法”計算正整數(shù)m和n的最大公約數(shù)的步驟如下:①輸入兩個正整數(shù)m和n②若m③以m除以n,相除得到的余數(shù)為r④若r=0,則輸出n的值,算法結(jié)束;否則執(zhí)行步驟⑤⑤令m=n,n=r,返回步驟③繼續(xù)執(zhí)行。若輸入的兩個正整數(shù)分別為243、78,則輸出的結(jié)果是 ( )A.78 B.9 C.3 D.6答案 C解析 本題考查理解自然語言表述的算法并運用。輾轉(zhuǎn)相除法計算兩個正整數(shù)的最大公約數(shù),教材上也有體現(xiàn)。8.某算法用偽代碼描述如下:下列有關(guān)上述算法的說法,正確的是 ( )A.該算法違反了算法有窮性原則B.該算法實現(xiàn)了找出A和B中的最大值A(chǔ)C.該算法屬于分支結(jié)構(gòu)D.該算法無法使用流程圖來描述答案 A解析 本題考查算法的表示。如果條件A=B時,會產(chǎn)生死循環(huán),因此算法違反了有窮性原則,不能完全實現(xiàn)找出A和B中的最大值A(chǔ)。二、能力提升9.某算法描述如下:①將0賦值給變量Num,將10賦值給變量Max,將9賦值給變量i②若i除以3余2、除以5余3、除以7余2,則將變量Num的值增加1并輸出i③變量i的值增加1,若變量Num小于變量Max,則轉(zhuǎn)②④結(jié)束對于上述算法,下列說法錯誤的是 ( )A.該算法是用自然語言來描述的B.該算法符合有窮性的特征C.該算法最后輸出10個數(shù)值D.該算法轉(zhuǎn)換成流程圖只需用到一個選擇框答案 D解析 該算法是用自然語言來描述的,從③語句來看,是一個循環(huán)結(jié)構(gòu),循環(huán)變量是Num,他的初值是0,條件是小于10,每次遞增1,那么Num取值范圍是0-9,從②語句來看,把符合三個條件的i輸出,同時變量Num增加1,可見輸出10個數(shù)據(jù)。這是一個循環(huán)結(jié)構(gòu)包含選擇結(jié)構(gòu),因此有兩個判斷框。10.統(tǒng)計投硬幣1000次出現(xiàn)正面這一概率實驗的算法步驟如下:①將i,k分別賦初值0;②用隨機函數(shù)產(chǎn)生一個數(shù)來模擬硬幣的正反面,若隨機數(shù)在[0,0.5)之間,k的值加1;③i的值加1,若i<1000,則轉(zhuǎn)②;④輸出結(jié)果k/1000,結(jié)束。對于上述算法,下列說法錯誤的是 ( )A.變量k代表正面次數(shù)B.該算法的循環(huán)結(jié)構(gòu)內(nèi)部包含了選擇結(jié)構(gòu)C.該算法主要體現(xiàn)了枚舉思想D.該算法沒有輸入,因此不符合算法的基本特征答案 D解析 題目中描述隨機數(shù)在[0,0.5)之間,k的值加1,輸出結(jié)果k/1000,因此k表示正面的次數(shù)。從語句③來看,是一個循環(huán)結(jié)構(gòu),從語句②來看,是一個選擇結(jié)構(gòu),在1000次模擬正反面實驗中統(tǒng)計正面出現(xiàn)次數(shù)。算法可以沒有輸入,但必須有輸出。11.描述某算法的偽代碼如下。輸入兩個正整數(shù)m、nr ←m除以n的余數(shù)while r≠0 (m←n,n←r,r←m除以n的余數(shù))輸出n(1)執(zhí)行上述算法,如果輸入m、n的值分別為24、16,那么輸出n的值為 。 (2)請用流程圖描述上述算法。答案 (1)8(2)解析 本題主要考查的是對算法及其描述進行全面的理解。題目用偽代碼描述算法,其功能是求正整數(shù)m、n的最大公約數(shù)。四種算法描述方法的優(yōu)缺點對比自然語言 流程圖 偽代碼 計算機語言優(yōu)點 通俗易懂 結(jié)構(gòu)清晰、寓意明確 直觀簡潔、寫法靈活 能讓計算機理解并執(zhí)行缺點 容易產(chǎn)生歧義 情況復(fù)雜時,過多的流程線影響算法的理解 錯誤不易排查,計算機無法理解并執(zhí)行 有一定程序設(shè)計語言基礎(chǔ)的人才能看懂(共42張PPT)課時1 算法的概念及描述第二章 算法與問題解決1.理解算法的定義、特征及要素。2.初步掌握使用自然語言、流程圖、偽代碼描述簡單算法,了解常用的計算機程序設(shè)計語言。3.掌握繪制簡單算法的流程圖。目 錄CONTENTS知識梳理01例題精析02隨堂檢測03鞏固與提升04知識梳理11.算法“算法”是指________________________________。在計算機科學(xué)領(lǐng)域,“算法”指的是用計算機解決問題的步驟,是為了解決問題而需要讓計算機______________________、__________的集合。解決問題或完成任務(wù)的一系列步驟有序執(zhí)行的、無歧義的有限步驟2.算法的特征①有窮性:一個算法的處理步驟必須是______的。②________:算法中的每一步操作與要求都應(yīng)該是現(xiàn)實中可以實施,能在有限的時間內(nèi)完成。③確定性:算法中對于每一步的執(zhí)行描述必須是______的。④__________________:算法被執(zhí)行時,初始數(shù)據(jù)可以從外部獲取,也可以包含在算法中。⑤__________________:算法必須包含至少一個輸出,以告訴外界問題求解的結(jié)果。有限可行性明確有0個或多個輸入有1個或多個輸出3.算法的要素用計算機解決問題,本質(zhì)上是以“數(shù)據(jù)計算”的方式來實現(xiàn)的。①______:用算法解決問題時,必須明確參與運算的初始數(shù)據(jù)、運算時產(chǎn)生的中間數(shù)據(jù)以及代表問題解決的結(jié)果數(shù)據(jù)。②______:在對數(shù)據(jù)進行運算時,必須明確每一步的運算是什么、對哪些數(shù)據(jù)進行運算等。③__________:在算法執(zhí)行過程中,有時需要根據(jù)數(shù)據(jù)或運算結(jié)果的特點進行不同的處理,需要運用控制轉(zhuǎn)移來執(zhí)行不同的操作。數(shù)據(jù)運算控制轉(zhuǎn)移4.常見的算法描述方式常見的算法描述方式有自然語言、________、偽代碼、______________等。流程圖程序設(shè)計語言5.流程圖流程圖用一些圖形符號表示規(guī)定的操作,并用帶箭頭的流程線連接這些圖形符號,表示操作進行的方向。常見的流程圖基本圖形及功能圖形 名稱 功能開始/結(jié)束符 表示算法的開始或結(jié)束輸入/輸出框 表示算法中數(shù)據(jù)的輸入或輸出處理框 表示算法中數(shù)據(jù)的運算處理判斷框 表示算法中的條件判斷流程線 表示算法中的流向連接點 表示算法中的轉(zhuǎn)接6.偽代碼的語法約定(1)條件判斷語句格式1:if條件then (語句序列1) else (語句序列2)格式2:if條件then (語句序列1)(2)循環(huán)語句格式:while條件 (循環(huán)體) 自然語言 流程圖 偽代碼 計算機語言優(yōu) 點 通俗易懂 結(jié)構(gòu)清晰、寓意明確 直觀簡潔、寫法靈活 能讓計算機理解并執(zhí)行缺 點 容易產(chǎn)生歧義 情況復(fù)雜時,過多的流程線影響算法的理解 錯誤不易排查,計算機無法理解并執(zhí)行 有一定程序設(shè)計語言基礎(chǔ)的人才能看懂四種算法描述方法的優(yōu)缺點對比例題精析2例1 下列關(guān)于算法的概念及描述,說法正確的是 ( )A.算法的一個步驟可以被執(zhí)行多次B.算法必須包括一個或多個輸入C.算法就是數(shù)學(xué)運算方法D.算法只能用自然語言進行描述A解析 本題考查算法的概念和特征。A選項循環(huán)結(jié)構(gòu)可以實現(xiàn)多次執(zhí)行同一步驟。B選項可以沒有輸入。C選項算法還包含解決問題的方法和步驟,數(shù)學(xué)運算方法是建模。D選項算法可以用自然語言、流程圖、偽代碼等方法來表示。變式訓(xùn)練1 下列關(guān)于算法及算法的特征的描述,正確的是 ( )A.算法必須使用計算機借助用某種語言實現(xiàn)B.自然語言不能用來表示算法,而流程圖可以C.任何一個算法都必須有數(shù)據(jù)輸入D.算法必須有問題求解的結(jié)果,包含至少一個輸出解析 本題考查算法的特征及其描述方式。廣義的算法指的是解決問題的方法和步驟,不是所有的算法都需要計算機語言來實現(xiàn),A選項錯誤。B選項錯誤,算法的描述方法有自然語言、流程圖、偽代碼及計算機語言。C選項,算法的特征可以沒有輸入,但是必須要有輸出。D例2 計算機編程解決“斐波那契數(shù)列(每一項都是前兩項之和)”問題的過程由以下4個步驟組成:①用Python中的循環(huán)結(jié)構(gòu)編寫程序②調(diào)試運行程序,發(fā)現(xiàn)錯誤并進行修正③設(shè)計算法:設(shè)計輸入、處理、輸出等一系列算法④抽象與建模:用數(shù)學(xué)符號F(0)=F(1)=1,F(n)=F(n-1)+F(n-2)(n≥2,n∈N)描述解決問題的計算模型正確的順序是( )A.①②③④ B.③④①② C.④③②① D.④③①②解析 本題考查算法的表示。先抽象建模,再設(shè)計算法,接編寫程序,最后調(diào)試運行程序。D變式訓(xùn)練2 “梅森素數(shù)”指的是符合條件m=2p-1,其中指數(shù)p與整數(shù)m均為素數(shù)。小李想找出10000以內(nèi)所有的“梅森素數(shù)”,設(shè)計算法過程如下:①設(shè)計核心算法:如何判斷素數(shù)②調(diào)試運行程序,重點檢測邊界條件③借助Python語言,具體編程實現(xiàn)④將問題抽象成條件的判斷與素數(shù)的判斷,并完成建模下列選項中,解決該問題的過程正確次序是( )A.①②③④ B.②①④③ C.④①③② D.①④②③解析 本題考查算法的表示。抽象建模是第一步,設(shè)計算法是第二步,計算機編程實現(xiàn)是第三步,調(diào)試程序是最后一步。C例3 某算法的自然語言描述與流程圖表示分別如下:則流程圖中處理框①、②處可分別填入的是 ( )A.①y←x2-1 ②x←2x-1 B.①y←x2-1 ②y←2x-1C.①y←2x-1 ②y←x2-1 D.①x←x2-1 ②y←2x-1B自然語言 第1步:輸入一個實數(shù)x 第2步:判斷x與0的大小關(guān)系,若x<0,則y=2x-1,否則y=x2-1 第3步:輸出y的值 第4步:算法結(jié)束解析 對于同一個算法,可以用不同的表示方法來描述。分析自然語言描述和流程圖描述,可知自然語言中的第2步,對應(yīng)著流程圖中的判斷部分。由自然語言可知,處理框①和②處的功能是求y的值。在執(zhí)行過程中,當(dāng)條件“x<0 ”不成立時,會執(zhí)行①,否則會執(zhí)行②。對照自然語言描述,處理框②處是在求解當(dāng)“x<0 ”成立時的y值,即“y←2x-1”;處理框①處是在求解當(dāng)“x<0 ”不成立時的y值,即“y←x2-1”。因此,答案為B。變式訓(xùn)練3 某算法的自然語言描述與流程圖表示分別如下:則流程圖中處理框①、②處可分別填入的是 ( )A.①c←b×(a-1) ②b×(a+1) B.①b×(a+1)②c←b×(a-1)C.①a×(b+1)②c←a×(b-1) D.①c←a×(b-1)②c←a×(b+1)D自然語言 輸入a、b的值 如果a≥b,則c←a×(b+1),否則c←a×(b-1) 輸出c的值 算法結(jié)束解析 本題采用偽代碼和流程圖來描述算法。從偽代碼可知,處理框①和②處的功能是求c的值。在執(zhí)行過程中,當(dāng)條件“a≥b”成立時,會轉(zhuǎn)向②處執(zhí)行,否則,轉(zhuǎn)向①處執(zhí)行,即處理框①處的代碼為c←a×(b-1),②處的代碼為c←a×(b+1)。因此,答案為D。變式訓(xùn)練4 下列能準確表達“如果明天不下雨,那么我們騎車去郊游”的偽代碼是 ( )A.if (明天下雨) then (我們騎車去郊游)B.if (明天不下雨) then (我們騎車去郊游) else (我們不去郊游)C.if (明天下雨) then (我們不去郊游) else (我們騎車去郊游)D.if (明天不下雨) then (我們騎車去郊游)解析 本題主要考查的是用偽代碼來表示條件判斷語句。題目要表達的意思僅是“如果明天不下雨,那么我們騎車去郊游”;如果明天下雨,我們可能不去郊游,也可能是通過其他交通工具去郊游。因此,答案為D。D變式訓(xùn)練5 某算法用偽代碼描述如下。解析 本題要求對算法及其描述進行全面的理解。題中用偽代碼描述的算法,其每一個步驟都有明確的作用和含義,符合“可行性”等算法特征。本題算法可以用自然語言、流程圖等方式來描述。由偽代碼可知,該算法運用了分支結(jié)構(gòu)的控制轉(zhuǎn)移。為了保證x、y的差為正,需要對x與y的大小關(guān)系進行判斷,z為正整數(shù)x與y差的一半,因此,答案為D。D輸入兩個正整數(shù)x,yif x z←(y-x)/2Else z←(x-y)/2輸出z關(guān)于上述算法,下列說法正確的是 ( )A.不符合“可行性”特征B.無法用流程圖來描述C.運用了循環(huán)結(jié)構(gòu)的控制轉(zhuǎn)移D.z為正整數(shù)x與y差的一半隨堂檢測31.算法就是解決問題的方法和步驟,下列關(guān)于算法的描述,正確的是 ( )A.算法是對程序的描述,程序決定算法B.一個問題的算法是唯一的,而程序可以有多個C.算法只能用流程圖表示D.到超市購物的一系列活動流程與策略就是所謂的算法D解析 本題考查算法的相關(guān)知識。A選項算法決定程序而非程序決定算法,用計算機編程解決問題時先設(shè)計算法,再用程序語言來編程實現(xiàn)算法;B選項一個問題的算法可以有多個,而程序也可以有多個;C選項算法有多種表示方法,自然語言,流程圖,偽代碼以及程序語言。2.求100以內(nèi)所有能被3整除的自然數(shù)之和,算法如下:①1賦值給變量i;②判斷i除以3的余數(shù)是否為0,若是,則將該數(shù)累加到變量sum中;③將變量i加1,若i小于或等于100,轉(zhuǎn)②;④輸出變量sum的值;⑤算法結(jié)束。該算法采用的描述方法屬于( )A.流程圖 B.偽代碼C.自然語言 D.計算機程序語言C解析 本題主要考查的是算法的描述方法。本題算法的描述方法是自然語言。A.確定性 B.有0個或多個輸入C.有窮性 D.有1個或多個輸出C解析 本題主要考查算法的特征。輸出所有完全平方數(shù),是無窮的,因此它違背了算法的有窮性特征。4.下列步驟是用計算機解決物質(zhì)密度計算問題時經(jīng)歷的三個階段:①編制計算機程序,用計算機進行處理,并調(diào)試程序②設(shè)計“根據(jù)物質(zhì)的質(zhì)量與體積計算密度”的算法③獲取物質(zhì)的質(zhì)量與體積,找出其與物質(zhì)密度的關(guān)系,建立計算模型上述階段的正確順序是( )A.③②① B.③①② C.①②③ D.①③②A解析 本題考查計算機解決問題的一般過程。用計算機解決問題時,由于實際問題情境的復(fù)雜性,需要先對實際問題進行抽象與建模,再根據(jù)建立的計算模型設(shè)計算法,并將算法用合適的方式加以準確描述。5.某算法的流程圖如圖所示,執(zhí)行該算法,當(dāng)x的值為4時,則輸出y的值為 ( )B解析 本題主要考查的是流程圖。輸入的x的值為4,不滿足條件“x≤0 ”,因此執(zhí)行y←3x-2,y=10,因此答案為B。A.9 B.10 C.11 D.124鞏固與提升基礎(chǔ)鞏固能力提升A.已知a、b、c的值,求一元二次方程ax2+bx+c=0(a≠0)的實數(shù)解B.計算某個班級英語成績的平均分C.列出方程y=2x+1的所有實數(shù)解D.根據(jù)矩形的長和寬求面積C解析 C選項不符合算法有窮性特征。2.(多選)下列關(guān)于算法的描述,正確的有 ( )A.廣義地講,“算法”指的是解決問題或完成任務(wù)的一系列步驟B.算法有多種不同的描述方式C.不能用算法描述“輸出所有素數(shù)”是因為這不符合算法特征中的“確定性”D.算法的第一個執(zhí)行步驟必須是數(shù)據(jù)輸入E.通過算法讓計算機解決問題時,數(shù)據(jù)、運算及控制轉(zhuǎn)移成為算法的要素ABE3.關(guān)于算法,下列敘述正確的是 ( )A.解決任何一個具體問題只有一種算法B.流程圖是算法的一種表示形式C.一種算法只能用一種程序語言來實現(xiàn)D.算法是解題方法的精確描述,它可以有無限個步驟B解析 解決問題的算法可以有多個。4.用于求變量s的值的算法如下:①變量s的初值是0,變量n的初值是1。②若變量n的值大于100,則轉(zhuǎn)到步驟⑤。③s←s+(-1)n-1×n。④n的值增加1,轉(zhuǎn)到步驟②。⑤輸出s的值。⑥結(jié)束。下列數(shù)學(xué)表達式中,其計算結(jié)果與上述算法執(zhí)行后變量s的值相等的是( )A.1+2+3+…+100 B.-1-2-3-…-100C.1-2+3-4+…-100 D.-1+2-3+4…+100C解析 隨著n的變化,(-1)n-1實現(xiàn)1和-1之間的交替變化,當(dāng)n大于100時,結(jié)束運行。5.用偽代碼描述算法:①輸入a、b的值;②c←a;③a←b;④b←c;⑤輸出a、b的值;當(dāng)輸入a的值為3,b的值為5時,輸出結(jié)果中a和b的值分別為( )A.3 5 B.3 3 C.5 5 D.5 3D解析 算法實現(xiàn)兩個變量值發(fā)生交換。6.關(guān)于下面流程圖功能的描述正確的是 ( )A.輸入一個數(shù),輸出它的相反數(shù)B.輸入一個數(shù),若其小于或等于0,則輸出該數(shù)的相反數(shù)C.輸入一個數(shù),輸出其絕對值D.輸入一個數(shù),若其大于0,則輸出該數(shù)本身,若其小于0,則輸出該數(shù)的相反數(shù)C解析 本題主要考查的是對算法及對流程圖功能的理解。7.古代數(shù)學(xué)家歐幾里得在《幾何原本》中提出“輾轉(zhuǎn)相除法”,利用該算法可以求出任意兩個正整數(shù)的最大公約數(shù)。用“輾轉(zhuǎn)相除法”計算正整數(shù)m和n的最大公約數(shù)的步驟如下:①輸入兩個正整數(shù)m和n②若m③以m除以n,相除得到的余數(shù)為r④若r=0,則輸出n的值,算法結(jié)束;否則執(zhí)行步驟⑤⑤令m=n,n=r,返回步驟③繼續(xù)執(zhí)行。若輸入的兩個正整數(shù)分別為243、78,則輸出的結(jié)果是( )A.78 B.9 C.3 D.6C解析 本題考查理解自然語言表述的算法并運用。輾轉(zhuǎn)相除法計算兩個正整數(shù)的最大公約數(shù),教材上也有體現(xiàn)。8.某算法用偽代碼描述如下:A解析 本題考查算法的表示。如果條件A=B時,會產(chǎn)生死循環(huán),因此算法違反了有窮性原則,不能完全實現(xiàn)找出A和B中的最大值A(chǔ)。下列有關(guān)上述算法的說法,正確的是 ( )A.該算法違反了算法有窮性原則B.該算法實現(xiàn)了找出A和B中的最大值A(chǔ)C.該算法屬于分支結(jié)構(gòu)D.該算法無法使用流程圖來描述9.某算法描述如下:①將0賦值給變量Num,將10賦值給變量Max,將9賦值給變量i②若i除以3余2、除以5余3、除以7余2,則將變量Num的值增加1并輸出i③變量i的值增加1,若變量Num小于變量Max,則轉(zhuǎn)②④結(jié)束DA.該算法是用自然語言來描述的B.該算法符合有窮性的特征C.該算法最后輸出10個數(shù)值D.該算法轉(zhuǎn)換成流程圖只需用到一個選擇框解析 該算法是用自然語言來描述的,從③語句來看,是一個循環(huán)結(jié)構(gòu),循環(huán)變量是Num,他的初值是0,條件是小于10,每次遞增1,那么Num取值范圍是0-9,從②語句來看,把符合三個條件的i輸出,同時變量Num增加1,可見輸出10個數(shù)據(jù)。這是一個循環(huán)結(jié)構(gòu)包含選擇結(jié)構(gòu),因此有兩個判斷框。10.統(tǒng)計投硬幣1000次出現(xiàn)正面這一概率實驗的算法步驟如下:①將i,k分別賦初值0;②用隨機函數(shù)產(chǎn)生一個數(shù)來模擬硬幣的正反面,若隨機數(shù)在[0,0.5)之間,k的值加1;③i的值加1,若i<1000,則轉(zhuǎn)②;④輸出結(jié)果k/1000,結(jié)束。對于上述算法,下列說法 的是( )A.變量k代表正面次數(shù)B.該算法的循環(huán)結(jié)構(gòu)內(nèi)部包含了選擇結(jié)構(gòu)C.該算法主要體現(xiàn)了枚舉思想D.該算法沒有輸入,因此不符合算法的基本特征D解析 題目中描述隨機數(shù)在[0,0.5)之間,k的值加1,輸出結(jié)果k/1000,因此k表示正面的次數(shù)。從語句③來看,是一個循環(huán)結(jié)構(gòu),從語句②來看,是一個選擇結(jié)構(gòu),在1000次模擬正反面實驗中統(tǒng)計正面出現(xiàn)次數(shù)。算法可以沒有輸入,但必須有輸出。11.描述某算法的偽代碼如下。輸入兩個正整數(shù)m、nr ←m除以n的余數(shù)while r≠0 (m←n,n←r,r←m除以n的余數(shù))輸出n(1)執(zhí)行上述算法,如果輸入m、n的值分別為24、16,那么輸出n的值為 。 (2)請用流程圖描述上述算法。解析 本題主要考查的是對算法及其描述進行全面的理解。題目用偽代碼描述算法,其功能是求正整數(shù)m、n的最大公約數(shù)。答案 (1)8(2)課時1 算法的概念及描述課時目標1.理解算法的定義、特征及要素。2.初步掌握使用自然語言、流程圖、偽代碼描述簡單算法,了解常用的計算機程序設(shè)計語言。3.掌握繪制簡單算法的流程圖。1.算法“算法”是指____________________________。在計算機科學(xué)領(lǐng)域,“算法”指的是用計算機解決問題的步驟,是為了解決問題而需要讓計算機______________、____________、____________的集合。2.算法的特征①有窮性:一個算法的處理步驟必須是________________的。②____________________:算法中的每一步操作與要求都應(yīng)該是現(xiàn)實中可以實施,能在有限的時間內(nèi)完成。③確定性:算法中對于每一步的執(zhí)行描述必須是________的。④____________________:算法被執(zhí)行時,初始數(shù)據(jù)可以從外部獲取,也可以包含在算法中。⑤____________________:算法必須包含至少一個輸出,以告訴外界問題求解的結(jié)果。3.算法的要素用計算機解決問題,本質(zhì)上是以“數(shù)據(jù)計算”的方式來實現(xiàn)的。①________:用算法解決問題時,必須明確參與運算的初始數(shù)據(jù)、運算時產(chǎn)生的中間數(shù)據(jù)以及代表問題解決的結(jié)果數(shù)據(jù)。②__________:在對數(shù)據(jù)進行運算時,必須明確每一步的運算是什么、對哪些數(shù)據(jù)進行運算等。③____________:在算法執(zhí)行過程中,有時需要根據(jù)數(shù)據(jù)或運算結(jié)果的特點進行不同的處理,需要運用控制轉(zhuǎn)移來執(zhí)行不同的操作。4.常見的算法描述方式常見的算法描述方式有自然語言、________、偽代碼、________________等。5.流程圖流程圖用一些圖形符號表示規(guī)定的操作,并用帶箭頭的流程線連接這些圖形符號,表示操作進行的方向。常見的流程圖基本圖形及功能圖形 名稱 功能開始/結(jié)束符 表示算法的開始或結(jié)束輸入/輸出框 表示算法中數(shù)據(jù)的輸入或輸出處理框 表示算法中數(shù)據(jù)的運算處理判斷框 表示算法中的條件判斷流程線 表示算法中的流向連接點 表示算法中的轉(zhuǎn)接6.偽代碼的語法約定(1)條件判斷語句格式1:if條件then (語句序列1) else (語句序列2)格式2:if條件then (語句序列1)(2)循環(huán)語句格式:while條件(循環(huán)體)四種算法描述方法的優(yōu)缺點對比自然語言 流程圖 偽代碼 計算機語言優(yōu)點 通俗易懂 結(jié)構(gòu)清晰、寓意明確 直觀簡潔、寫法靈活 能讓計算機理解并執(zhí)行缺點 容易產(chǎn)生歧義 情況復(fù)雜時,過多的流程線影響算法的理解 錯誤不易排查,計算機無法理解并執(zhí)行 有一定程序設(shè)計語言基礎(chǔ)的人才能看懂 例1 下列關(guān)于算法的概念及描述,說法正確的是( )A.算法的一個步驟可以被執(zhí)行多次B.算法必須包括一個或多個輸入C.算法就是數(shù)學(xué)運算方法D.算法只能用自然語言進行描述聽課筆記: 變式訓(xùn)練1 下列關(guān)于算法及算法的特征的描述,正確的是( )A.算法必須使用計算機借助用某種語言實現(xiàn)B.自然語言不能用來表示算法,而流程圖可以C.任何一個算法都必須有數(shù)據(jù)輸入D.算法必須有問題求解的結(jié)果,包含至少一個輸出例2 計算機編程解決“斐波那契數(shù)列(每一項都是前兩項之和)”問題的過程由以下4個步驟組成:①用Python中的循環(huán)結(jié)構(gòu)編寫程序②調(diào)試運行程序,發(fā)現(xiàn)錯誤并進行修正③設(shè)計算法:設(shè)計輸入、處理、輸出等一系列算法④抽象與建模:用數(shù)學(xué)符號F(0)=F(1)=1,F(xiàn)(n)=F(n-1)+F(n-2)(n≥2,n∈N)描述解決問題的計算模型正確的順序是( )A.①②③④ B.③④①②C.④③②① D.④③①②聽課筆記: 變式訓(xùn)練2 “梅森素數(shù)”指的是符合條件m=2p-1,其中指數(shù)p與整數(shù)m均為素數(shù)。小李想找出10000以內(nèi)所有的“梅森素數(shù)”,設(shè)計算法過程如下:①設(shè)計核心算法:如何判斷素數(shù)②調(diào)試運行程序,重點檢測邊界條件③借助Python語言,具體編程實現(xiàn)④將問題抽象成條件的判斷與素數(shù)的判斷,并完成建模下列選項中,解決該問題的過程正確次序是( )A.①②③④ B.②①④③C.④①③② D.①④②③例3 某算法的自然語言描述與流程圖表示分別如下:自然語言第1步:輸入一個實數(shù)x第2步:判斷x與0的大小關(guān)系,若x<0,則y=2x-1,否則y=x2-1第3步:輸出y的值第4步:算法結(jié)束則流程圖中處理框①、②處可分別填入的是( )A.①y←x2-1 ②x←2x-1B.①y←x2-1 ②y←2x-1C.①y←2x-1 ②y←x2-1D.①x←x2-1 ②y←2x-1聽課筆記: 變式訓(xùn)練3 某算法的自然語言描述與流程圖表示分別如下:自然語言輸入a、b的值如果a≥b,則c←a×(b+1),否則c←a×(b-1)輸出c的值算法結(jié)束則流程圖中處理框①、②處可分別填入的是( )A.①c←b×(a-1) ②b×(a+1)B.①b×(a+1) ②c←b×(a-1)C.①a×(b+1) ②c←a×(b-1)D.①c←a×(b-1) ②c←a×(b+1)變式訓(xùn)練4 下列能準確表達“如果明天不下雨,那么我們騎車去郊游”的偽代碼是( )A.if (明天下雨) then (我們騎車去郊游)B.if (明天不下雨) then (我們騎車去郊游) else (我們不去郊游)C.if (明天下雨) then (我們不去郊游) else (我們騎車去郊游)D.if (明天不下雨) then (我們騎車去郊游)變式訓(xùn)練5 某算法用偽代碼描述如下。輸入兩個正整數(shù)x,yif x關(guān)于上述算法,下列說法正確的是( )A.不符合“可行性”特征B.無法用流程圖來描述C.運用了循環(huán)結(jié)構(gòu)的控制轉(zhuǎn)移D.z為正整數(shù)x與y差的一半1.算法就是解決問題的方法和步驟,下列關(guān)于算法的描述,正確的是( )A.算法是對程序的描述,程序決定算法B.一個問題的算法是唯一的,而程序可以有多個C.算法只能用流程圖表示D.到超市購物的一系列活動流程與策略就是所謂的算法2.求100以內(nèi)所有能被3整除的自然數(shù)之和,算法如下:①1賦值給變量i;②判斷i除以3的余數(shù)是否為0,若是,則將該數(shù)累加到變量sum中;③將變量i加1,若i小于或等于100,轉(zhuǎn)②;④輸出變量sum的值;⑤算法結(jié)束。該算法采用的描述方法屬于( )A.流程圖 B.偽代碼C.自然語言 D.計算機程序語言3.不能用算法描述“輸出所有完全平方數(shù)”,是因為該任務(wù)不符合算法特征中的( )A.確定性 B.有0個或多個輸入C.有窮性 D.有1個或多個輸出4.下列步驟是用計算機解決物質(zhì)密度計算問題時經(jīng)歷的三個階段:①編制計算機程序,用計算機進行處理,并調(diào)試程序②設(shè)計“根據(jù)物質(zhì)的質(zhì)量與體積計算密度”的算法③獲取物質(zhì)的質(zhì)量與體積,找出其與物質(zhì)密度的關(guān)系,建立計算模型上述階段的正確順序是( )A.③②① B.③①②C.①②③ D.①③②5.某算法的流程圖如圖所示,執(zhí)行該算法,當(dāng)x的值為4時,則輸出y的值為( )A.9 B.10C.11 D.12 展開更多...... 收起↑ 資源列表 課時1 算法的概念及描述 學(xué)案 浙教版(2019)必修1.doc 課時1 算法的概念及描述 教案 浙教版(2019)必修1.doc 課時1 算法的概念及描述 課件(共42張ppt)浙教版(2019)必修1.pptx 縮略圖、資源來源于二一教育資源庫