

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、 第一章算法初步 定義 肓窮性 特征 確宦性 可行性 算法與程序框圖 程序框圖 W 三種基本謖鎖結(jié)構(gòu) 順序結(jié)構(gòu) 條件結(jié)構(gòu) 循環(huán)結(jié)構(gòu) 算法初步 輸出語(yǔ)句 基本算法語(yǔ)句 賦值語(yǔ)句 算法案例 釧牛語(yǔ)句 循環(huán)銅 知識(shí)梳理 2 、算法的概念 算法通常是指按照一定規(guī)則解決某一類(lèi)問(wèn)題的明確和有限的步驟. 算法具有確定性、有效性、有限性的特征. 、程序框圖 1 構(gòu)成程序框圖的圖形符號(hào)、名稱及其功能如下表: 圖形符號(hào) 名稱 功能 終端框(起止框) 表示一個(gè)算法的起始和結(jié)束 f / 輸入、輸出框 表示 個(gè)算法輸入和輸出的信息 處理框(執(zhí)行框) 賦值、計(jì)算 判斷框 判斷某一條件是否成立,成立時(shí)在出口處標(biāo)明 “是”或
2、“ Y”;不成立時(shí)標(biāo)明“否”或“ N 1 -1 流程線 連接程序框 連接點(diǎn) 連接程序框圖的兩部分 說(shuō)明:一個(gè)完整的程序框圖一定會(huì)包含終端框(用于表示一個(gè)算法的開(kāi)始和結(jié)束),處理框(賦值、計(jì) 算,算法中處理數(shù)據(jù)需要的算式、公式等)和流程線. 2 -算法的三種基本邏輯結(jié)構(gòu) 通常一個(gè)算法只能由三種基本邏輯結(jié)構(gòu)構(gòu)甌這三種基本邏輯結(jié)構(gòu)分別是:順序結(jié)構(gòu)、條件結(jié)構(gòu)和循環(huán) 結(jié)構(gòu). 3 程序框圖的畫(huà)法 在用自然語(yǔ)言表述一個(gè)算法后, 可以畫(huà)出程序框圖,用順序結(jié)構(gòu)、條件結(jié)構(gòu)和循環(huán)結(jié)構(gòu)來(lái)表示這個(gè)算法. 這 樣表示的算法清楚、簡(jiǎn)練,便于閱讀和交流. 設(shè)計(jì)一個(gè)算法的程序框圖通常要經(jīng)過(guò)以下步驟: 第一步,用自然語(yǔ)言表述算法
3、步驟. 第二步,確定每一個(gè)算法步驟所包含的邏輯結(jié)構(gòu),并用相應(yīng)的程序框圖表示,得到該步驟的程序框圖. 第三步,將所有步驟的程序框圖用流程線連接起來(lái),并加上終端框,得到表示整個(gè)算法的程序框圖. 注意:流程線不要忘記畫(huà)箭頭,因?yàn)樗欠从沉鞒虉?zhí)行先后次序的,若不畫(huà)出箭頭,則難以判斷各框的 3 執(zhí)行順序.4 四、算法案例 三、基本算法語(yǔ)句 1. IF-THEN 語(yǔ)句 2. IF-THEN-ELSE 語(yǔ)句 1F條件 THEN 語(yǔ)句3.直到型(UNTIL)語(yǔ)句的一般格式 JX) 循環(huán)體 LOOP UNTIL 條件 4.當(dāng)型(WHILE)語(yǔ)句的一般格式 WHILE條件 陸環(huán)體 WHlLEiS 5 1 .輾轉(zhuǎn)相
4、除法與更相減損術(shù) 輾轉(zhuǎn)相除法與更相減損術(shù)有著相同的算法依據(jù),但要注意運(yùn)算過(guò)程的差別.兩者的區(qū)別是: (1 )輾轉(zhuǎn)相除法進(jìn)行的是除法運(yùn)算,即輾轉(zhuǎn)相除,更相減損術(shù)進(jìn)行的是減法運(yùn)算,即輾轉(zhuǎn)相減,但其 實(shí)質(zhì)都是一個(gè)不斷的遞推過(guò)程. (2)輾轉(zhuǎn)相除法,下一次進(jìn)行相除時(shí),由上一次的除數(shù)和余數(shù)直接相除即可.而更相減損術(shù)下一次相 減前必須有一個(gè)判斷大小的過(guò)程,以區(qū)別誰(shuí)做被減數(shù). 注意:用更相減損術(shù)求兩正整數(shù)的最大公約數(shù)時(shí),若兩數(shù)為偶數(shù),可先約去 2,這時(shí)莫忘記求得的相等 兩數(shù)乘以約簡(jiǎn)的數(shù)才是所求的最大公約數(shù). 2 .秦九韶算法 秦九韶算法的實(shí)質(zhì)是: 求多項(xiàng)式f(x)二anX“ n疋亠的值時(shí),轉(zhuǎn)化為求n個(gè)一次多
5、項(xiàng)式的 值,共進(jìn)行n次乘法運(yùn)算和n次加法運(yùn)算.這種算法的運(yùn)算次數(shù)較少,是多項(xiàng)式求值比較先進(jìn)的算法. 3 .進(jìn)位制 把一個(gè)非十進(jìn)制數(shù)轉(zhuǎn)化為另一種非十進(jìn)制數(shù),通常是把這個(gè)數(shù)先轉(zhuǎn)化為十進(jìn)制數(shù),然后再利用除 k取余 法,把十進(jìn)制數(shù)轉(zhuǎn)化為 k進(jìn)制數(shù).6 算法設(shè)計(jì)與一般意義上的解決問(wèn)題不同,它是對(duì)一類(lèi)問(wèn)題的一般解法的抽象與概括,主要借助一般的 問(wèn)題解決方法,又要包括此類(lèi)問(wèn)題的所有情形它往往是把問(wèn)題的解決劃分為若干個(gè)可執(zhí)行的步驟,有時(shí) 甚至是重復(fù)多次,但最終都必須在有限個(gè)步驟之內(nèi)完成. (1) 用數(shù)學(xué)語(yǔ)言描述算法解決問(wèn)題的過(guò)程大體可分為三步: 第一步,明確問(wèn)題的性質(zhì),分析題意. 我們將問(wèn)題簡(jiǎn)單地分為數(shù)值問(wèn)題
6、和非數(shù)值問(wèn)題,不同類(lèi)型的問(wèn)題可以有針對(duì)性地采用不同的方法進(jìn)行 處理. 第二步,建立問(wèn)題的描述模型. 對(duì)于數(shù)值型問(wèn)題,可以建立數(shù)學(xué)模型,通過(guò)數(shù)學(xué)語(yǔ)言來(lái)描述問(wèn)題對(duì)于非數(shù)值型問(wèn)題,我們可以建立 過(guò)程模型,通過(guò)過(guò)程模型來(lái)描述問(wèn)題. 第三步,設(shè)計(jì)、確立算法. 對(duì)于數(shù)值型問(wèn)題,我們可以采用數(shù)值分析的方法進(jìn)行處理,數(shù)值分析中有許多現(xiàn)成的固定算法,我們 可以直接使用當(dāng)然我們也可以根據(jù)問(wèn)題的實(shí)際情況設(shè)計(jì)算法對(duì)于非數(shù)值型問(wèn)題,根據(jù)過(guò)程模型分析算 法并進(jìn)行處理,也可以選擇一些成熟的辦法進(jìn)行處理,如排序、遞推等. (2) 算法設(shè)計(jì)應(yīng)注意: 與解決問(wèn)題的一般方法有聯(lián)系,從中提煉出算法; 將解決問(wèn)題的過(guò)程分為若干個(gè)可執(zhí)行
7、步驟; 引入有關(guān)的參數(shù)或變量對(duì)算法步驟加以表達(dá); 用最簡(jiǎn)練的語(yǔ)言將各個(gè)步驟表達(dá)出來(lái); 算法的執(zhí)行要在有限步內(nèi)完成. 7 例1已知平面直角坐標(biāo)系中兩點(diǎn) A(_1,0) , B(3,2),寫(xiě)出求線段 AB的垂直平分線方程的一個(gè)算法. 【思路分析】本題考查了數(shù)值型問(wèn)題的算法設(shè)計(jì),首先明確線段 AB的垂直平分線的定義,可先由中點(diǎn)坐標(biāo) 公式求出線段 AB的中點(diǎn),然后計(jì)算直線 AB的斜率,由垂直關(guān)系求出 AB的垂直平分線的斜率,最后由點(diǎn) 斜式寫(xiě)出直線方程. 【解】算法步驟: 第一步,計(jì)算召二畫(huà)= = 得腫的中點(diǎn) 第二步計(jì)軒得朋的斜率. 第三步,計(jì)算k = - = -2,得宓的垂直平分線的斜率. 第四步、由
8、點(diǎn)斜式寫(xiě)出直線的垂直平分線的方程:$ $ - -1 1 = = - -2 2(工- -1 1), ,輸出 【點(diǎn)評(píng)】(1)數(shù)值性問(wèn)題首先建立數(shù)學(xué)模型,然后將數(shù)學(xué)問(wèn)題的求解過(guò)程細(xì)化過(guò)渡成算法步驟,這是通法. (2 )注意數(shù)學(xué)問(wèn)題的解法不是算法步驟. 例2設(shè)計(jì)一個(gè)算法求ai , a2, a3 , a4,氏五個(gè)不同實(shí)數(shù)中最小的數(shù). 【思路分析】本題考查非數(shù)值型問(wèn)題的算法,按照遞推關(guān)系,先比較 Q與a2,令m為a1和a2中的較小者, 然后比較m與a3,令較小者為m,依次類(lèi)推,得到最小數(shù). 【解】算法步驟: 第一步,比較ai, a2的大小,若ai : a?,則令m =印;若a:印,則令m = a?. 第二
9、步,比較 m , a3的大小,若a3:m,則令m=a3;否則m值不變. 第三步,比較 m , a4的大小,若a4 : m,則令m =玄4 ;否則m值不變. 第四步,比較 m , as的大小,若a5 : m,則令m=as;否則m值不變. 第五步,輸出m. 【點(diǎn)評(píng)】任給有限個(gè)數(shù),求有限個(gè)數(shù)中的最大數(shù)(最小數(shù)) ,在所給數(shù)不是很多的情況下,可設(shè)第一個(gè)數(shù)為 最大數(shù)(最小數(shù)),然后和第二個(gè)數(shù)比較,取出這兩個(gè)數(shù)中的較大者(較小者)再與第三個(gè)數(shù)比較,一直進(jìn) 行下去,直到與最后一個(gè)數(shù)比較完畢.這樣就可以得到答案. 8 1程序框圖是用規(guī)定的圖形和流程線來(lái)準(zhǔn)確、直觀、形象地表示算法的圖形. 2算法的設(shè)計(jì)是畫(huà)程序框
10、圖的基礎(chǔ),我們通過(guò)對(duì)問(wèn)題的分析,寫(xiě)出相應(yīng)的算法步驟,畫(huà)程序框圖之前 應(yīng)先對(duì)算法問(wèn)題設(shè)計(jì)的合法性和合理性進(jìn)行探討,然后分析算法的邏輯結(jié)構(gòu)和各步驟的功能(輸入、輸出、 判斷、賦值和計(jì)算),畫(huà)出相應(yīng)的程序框圖,如果設(shè)計(jì)的程序框圖較為復(fù)雜就采取“逐步求精”的思想設(shè)計(jì) 框圖,先將問(wèn)題中的簡(jiǎn)單部分明確出來(lái),再逐步對(duì)復(fù)雜部分進(jìn)行細(xì)化,然后一步一步逐步向前推進(jìn),設(shè)計(jì) 出程序框圖. 例1某商場(chǎng)進(jìn)行優(yōu)惠促銷(xiāo):若購(gòu)物金額 x在500元以上,打8折;若購(gòu)物金額x在300元以上,打9折; 否則,不打折,設(shè)計(jì)算法和程序框圖,要求輸入購(gòu)物金額為 x,即能輸出實(shí)際交款額. 【思路分析】 本題考查了條件結(jié)構(gòu)的程序框圖, 關(guān)鍵是
11、由題意列出實(shí)際交款額 y與購(gòu)物金額x之間的函數(shù)關(guān) x x, 300, 系式 y = 0.9x 300 : x, 500, I 0.8x x 500, 它需要對(duì)x進(jìn)行三次判斷, 算法含有兩個(gè)條件結(jié)構(gòu). 【解】算法步驟:第一步,輸入購(gòu)物金額 x 第二步,判斷x, 300是否成立,若成立,則 y二x ;否則,執(zhí)行第三步. 第三步,判斷x, 500是否成立,若成立,則 y=0.9x ;否則,y = 0.8x 第四步,輸出y,結(jié)束算法. 程序框圖: 9 /輸岀y/ 【點(diǎn)評(píng)】畫(huà)程序框圖的關(guān)鍵是分析算法的步驟,因?yàn)槌绦蚩驁D是算法步驟的圖形表示,所以算法步驟越明 確畫(huà)圖就越容易;另外,在分段函數(shù)這種需要對(duì)條件
12、進(jìn)行判斷的算法設(shè)計(jì)中,宜使用條件結(jié)構(gòu). 例2看下面的問(wèn)題:1+2+3+( ) 10000 .這個(gè)問(wèn)題的答案不唯一,我們只要確定出滿足條件 的最小正整數(shù)n0,括號(hào)內(nèi)填寫(xiě)的數(shù)字只要大于或等于 n0即可試寫(xiě)出尋找滿足條件的最小正整數(shù) n0的算法 并畫(huà)出相應(yīng)的程序框圖. 【思路分析】本題考查的是循環(huán)結(jié)構(gòu)的程序框圖的設(shè)計(jì)、關(guān)鍵設(shè)計(jì)循環(huán)體,本題為累加型循環(huán)結(jié)構(gòu),故累 加變量p的初始值為0,計(jì)數(shù)變量i的初始值i =0,循環(huán)體:i =:i 1 , p = p i . 本題也可以利用公式法 s= 創(chuàng),變量S每一次的取值,都是n變化后的賦值. 2 【解】方法一:算法步寢: 第步p p = = 第二步, 第三步,n
13、 n 第四步 第五步/若1010000,000,則輸出口否則,執(zhí)行第三步. 該算法的程序框團(tuán)如團(tuán)所示.10 方法:算法步騷; 第一步,取打的值等于-第二步,計(jì)算用=笛巴. 第三步,如果S的值大于10000,那么輸出心否則,讓刃的值増加1后轉(zhuǎn)到第二步重復(fù)操作. 根抿次上的操作步靈可以畫(huà)出如圖所示的程序框圖. 【點(diǎn)評(píng)】(1)方法二的初始值n從1開(kāi)始,若從一個(gè)較大的 n的初始值開(kāi)始,可以減少計(jì)算機(jī)執(zhí)行的時(shí)間. (2)在循環(huán)結(jié)構(gòu)中,要注意根據(jù)條件設(shè)計(jì)合理的計(jì)數(shù)變量、累加變量及其個(gè)數(shù),特別要注意條件的表述要 恰當(dāng)、精確. (3) 累加變量的初始值一般取 0. 根據(jù)程序框圖設(shè)計(jì)程序關(guān)鍵在于: (1) 明確
14、程序框的結(jié)構(gòu)(順序結(jié)構(gòu)、條件結(jié)構(gòu)、循環(huán)結(jié)構(gòu)) 根據(jù)程序框圖設(shè)計(jì)程序 11 (2) 明確各程序框的含義. (3) 明確各結(jié)構(gòu)及程序框?qū)?yīng)的程序語(yǔ)言. 可簡(jiǎn)記為“一看結(jié)構(gòu),二看框,程序語(yǔ)言用恰當(dāng)”. 例1請(qǐng)寫(xiě)出如圖所示的程序框圖描述的算法程序. 【思路分析】本題考查了條件語(yǔ)句的設(shè)計(jì),通過(guò)觀察我們發(fā)現(xiàn)這個(gè)程序框圖描述的算法含有兩個(gè)條件結(jié) 2 x -1 x1, 構(gòu).通過(guò)進(jìn)一步分析我們還會(huì)發(fā)現(xiàn)這是一個(gè)求分段函數(shù) y=2x+1 -1剟x 1,的函數(shù)值的算法.輸入、輸出 I 2 彳 x 1 X :: -1 框分別對(duì)應(yīng)輸入、輸出語(yǔ)句、判斷框?qū)?yīng)條件語(yǔ)句. 【解】所求算法程序?yàn)椋?INPUT “ Please
15、in put x= ”; x IF x1 THEN y=x?2-1 ELSE IF x-1 THEN y= x?2+1 ELSE y=2 *x+1 END IF 12 END IF PRINT “函數(shù)值為y=”; y ENDs=0 13 【點(diǎn)評(píng)】(1)在本程序中,IF THEN ELSE語(yǔ)句嵌入了另一個(gè) IF THEN ELSE語(yǔ)句,在每一個(gè)語(yǔ)句結(jié)束 時(shí)都要寫(xiě)END IF ; (2) 上述兩個(gè)語(yǔ)句的先后層次關(guān)系, 我們用縮進(jìn)若干空格的辦法來(lái)體現(xiàn), 從而使程序?qū)哟畏置鳎?便于檢閱; (3) 若程序中有幕,其底數(shù)和指數(shù)之間要用專用符號(hào)“ ?”連接. 例2.個(gè)球從100 m的高度落下,每次落地后又反
16、跳回原高度的一半,再落下,在第 10次落地時(shí),小球 共經(jīng)過(guò)多少路程?畫(huà)出程序框圖,并根據(jù)程序框圖寫(xiě)出程序. 【思路分析】 本題考查的是彳It環(huán)語(yǔ)句的程序i殳計(jì), 關(guān)鍵分清循環(huán)體結(jié)構(gòu)的設(shè)計(jì), 本題是實(shí)際應(yīng)用題. 第1次下落的高度妬LOOm; 第2次下藩的高度親=贏=50m; 霜孑次下落的咼度 = 1 =25叫 第10次下落的咼度論=舟虬. 二遞推關(guān)系式是=100m,也 弓屯(L.2,刃 到第10次落地時(shí),共經(jīng)過(guò)的路程為坷十地十純卄+M廠縮+応珂十 訥,故可將生 作為累加變量,(作為計(jì)數(shù)孌重. 【解】程序框圖: 開(kāi)始 _ _ / h=100 1=1 ss*2h T A s=j100 /輸出 i=M
17、 T T 結(jié)束 根據(jù)程序框圖,可設(shè)計(jì)程序如下: h=100 i=1 14 WHILE i=10 s=s+2* h h=h/2 i=i+1 WEND s=s-100 PRINT s END 【點(diǎn)評(píng)】由于球每次下落的高度都是前一次下落后高度的一半,故可引進(jìn)一個(gè)變量,對(duì)其累乘即可求得每 根據(jù)程序畫(huà)程序框圖要做到: (1) 明確程序是由哪些關(guān)鍵語(yǔ)句構(gòu)成的(條件語(yǔ)句、循環(huán)語(yǔ)句) (2) 明確各類(lèi)語(yǔ)句定義符號(hào)的含義; (3) 明確各類(lèi)語(yǔ)句對(duì)應(yīng)的程序框圖. 可簡(jiǎn)記為“抓關(guān)鍵,補(bǔ)符號(hào),按照規(guī)則畫(huà)出來(lái)”. 例1請(qǐng)根據(jù)給出的算法程序畫(huà)出程序框圖. a=1 b=1 i=2 WHILE i v =12 c=a+b a=b 15 b=c i=i+1 WEND PRINT c END 【思路分析】本程序是一個(gè)當(dāng)型循環(huán)結(jié)構(gòu),本程序的關(guān)鍵語(yǔ)句是一個(gè)當(dāng)型循環(huán)語(yǔ)句,盤(pán)=1, b=? 22都 是賦倩語(yǔ)句(茸中混計(jì)數(shù)變量人PRINT c是輸出語(yǔ)句,WHI
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 開(kāi)幕式致辭與未來(lái)發(fā)展規(guī)劃演講文本
- 不同類(lèi)型疾病患者就醫(yī)習(xí)慣分析表
- 農(nóng)業(yè)觀光可行性報(bào)告
- 企業(yè)培訓(xùn)員工的方式
- 農(nóng)業(yè)科技成果
- 股東合作與投資方案說(shuō)明書(shū)
- 全國(guó)光伏發(fā)電項(xiàng)目
- 育嬰師復(fù)習(xí)測(cè)試題
- 農(nóng)村金融投資者保護(hù)指南
- 中級(jí)養(yǎng)老護(hù)理復(fù)習(xí)測(cè)試卷含答案(二)
- 住建局發(fā)布!建設(shè)工程消防驗(yàn)收常見(jiàn)質(zhì)量通病手冊(cè)
- 辦公樓招商知識(shí)培訓(xùn)課件
- 2025北新集團(tuán)建材股份有限公司應(yīng)屆生招聘筆試參考題庫(kù)附帶答案詳解
- 國(guó)家鐵路局直屬事業(yè)單位社會(huì)統(tǒng)一招聘考試真題2024
- 跨學(xué)科實(shí)踐:制作簡(jiǎn)易活塞式抽水機(jī) -2024-2025學(xué)年人教版物理八年級(jí)下學(xué)期
- 廣西壯族自治區(qū)馬山縣實(shí)驗(yàn)高中-主題班會(huì)-高中如何上好自習(xí)課【課件】
- 2025年阜陽(yáng)科技職業(yè)學(xué)院?jiǎn)握新殬I(yè)技能測(cè)試題庫(kù)及答案1套
- 2025屆高考語(yǔ)文復(fù)習(xí):歷年高考語(yǔ)文錯(cuò)別字選擇題
- 二零二五醫(yī)療影像數(shù)據(jù)標(biāo)注與審核服務(wù)合同范本3篇
- GB/T 18851.2-2024無(wú)損檢測(cè)滲透檢測(cè)第2部分:滲透材料的檢驗(yàn)
- 正弦穩(wěn)態(tài)電路分析
評(píng)論
0/150
提交評(píng)論