資源簡介 課時3 用算法解決問題的過程課時目標1.了解計算機編程解決問題的一般過程,解決編程過程中遇到的問題。2.學會通過抽象與建模、設計算法、編寫程序、調試運行的步驟去解決。使用計算機解決問題的一般過程為:抽象與建模、設計算法和描述算法。1.抽象與建模抽象與建模指的是從現實項目的真實情境中提煉出核心要素并加以確定或假設,最終定義出一個有明確已知條件和求解目標的問題,并用數學符號描述解決問題的計算模型。抽象與建模可以通過下列兩個步驟逐步分析出計算模型:(1)提煉核心要素并加以確定或假設。(2)用數學符號描述解決問題的計算模型。2.設計算法在計算模型的基礎上,遵循算法的特征、圍繞算法的要素設計算法,并選擇恰當的方式合理地描述算法。對任何數據的處理,總體上都需要經歷下列三個步驟:(1)輸入數據。(2)處理數據。(3)輸出處理結果。3.描述算法可以使用自然語言、流程圖、偽代碼或計算機程序設計語言來描述算法。4.編寫程序要讓計算機按照預先設計的算法進行處理,需要將該算法用計算機程序設計語言進行描述,即編寫計算機程序。5.調試運行程序通過運行程序,讓計算機自動執行程序中的命令,并對結果進行檢測分析和驗證。1.抽象與建模:即分析問題,對問題進行定性分析,運用歸納和演繹等方法,確定問題的性質,然后進行定量分析,即確定問題的數量特征、數量關系與數量變化等特征。2.設計算法:根據問題的抽象與建模,把解決問題的方案準確而完整地描述出來。可以使用自然語言,偽代碼,流程圖等形式描述算法。3.編寫程序:選擇一門計算機程序語言,把設計好的算法轉換成相應的計算機程序。4.調試運行:通過調試運行程序,找出“錄入錯誤、語法錯誤、邏輯錯誤”等問題并修正。例1 張亮參與了“求圓周率π”的項目實踐,該項目要求自己編寫程序求圓周率。張亮小組通過查詢資料,獲得了多個計算圓周率π的方法,他們選擇了下面的公式,并通過運算100萬項、1000萬項和1億項三種情況,對比查看結果的精確度。=······…(1)用計算機解決問題的過程一般包括四步:①設計算法,②調試運行程序,③編寫程序,④抽象與建模,這四個步驟的正確順序是 ; (2)張亮用流程圖描述算法如圖所示,該算法屬于 結構(填:順序/分支/循環)。 (3)為使流程圖能正確實現上述公式的計算,請完成其中的填空:① ② ③ (4)項目完成后,最終的運行結果如圖所示,從圖中可以得到 (多選,全部選對得2分,部分選對得1分,選錯不得分)。 A.算法必須有輸入和輸出,缺一不可B.如果輸入的值特別大,導致該算法不能在有限的時間內輸出結果,這就違背了算法的可行性C.根據運行結果推斷,若運算次數為10億時,在個人電腦上可以準確算出π的八位小數D.該算法運算次數越多結果越精確,這說明該算法不具備有窮性答案 (1)④①③② (2)循環 (3)①1 ②s*(i+1)*(i+1)/(i*(i+2)) ③s*2 (4)BC解析 本題綜合考查算法的表示。(1)略。(2)從條件的出口回到入口,可得為循環結構。(3)從流程圖中i=i+2,步長為2,每次乘兩項。當i=1時,s=s*(i+1)*(i+1)/(i*(i+2)),i=2時,s=s*i*i/((i-1)*(i+1)),最終輸出的pi應為2*s。(4)A選項算法可以沒有輸入但是必須要有輸出;BC正確;D錯誤,該算法能在有限的時間和步驟中完成,具備有窮性的特征。變式訓練1 某手機APP程序為了增加程序熱度,采用“簽到換積分得獎品”的形式來吸引用戶使用。簽到積分的規則為:第1天簽到得1分,第2天簽到得2分,第3天簽到得3分,……第7天及7天以上簽到得7分;一旦中途漏簽,簽到積分從1分開始計算。下圖所示的簽到獲得的總積分為14分。第1天+1分 第2天 第3天+1分 第4天+2分 第5天+3分 第6天+4分 第7天 第8天+1分 第9天+2分現利用“0”“1”記錄簽到情況,其中“1”表示正常簽到,“0”表示斷簽,輸出獲得的總積分數。例如,上圖輸入可以表示為“101111011”,輸出結果為14分。請回答下列問題:(1)若簽到記錄為“100111110111”,則獲得的總積分為 。 (2)在計算簽到總積分時,“第7天簽到得7分”,屬于算法三要素中的 (選填:數據/運算/控制轉移)。 (3)程序部分流程圖如圖所示,請將流程圖補充完整。① ② (4)流程圖中“flag=True”代表的含義是 。 答案 (1)22 (2)數據 (3)①c=0 ②p=p+c (4)作為前一天漏簽標志解析 本題主要考查計算思維、算法的要素、算法控制結構的應用。(1)根據題意可得為22。(2)第7天簽到得7分屬于數據。(3)從流程圖中status=1可以判斷得到status表示當天有無正常簽到。變量c用來存儲當前是連續簽到的第幾天,變量p用于存儲累加的得分。因此較易得到②處為計算連續簽到七天內時的得分:p=p+c,結合題意可得當前一天漏簽時,c的值歸零,因此①處為c=0。從這里可得flag=True是作為前一天漏簽的標志。例2 某景點門票收費規定如下:身高在1米1及以下的人免費;超過1米1,但不超過1米4的人收取全票費用的一半;超過1米4的人收取全票。假設人的身高為h米,全票費用為s元,按要求完成以下任務:(1)分析問題,列出求解門票mp的數學表達式。(2)確定算法,畫出相應的流程圖。答案 (1)S=(2)解決此問題的流程圖如圖所示。解析 本題考查用算法解決具體問題的各個過程。(1)根據題意,首先要建立有關門票費用計算的數學模型,分別以1米1、1米4作為分界點,用數學語言描述解決此問題的數學表達式(計算模型)。(2)通過分析問題,在完成(1)題所要求的抽象建模后,就可以遵循算法的特征、圍繞算法的要素設計算法。該算法用到的控制結構是分支結構,相應的流程圖如答案中所示。變式訓練2 鐵路旅客托運行李,從甲地到乙地,規定如下:每張客票托運行李不超過50千克時,每千克的運費為1.3元;若超過50千克,超過的部分按每千克1.8元的運費計算。假設行李重量為W千克,運費為P元,按要求完成以下任務:(1)分析問題,列出求解門票P的數學表達式。(2)確定算法,畫出相應的流程圖。答案 (1)P=(2)解決此問題的流程圖如圖所示。解析 本題考查用算法解決具體問題的各個過程。(1)根據題意,首先要建立行李托運費用計算的數學模型,以50千克為分界點,用數學語言描述解決此問題的數學表達式(計算模型)。(2)通過分析問題,在完成(1)題所要求的抽象建模后,就可以遵循算法的特征、圍繞算法的要素設計算法。該算法用到的控制結構是分支結構,相應的流程圖如答案中所示。1.編制計算機程序解決問題的過程有:描述問題、算法設計、編寫計算機程序和調試等,其中,對算法描述正確的是 ( )A.算法是解決問題的步驟和方法B.算法可以看成按照要求設計好的有限的確切的計算序列,并且這樣的步驟或序列只能解決當前問題C.算法就是解題的算式D.算法必須在計算機上實現答案 A解析 本題考查的是對于算法的概念的理解,B選項錯在“只能解決當前問題”,算法是解決問題的方法,可以解決一類問題。C選項說法太片面了,算法不光包括了部分算式,還包括語句執行順序,流程走向等。D選項算法不一定要在計算機上實現。2.有一種ASCII字符加密的算法,其加密過程如下:①將明碼中每個字符的八位二進制ASCII碼(不足八位的左端補0,湊足八位)分成兩段(左4位高位段,右4位低位段)。如字符“C”的二進制ASCII碼為01000011,分段后為0100,0011;②將高位段(左邊4位)左移一位,并將原第一位數碼移至最后(如0100轉化為1000),再轉化為十六進制數(如1000轉化為8);③對低位段(右邊4位)執行②同樣的算法,如0011→0110→6;④順次連接兩位十六進制數,得到該字符的密文,如“C”的密文為“86”;⑤將每個字符的密文按明碼的順序連接。用Python編寫的程序運行結果如圖所示,請回答下列問題:(1)按照加密算法,明碼字符“J”的密文是 ;密文“C2”的明碼是 ; (2)假設某字符ASCII值十進制數為m,則該數的高位段是 ,低位段是 (結果都是十進制); (3)假設(2)中高位段的四位二進制轉十進制為n,則經過加密算法第②步運算:左移一位,將原第一位移至最后,得到的值是 (結果為十進制)。 答案 (1)85 a (2)m∥16 m%16(3)n%8*2+n∥8解析 本題綜合考查數制轉換的程序實現。(1)字符J的ASCII值為74D→4AH→01001010B,執行加密過程后二進制為10000101B對應十六進制為85;C2H轉換為二進制為11000010B,反向執行解密后明碼對應的十六進制為61H,對應a。(2)高位段相當于取m對應的二進制中前四位,二進制取前四位可以采用除以16取整的方法,因此第一空答案為m∥16,取后四位可采用除以16取余數的方法,第二空答案為m%16。(3)按照第二小題的方法,我們取出高位段中的第一位以及后三位,讓后三位前移一位,因此取出后三位后*2,第一位作為最后一位*20,因此答案為n%8*2+n∥8。 一、基礎鞏固1.信息的加密一直是一種保障信息安全的手段,其中最簡單的一種加密方法就是采用密鑰加密。如下是對小寫字母利用密鑰加密的基本算法:①輸入密鑰a(0(1)如果密鑰為3,那么采用該算法對字符串'axz'加密后的密文應該是 ;同樣,采用該算法獲得密文為'happy',密鑰為5,則加密前的原文是 。 (2)如果要將此算法改為對應的解密算法,僅需改動第 步(僅1個步驟,不考慮原算法其他步驟中“加密”字樣的修改),改為: 。 答案 (1)dac cvkkt (2)④ 按字母表順序用字母c前面第a個字母代替字母c;如果字母c前面第a個字母超出了“a”,則返回“z”后再按次序前移2.設計一個算法,求1-1/2+1/3-1/4+…+1/9-1/10的值。流程圖如圖所示,請回答下列問題:(1)本題主要使用的算法控制結構為 。(選填,填字母) A.順序結構 B.分支結構 C.循環結構(2)請將流程圖中的①、②補充完整:① ② (3)虛線框處③適合的選項是 。 答案 (1)C (2)①s=s+(-1)i+1/i②i=i+1 (3)A解析 本題主要考查算法思維及流程圖的綜合應用,算法的控制結構。(1)從流程圖可知為循環結構。(2)注:將題中判斷框中條件改為i>=10 循環體部分為1/i,當i為奇數時,前面系數為1,i為偶數時前面系數為-1,聯系數學知識,可以用(-1)i+1來表示系數的正負,因此①為s=s+(-1)i+1/i。(3)流程圖中輸出需要用到平行四邊形框。3.紅外測溫儀可以在合適的距離實現非接觸測溫,在醫院、學校、車站等場所有其明顯優勢。分析其測溫過程:(1)測溫儀通過先紅外溫度傳感器獲取數據,然后進行計算,最后顯示體溫溫度。解決測溫問題的這一系列的步驟屬于 。(選填,填序號,①算法 ②運算) (2)測溫過程的步驟是有限的,體現算法的 ,每一個步驟操作是明確,體現算法的 ,一次測溫過程中最終顯示的體溫數據,體現算法的 。(選填,填序號,①有窮性 ②可行性 ③確定性 ④0個或多個輸入 ⑤1個或多個輸出) (3)如果測量結果超過37.2的,測溫儀有提示音。該判斷部分描述過程中需要用到的流程圖基本圖形是 。 答案 (1)① (2)① ③ ⑤ (3)D解析 本題考查算法解決問題的一般過程。(1)算法是解決問題的方法和步驟,算法中用到的是數據。(2)測量溫度次數是有限的,體現有窮性。一次測量不能確定解決問題方案是否可行,但答案是確定的,體現確定性。同時輸出了溫度體現了輸出。4.印度有個國王打算獎賞發明了國際象棋的大臣,國王問他想要什么,他對國王說:“陛下,我只要一些麥粒,請您在這張棋盤的第一格放1粒麥子,第二格放2粒麥子,第三格放4粒麥子,第4格放8粒麥子,一次類推到64格棋盤。”國王覺得這個要求太容易滿足了,就答應了,當人們把一袋一袋的麥子搬來開始計數時,國王發現,就是把全印度的麥粒全部拿來,也滿足不了他的要求,那么,這位大臣要求得到的麥子到底是多少呢 圖a(1)根據大臣的要求,第6格中放的麥粒數為 。 (2)解決麥粒問題的流程圖如圖b,使用的算法控制結構是 。(選填,填字母,A.順序結構 B.分支結構 C.循環結構) (3)請將流程圖補充完整:① ;② 。 圖b(4)流程圖中s的值指的是 。 答案 (1)32 (2)C (3)①p←1②p←2i或者 ②p←p×2(←寫成=也可,×寫成*也可) (4)總麥粒數解析 本題考查算法的表示。(1)根據規則,第i格的麥粒數量是2i-1。(2)流程從出口回到入口,因此是循環結構。(3)p是每天的麥粒數量,當i為1時,值為1;計算好下一天的數量后,i加1,因此②處為p←2i。(4)根據s←s+p可知,s表示的是所有麥粒的總和。5.某算法的部分流程圖如圖所示。執行流程后,若最終i的值為5,則輸入的n值可能是 。 答案 16解析 本題流程圖的功能是將正整數n經過4次運算后變為1。當n是偶數時,則變為原來的1半,如果是奇數時,變為3n+1。整數16經過4次運算,依次變為8、4、2、1,因此,答案為16。6.某算法的部分流程圖如圖所示。觀察流程圖,請回答下列問題:(1)輸入m、n的值分別為3和5,則輸出a、i的值依次是 。 (2)該流程圖實現的功能是 。答案 (1)15 5 (2)求整數m、n的最小公倍數解析 本題主要考查觀察能力和算法思維。(1)(2)通過不斷擴大整數m的倍數,并嘗試它能否整除整數n,若能,則問題解決,輸出此時的a(m的倍數)和i的值(擴大的倍數),當i=3時,a=15,a正好能整除n,因此輸出的a、i的值依次是15和5。二、能力提升7.十進制整數轉換為二進制數。將一個十進制整數轉換為二進制數的方法為:將該整數除以8,得到一個余數,然后再將該整數整除8,又得到一個整數,如此繼續,直到商為0,最后將余數從后往前拼接起來,就是該整數所對應的八進制數。假設整數為x,余數為k,按要求完成以下任務:(1)分析問題,確定解決此問題所使用的控制結構,并列出十進制數轉換為八進制數的關鍵步驟。(2)確定算法,畫出相應的流程圖。答案 (1)使用循環結構解決此問題。關鍵步驟有:①求余數r,r←x%8;②求整數商,x=x∥8。(2)解決此問題的流程圖如圖所示。解析 本題考查用算法解決具體問題的各個過程。(1)十進制整數轉換為八進制數的方法可概括為除8取余,重復運算,直到商為0,因此是一個循環結構。關鍵步驟有:①求余數r,r←x%8;②求整數商,x=x∥8。(2)通過分析問題,確定解決問題的方法后,就可以設計算法。該算法用到的控制結構是循環結構,相應的流程圖如答案中所示。8.角谷猜想是指一個正整數x,如果x是奇數,則將其乘以3,然后再加1;如果是偶數,則將其除以2。這樣經過若干次運算后,總可以得到自然數1。小明根據角谷猜想進行了算法設計,并用如下流程圖來描述該算法。請回答下列問題:(1)解決此問題所使用的控制結構為 。 (2)根據本題算法的流程圖所示,則流程圖中①②處應填寫的內容分別是:① ;② 。 (3)若輸入x的值為5,則輸出的運算次數為 ;若輸入x的值為128,則輸出的運算次數為 (填數字)。 答案 (1)循環結構 (2)①x==1 或x<=1 或x等于1嗎 ②x←3x+1或x←3*x+1或x←3×x+1(←改為等號也算對) (3)5 7(共43張PPT)課時3 用算法解決問題的過程第二章 算法與問題解決1.了解計算機編程解決問題的一般過程,解決編程過程中遇到的問題。2.學會通過抽象與建模、設計算法、編寫程序、調試運行的步驟去解決。目 錄CONTENTS知識梳理01例題精析02隨堂檢測03鞏固與提升04知識梳理1使用計算機解決問題的一般過程為:抽象與建模、設計算法和描述算法。1.抽象與建模抽象與建模指的是從現實項目的真實情境中提煉出核心要素并加以確定或假設,最終定義出一個有明確____________________的問題,并用__________描述解決問題的計算模型。抽象與建模可以通過下列兩個步驟逐步分析出計算模型:(1)提煉核心要素并加以確定或假設。(2)用數學符號描述解決問題的計算模型。已知條件和求解目標數學符號2.設計算法在計算模型的基礎上,遵循算法的特征、圍繞算法的要素設計算法,并選擇恰當的方式合理地描述算法。對任何數據的處理,總體上都需要經歷下列三個步驟:(1)輸入數據。(2)處理數據。(3)輸出處理結果。3.描述算法可以使用自然語言、流程圖、偽代碼或計算機程序設計語言來描述算法。4.編寫程序要讓計算機按照預先設計的算法進行處理,需要將該算法用計算機程序設計語言進行描述,即編寫計算機程序。5.調試運行程序通過運行程序,讓計算機自動執行程序中的命令,并對結果進行檢測分析和驗證。1.抽象與建模:即分析問題,對問題進行定性分析,運用歸納和演繹等方法,確定問題的性質,然后進行定量分析,即確定問題的數量特征、數量關系與數量變化等特征。2.設計算法:根據問題的抽象與建模,把解決問題的方案準確而完整地描述出來。可以使用自然語言,偽代碼,流程圖等形式描述算法。3.編寫程序:選擇一門計算機程序語言,把設計好的算法轉換成相應的計算機程序。4.調試運行:通過調試運行程序,找出“錄入錯誤、語法錯誤、邏輯錯誤”等問題并修正。例題精析2例1 張亮參與了“求圓周率π”的項目實踐,該項目要求自己編寫程序求圓周率。張亮小組通過查詢資料,獲得了多個計算圓周率π的方法,他們選擇了下面的公式,并通過運算100萬項、1000萬項和1億項三種情況,對比查看結果的精確度。(1)用計算機解決問題的過程一般包括四步:①設計算法,②調試運行程序,③編寫程序,④抽象與建模,這四個步驟的正確順序是 ; (2)張亮用流程圖描述算法如圖所示,該算法屬于 結構(填:順序/分支/循環)。 (3)為使流程圖能正確實現上述公式的計算,請完成其中的填空:① ② ③ (4)項目完成后,最終的運行結果如圖所示,從圖中可以得到 (多選,全部選對得2分,部分選對得1分,選錯不得分)。 A.算法必須有輸入和輸出,缺一不可B.如果輸入的值特別大,導致該算法不能在有限的時間內輸出結果,這就違背了算法的可行性C.根據運行結果推斷,若運算次數為10億時,在個人電腦上可以準確算出π的八位小數D.該算法運算次數越多結果越精確,這說明該算法不具備有窮性答案 (1)④①③② (2)循環 (3)①1 ②s*(i+1)*(i+1)/(i*(i+2)) ③s*2 (4)BC解析 本題綜合考查算法的表示。(1)略。(2)從條件的出口回到入口,可得為循環結構。(3)從流程圖中i=i+2,步長為2,每次乘兩項。當i=1時,s=s*(i+1)*(i+1)/(i*(i+2)),i=2時,s=s*i*i/((i-1)*(i+1)),最終輸出的pi應為2*s。(4)A選項算法可以沒有輸入但是必須要有輸出;BC正確;D錯誤,該算法能在有限的時間和步驟中完成,具備有窮性的特征。變式訓練1 某手機APP程序為了增加程序熱度,采用“簽到換積分得獎品”的形式來吸引用戶使用。簽到積分的規則為:第1天簽到得1分,第2天簽到得2分,第3天簽到得3分,……第7天及7天以上簽到得7分;一旦中途漏簽,簽到積分從1分開始計算。下圖所示的簽到獲得的總積分為14分。第1天+1分 第2天 第3天+1分 第4天+2分 第5天+3分 第6天+4分 第7天 第8天+1分第9天+2分現利用“0”“1”記錄簽到情況,其中“1”表示正常簽到,“0”表示斷簽,輸出獲得的總積分數。例如,上圖輸入可以表示為“101111011”,輸出結果為14分。請回答下列問題:(1)若簽到記錄為“100111110111”,則獲得的總積分為 。 (2)在計算簽到總積分時,“第7天簽到得7分”,屬于算法三要素中的 (選填:數據/運算/控制轉移)。 (3)程序部分流程圖如圖所示,請將流程圖補充完整。① ② (4)流程圖中“flag=True”代表的含義是 。 答案 (1)22 (2)數據 (3)①c=0 ②p=p+c (4)作為前一天漏簽標志解析 本題主要考查計算思維、算法的要素、算法控制結構的應用。(1)根據題意可得為22。(2)第7天簽到得7分屬于數據。(3)從流程圖中status=1可以判斷得到status表示當天有無正常簽到。變量c用來存儲當前是連續簽到的第幾天,變量p用于存儲累加的得分。因此較易得到②處為計算連續簽到七天內時的得分:p=p+c,結合題意可得當前一天漏簽時,c的值歸零,因此①處為c=0。從這里可得flag=True是作為前一天漏簽的標志。例2 某景點門票收費規定如下:身高在1米1及以下的人免費;超過1米1,但不超過1米4的人收取全票費用的一半;超過1米4的人收取全票。假設人的身高為h米,全票費用為s元,按要求完成以下任務:(1)分析問題,列出求解門票mp的數學表達式。(2)確定算法,畫出相應的流程圖。(2)解決此問題的流程圖如圖所示。解析 本題考查用算法解決具體問題的各個過程。(1)根據題意,首先要建立有關門票費用計算的數學模型,分別以1米1、1米4作為分界點,用數學語言描述解決此問題的數學表達式(計算模型)。(2)通過分析問題,在完成(1)題所要求的抽象建模后,就可以遵循算法的特征、圍繞算法的要素設計算法。該算法用到的控制結構是分支結構,相應的流程圖如答案中所示。變式訓練2 鐵路旅客托運行李,從甲地到乙地,規定如下:每張客票托運行李不超過50千克時,每千克的運費為1.3元;若超過50千克,超過的部分按每千克1.8元的運費計算。假設行李重量為W千克,運費為P元,按要求完成以下任務:(1)分析問題,列出求解門票P的數學表達式。(2)確定算法,畫出相應的流程圖。(2)解決此問題的流程圖如圖所示。解析 本題考查用算法解決具體問題的各個過程。(1)根據題意,首先要建立行李托運費用計算的數學模型,以50千克為分界點,用數學語言描述解決此問題的數學表達式(計算模型)。(2)通過分析問題,在完成(1)題所要求的抽象建模后,就可以遵循算法的特征、圍繞算法的要素設計算法。該算法用到的控制結構是分支結構,相應的流程圖如答案中所示。隨堂檢測31.編制計算機程序解決問題的過程有:描述問題、算法設計、編寫計算機程序和調試等,其中,對算法描述正確的是 ( )A.算法是解決問題的步驟和方法B.算法可以看成按照要求設計好的有限的確切的計算序列,并且這樣的步驟或序列只能解決當前問題C.算法就是解題的算式D.算法必須在計算機上實現A解析 本題考查的是對于算法的概念的理解,B選項錯在“只能解決當前問題”,算法是解決問題的方法,可以解決一類問題。C選項說法太片面了,算法不光包括了部分算式,還包括語句執行順序,流程走向等。D選項算法不一定要在計算機上實現。2.有一種ASCII字符加密的算法,其加密過程如下:①將明碼中每個字符的八位二進制ASCII碼(不足八位的左端補0,湊足八位)分成兩段(左4位高位段,右4位低位段)。如字符“C”的二進制ASCII碼為01000011,分段后為0100,0011;②將高位段(左邊4位)左移一位,并將原第一位數碼移至最后(如0100轉化為1000),再轉化為十六進制數(如1000轉化為8);③對低位段(右邊4位)執行②同樣的算法,如0011→0110→6;④順次連接兩位十六進制數,得到該字符的密文,如“C”的密文為“86”;⑤將每個字符的密文按明碼的順序連接。用Python編寫的程序運行結果如圖所示,請回答下列問題:(1)按照加密算法,明碼字符“J”的密文是 ;密文“C2”的明碼是 ; (2)假設某字符ASCII值十進制數為m,則該數的高位段是 ,低位段是 (結果都是十進制); (3)假設(2)中高位段的四位二進制轉十進制為n,則經過加密算法第②步運算:左移一位,將原第一位移至最后,得到的值是 (結果為十進制)。 答案 (1)85 a (2)m∥16 m%16 (3)n%8*2+n∥8解析 本題綜合考查數制轉換的程序實現。(1)字符J的ASCII值為74D→4AH→01001010B,執行加密過程后二進制為10000101B對應十六進制為85;C2H轉換為二進制為11000010B,反向執行解密后明碼對應的十六進制為61H,對應a。(2)高位段相當于取m對應的二進制中前四位,二進制取前四位可以采用除以16取整的方法,因此第一空答案為m∥16,取后四位可采用除以16取余數的方法,第二空答案為m%16。(3)按照第二小題的方法,我們取出高位段中的第一位以及后三位,讓后三位前移一位,因此取出后三位后*2,第一位作為最后一位*20,因此答案為n%8*2+n∥8。4鞏固與提升基礎鞏固能力提升1.信息的加密一直是一種保障信息安全的手段,其中最簡單的一種加密方法就是采用密鑰加密。如下是對小寫字母利用密鑰加密的基本算法:①輸入密鑰a(0②設置i的初值為0,s1的初值為空串③獲取待加密字符串s的第i個字母c④按字母表順序用字母c后面第a個字母代替字母c;如果字母c后面第a個字母超出了“z”,則返回“a”后再按次序后移(說明:字母“z”后移2位應該變為“b”)⑤將加密完成的字母c連接到s1中⑥i增加1⑦如果i的值小于等于待加密字符串s的長度-1,則返回第③步,否則輸出密文字符串s1(1)如果密鑰為3,那么采用該算法對字符串'axz'加密后的密文應該是 ;同樣,采用該算法獲得密文為'happy',密鑰為5,則加密前的原文是 。 (2)如果要將此算法改為對應的解密算法,僅需改動第 步(僅1個步驟,不考慮原算法其他步驟中“加密”字樣的修改),改為: 。 答案 (1)dac cvkkt (2)④ 按字母表順序用字母c前面第a個字母代替字母c;如果字母c前面第a個字母超出了“a”,則返回“z”后再按次序前移2.設計一個算法,求1-1/2+1/3-1/4+…+1/9-1/10的值。流程圖如圖所示,請回答下列問題:(1)本題主要使用的算法控制結構為 。(選填,填字母) A.順序結構 B.分支結構 C.循環結構(2)請將流程圖中的①、②補充完整:① ② (3)虛線框處③適合的選項是 。 答案 (1)C (2)①s=s+(-1)i+1/I ②i=i+1 (3)A解析 本題主要考查算法思維及流程圖的綜合應用,算法的控制結構。(1)從流程圖可知為循環結構。(2)注:將題中判斷框中條件改為i>=10 循環體部分為1/i,當i為奇數時,前面系數為1,i為偶數時前面系數為-1,聯系數學知識,可以用(-1)i+1來表示系數的正負,因此①為s=s+(-1)i+1/i。(3)流程圖中輸出需要用到平行四邊形框。3.紅外測溫儀可以在合適的距離實現非接觸測溫,在醫院、學校、車站等場所有其明顯優勢。分析其測溫過程:(1)測溫儀通過先紅外溫度傳感器獲取數據,然后進行計算,最后顯示體溫溫度。解決測溫問題的這一系列的步驟屬于 。(選填,填序號,①算法 ②運算) (2)測溫過程的步驟是有限的,體現算法的 ,每一個步驟操作是明確,體現算法的 ,一次測溫過程中最終顯示的體溫數據,體現算法的 。(選填,填序號,①有窮性 ②可行性 ③確定性 ④0個或多個輸入 ⑤1個或多個輸出) 答案 (1)① (2)① ③ ⑤ (3)D解析 本題考查算法解決問題的一般過程。(1)算法是解決問題的方法和步驟,算法中用到的是數據。(2)測量溫度次數是有限的,體現有窮性。一次測量不能確定解決問題方案是否可行,但答案是確定的,體現確定性。同時輸出了溫度體現了輸出。(3)如果測量結果超過37.2的,測溫儀有提示音。該判斷部分描述過程中需要用到的流程圖基本圖形是 。 4.印度有個國王打算獎賞發明了國際象棋的大臣,國王問他想要什么,他對國王說:“陛下,我只要一些麥粒,請您在這張棋盤的第一格放1粒麥子,第二格放2粒麥子,第三格放4粒麥子,第4格放8粒麥子,一次類推到64格棋盤。”國王覺得這個要求太容易滿足了,就答應了,當人們把一袋一袋的麥子搬來開始計數時,國王發現,就是把全印度的麥粒全部拿來,也滿足不了他的要求,那么,這位大臣要求得到的麥子到底是多少呢 圖a(1)根據大臣的要求,第6格中放的麥粒數為 。 (2)解決麥粒問題的流程圖如圖b,使用的算法控制結構是 。(選填,填字母,A.順序結構 B.分支結構 C.循環結構) 圖b(4)流程圖中s的值指的是 。 答案 (1)32 (2)C (3)①p←1②p←2i或者 ②p←p×2(←寫成=也可,×寫成*也可) (4)總麥粒數解析 本題考查算法的表示。(1)根據規則,第i格的麥粒數量是2i-1。(2)流程從出口回到入口,因此是循環結構。(3)p是每天的麥粒數量,當i為1時,值為1;計算好下一天的數量后,i加1,因此②處為p←2i。(4)根據s←s+p可知,s表示的是所有麥粒的總和。5.某算法的部分流程圖如圖所示。執行流程后,若最終i的值為5,則輸入的n值可能是 。 答案 16解析 本題流程圖的功能是將正整數n經過4次運算后變為1。當n是偶數時,則變為原來的1半,如果是奇數時,變為3n+1。整數16經過4次運算,依次變為8、4、2、1,因此,答案為16。6.某算法的部分流程圖如圖所示。觀察流程圖,請回答下列問題:(1)輸入m、n的值分別為3和5,則輸出a、i的值依次是 。 (2)該流程圖實現的功能是_________________。答案 (1)15 5 (2)求整數m、n的最小公倍數解析 本題主要考查觀察能力和算法思維。(1)(2)通過不斷擴大整數m的倍數,并嘗試它能否整除整數n,若能,則問題解決,輸出此時的a(m的倍數)和i的值(擴大的倍數),當i=3時,a=15,a正好能整除n,因此輸出的a、i的值依次是15和5。7.十進制整數轉換為二進制數。將一個十進制整數轉換為二進制數的方法為:將該整數除以8,得到一個余數,然后再將該整數整除8,又得到一個整數,如此繼續,直到商為0,最后將余數從后往前拼接起來,就是該整數所對應的八進制數。假設整數為x,余數為k,按要求完成以下任務:(1)分析問題,確定解決此問題所使用的控制結構,并列出十進制數轉換為八進制數的關鍵步驟。(2)確定算法,畫出相應的流程圖。答案 (1)使用循環結構解決此問題。關鍵步驟有:①求余數r,r←x%8;②求整數商,x=x∥8。(2)解決此問題的流程圖如圖所示。解析 本題考查用算法解決具體問題的各個過程。(1)十進制整數轉換為八進制數的方法可概括為除8取余,重復運算,直到商為0,因此是一個循環結構。關鍵步驟有:①求余數r,r←x%8;②求整數商,x=x∥8。(2)通過分析問題,確定解決問題的方法后,就可以設計算法。該算法用到的控制結構是循環結構,相應的流程圖如答案中所示。8.角谷猜想是指一個正整數x,如果x是奇數,則將其乘以3,然后再加1;如果是偶數,則將其除以2。這樣經過若干次運算后,總可以得到自然數1。小明根據角谷猜想進行了算法設計,并用如下流程圖來描述該算法。請回答下列問題:(1)解決此問題所使用的控制結構為 。 (2)根據本題算法的流程圖所示,則流程圖中①②處應填寫的內容分別是:① ;② 。 (3)若輸入x的值為5,則輸出的運算次數為 ;若輸入x的值為128,則輸出的運算次數為 (填數字)。 答案 (1)循環結構 (2)①x==1 或x<=1 或x等于1嗎 ②x←3x+1或x←3*x+1或x←3×x+1(←改為等號也算對) (3)5 7課時3 用算法解決問題的過程課時目標1.了解計算機編程解決問題的一般過程,解決編程過程中遇到的問題。2.學會通過抽象與建模、設計算法、編寫程序、調試運行的步驟去解決。使用計算機解決問題的一般過程為:抽象與建模、設計算法和描述算法。1.抽象與建模抽象與建模指的是從現實項目的真實情境中提煉出核心要素并加以確定或假設,最終定義出一個有明確________________________的問題,并用________________描述解決問題的計算模型。抽象與建模可以通過下列兩個步驟逐步分析出計算模型:(1)提煉核心要素并加以確定或假設。(2)用數學符號描述解決問題的計算模型。2.設計算法在計算模型的基礎上,遵循算法的特征、圍繞算法的要素設計算法,并選擇恰當的方式合理地描述算法。對任何數據的處理,總體上都需要經歷下列三個步驟:(1)輸入數據。(2)處理數據。(3)輸出處理結果。3.描述算法可以使用自然語言、流程圖、偽代碼或計算機程序設計語言來描述算法。4.編寫程序要讓計算機按照預先設計的算法進行處理,需要將該算法用計算機程序設計語言進行描述,即編寫計算機程序。5.調試運行程序通過運行程序,讓計算機自動執行程序中的命令,并對結果進行檢測分析和驗證。1.抽象與建模:即分析問題,對問題進行定性分析,運用歸納和演繹等方法,確定問題的性質,然后進行定量分析,即確定問題的數量特征、數量關系與數量變化等特征。2.設計算法:根據問題的抽象與建模,把解決問題的方案準確而完整地描述出來。可以使用自然語言,偽代碼,流程圖等形式描述算法。3.編寫程序:選擇一門計算機程序語言,把設計好的算法轉換成相應的計算機程序。4.調試運行:通過調試運行程序,找出“錄入錯誤、語法錯誤、邏輯錯誤”等問題并修正。例1 張亮參與了“求圓周率π”的項目實踐,該項目要求自己編寫程序求圓周率。張亮小組通過查詢資料,獲得了多個計算圓周率π的方法,他們選擇了下面的公式,并通過運算100萬項、1000萬項和1億項三種情況,對比查看結果的精確度。=······…(1)用計算機解決問題的過程一般包括四步:①設計算法,②調試運行程序,③編寫程序,④抽象與建模,這四個步驟的正確順序是________________;(2)張亮用流程圖描述算法如圖所示,該算法屬于________結構(填:順序/分支/循環)。(3)為使流程圖能正確實現上述公式的計算,請完成其中的填空:①________________②________________③________________(4)項目完成后,最終的運行結果如圖所示,從圖中可以得到________(多選,全部選對得2分,部分選對得1分,選錯不得分)。A.算法必須有輸入和輸出,缺一不可B.如果輸入的值特別大,導致該算法不能在有限的時間內輸出結果,這就違背了算法的可行性C.根據運行結果推斷,若運算次數為10億時,在個人電腦上可以準確算出π的八位小數D.該算法運算次數越多結果越精確,這說明該算法不具備有窮性聽課筆記: 變式訓練1 某手機APP程序為了增加程序熱度,采用“簽到換積分得獎品”的形式來吸引用戶使用。簽到積分的規則為:第1天簽到得1分,第2天簽到得2分,第3天簽到得3分,……第7天及7天以上簽到得7分;一旦中途漏簽,簽到積分從1分開始計算。下圖所示的簽到獲得的總積分為14分。第1天+1分 第2天 第3天+1分 第4天+2分 第5天+3分 第6天+4分 第7天 第8天+1分 第9天+2分現利用“0”“1”記錄簽到情況,其中“1”表示正常簽到,“0”表示斷簽,輸出獲得的總積分數。例如,上圖輸入可以表示為“101111011”,輸出結果為14分。請回答下列問題:(1)若簽到記錄為“100111110111”,則獲得的總積分為________________。(2)在計算簽到總積分時,“第7天簽到得7分”,屬于算法三要素中的________(選填:數據/運算/控制轉移)。(3)程序部分流程圖如圖所示,請將流程圖補充完整。①________________②________________(4)流程圖中“flag=True”代表的含義是________________。例2 某景點門票收費規定如下:身高在1米1及以下的人免費;超過1米1,但不超過1米4的人收取全票費用的一半;超過1米4的人收取全票。假設人的身高為h米,全票費用為s元,按要求完成以下任務:(1)分析問題,列出求解門票mp的數學表達式。(2)確定算法,畫出相應的流程圖。聽課筆記: 變式訓練2 鐵路旅客托運行李,從甲地到乙地,規定如下:每張客票托運行李不超過50千克時,每千克的運費為1.3元;若超過50千克,超過的部分按每千克1.8元的運費計算。假設行李重量為W千克,運費為P元,按要求完成以下任務:(1)分析問題,列出求解門票P的數學表達式。(2)確定算法,畫出相應的流程圖。1.編制計算機程序解決問題的過程有:描述問題、算法設計、編寫計算機程序和調試等,其中,對算法描述正確的是( )A.算法是解決問題的步驟和方法B.算法可以看成按照要求設計好的有限的確切的計算序列,并且這樣的步驟或序列只能解決當前問題C.算法就是解題的算式D.算法必須在計算機上實現2.有一種ASCII字符加密的算法,其加密過程如下:①將明碼中每個字符的八位二進制ASCII碼(不足八位的左端補0,湊足八位)分成兩段(左4位高位段,右4位低位段)。如字符“C”的二進制ASCII碼為01000011,分段后為0100,0011;②將高位段(左邊4位)左移一位,并將原第一位數碼移至最后(如0100轉化為1000),再轉化為十六進制數(如1000轉化為8);③對低位段(右邊4位)執行②同樣的算法,如0011→0110→6;④順次連接兩位十六進制數,得到該字符的密文,如“C”的密文為“86”;⑤將每個字符的密文按明碼的順序連接。用Python編寫的程序運行結果如圖所示,請回答下列問題:(1)按照加密算法,明碼字符“J”的密文是__________;密文“C2”的明碼是________;(2)假設某字符ASCII值十進制數為m,則該數的高位段是________,低位段是________(結果都是十進制);(3)假設(2)中高位段的四位二進制轉十進制為n,則經過加密算法第②步運算:左移一位,將原第一位移至最后,得到的值是____________(結果為十進制)。 展開更多...... 收起↑ 資源列表 課時3 用算法解決問題的過程 學案 浙教版(2019)必修1.doc 課時3 用算法解決問題的過程 教案 浙教版(2019)必修1.doc 課時3 用算法解決問題的過程 課件(共43張ppt)浙教版(2019)必修1.pptx 縮略圖、資源來源于二一教育資源庫