![第16講基本算法語句_第1頁](http://file4.renrendoc.com/view/5f0fadeb3a1d45dea81ace03fa3f16e8/5f0fadeb3a1d45dea81ace03fa3f16e81.gif)
![第16講基本算法語句_第2頁](http://file4.renrendoc.com/view/5f0fadeb3a1d45dea81ace03fa3f16e8/5f0fadeb3a1d45dea81ace03fa3f16e82.gif)
![第16講基本算法語句_第3頁](http://file4.renrendoc.com/view/5f0fadeb3a1d45dea81ace03fa3f16e8/5f0fadeb3a1d45dea81ace03fa3f16e83.gif)
![第16講基本算法語句_第4頁](http://file4.renrendoc.com/view/5f0fadeb3a1d45dea81ace03fa3f16e8/5f0fadeb3a1d45dea81ace03fa3f16e84.gif)
![第16講基本算法語句_第5頁](http://file4.renrendoc.com/view/5f0fadeb3a1d45dea81ace03fa3f16e8/5f0fadeb3a1d45dea81ace03fa3f16e85.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
第第#頁共12頁解析:方差是在初中統(tǒng)計(jì)內(nèi)容中學(xué)習(xí)過的知識,計(jì)算所有數(shù)的方差首先計(jì)算所有數(shù)(X一x)2+(x一x)2+ +(x一x)2的平均數(shù)x,通過公式S2二二一-一二_ 二一-來計(jì)算。n算法步驟:a+b+c第一步:計(jì)算平均數(shù)x= 34 “ (x一a)2+(x一a)2+(x一a)2第二步:計(jì)算方差S2二-——-一一-——-;第三步:得到的結(jié)果即為所求。程序如下:INPUTa,b,cy=(a+b+c)/3S=((a-y)2+(b-y)2+(c-y)2)/3PRINTSEND點(diǎn)評:套用公式求值問題是傳統(tǒng)數(shù)學(xué)求值問題的一種,它是一種典型的順序結(jié)構(gòu),也就是說只通過輸入、輸出和賦值語句就可以完成任務(wù)。解決這類問題的關(guān)鍵是先分析這種問題的解法,即構(gòu)造計(jì)算的過程,再寫出算法步驟和流程圖,再翻譯成算法語句即可。例4.編寫一個(gè)程序,要求輸入的兩個(gè)正數(shù)a和b的值,輸出ab和ba的值。解析:可以利用INPUT語句輸入兩個(gè)正數(shù),然后將ab和ba的值分別賦給兩個(gè)變量輸出即可。也可以將ab和ba的底數(shù)和冪數(shù)進(jìn)行交換,故還可以利用賦值語句,采用將兩個(gè)變量的值互換的辦法實(shí)現(xiàn)。程序1:INPUT“a,b:”;a,bA=aAbB=baaPRINT“ab=”;A,“ba=”;BEND程序2:INPUT“a,b:”;a,bA=aAbPRINT“ab=”;Ax=aa=bb=x
A=aAbPRINT“ab=”;AEND點(diǎn)評:交換a,b的值可通過下面三個(gè)語句來實(shí)現(xiàn):t二aa=bb=t通過引進(jìn)一個(gè)變量t實(shí)現(xiàn)變量a和b的值的交換,因此只需用賦值語句即可實(shí)現(xiàn)算法。在一些較為復(fù)雜的問題算法中經(jīng)常需要對兩個(gè)變量的值進(jìn)行交換,因此應(yīng)熟練掌握這種方法。題型3:條件語句例5.編寫程序,輸出兩個(gè)不相等的實(shí)數(shù)a、b的最大值。解析:要輸出兩個(gè)不相等的實(shí)數(shù)a、b的最大值,從而想到對a,b的大小關(guān)系進(jìn)行判斷,a,b的大小關(guān)系有兩種情況:(1)a>b;(2)b>a,這也就用到了我們經(jīng)常提及的分類討論的方式,找出兩個(gè)數(shù)的最大值。解:算法一:第一步:輸入a,b的數(shù)值;第二步:判斷a,b的大小關(guān)系,若a>b,則輸出a的值,否則輸出b的值。(程序框圖如右圖)程序如下:(“IF—THEN—ELSE”語句)INPUT“a,b”;a,bIFa>bTHENPRINTaELSEPRINTbENDIFEND算法二:第一步:輸入a,b的數(shù)值;,則將b的值賦予a;否則直接執(zhí)行第三步;第二步:判斷a,b,則將b的值賦予a;否則直接執(zhí)行第三步;(程序框圖如右圖)程序如下:“IF—THEN”語句)INPUT“a,b”;a,bIFb>aTHENa=bENDIFPRINTaEND點(diǎn)評:1.一個(gè)“好”的算法往往像上面教材例題中的“小技巧”,要熟練、有效的使用它們,則需要在大量的算法設(shè)計(jì)中積累經(jīng)驗(yàn)。我們也可以先根據(jù)自己的思路設(shè)計(jì)算法,再與“成形”的、高效的、優(yōu)秀的算法比較,改進(jìn)思路,改進(jìn)算法,以避免重復(fù)計(jì)算等問題,提高算法設(shè)計(jì)的水平!2.我們在平常的訓(xùn)練中盡可能的少引用變量,過多的變量不僅會使得算法和程序變得復(fù)雜,而且不利于計(jì)算機(jī)的執(zhí)行。為此,我們在練習(xí)中要積極思考盡可能少引入變量以及如何才能少引入變量。例6.高等數(shù)學(xué)中經(jīng)常用到符號函數(shù),符號函數(shù)的定義為y=<0,x=0,試編寫程-1,x<0輸出1序輸入x的值,輸出y的值。程序一:(嵌套結(jié)構(gòu))程序框圖:(右圖)程序語言:輸出1INPUTxIFx>0THENy=1ELSEIFx=0THENy=0ELSEy=-1ENDIFENDIFPRINTyEND程序二:(疊加結(jié)構(gòu))
程序框圖:程序如下:INPUTxIFx>0THENy=1ENDIFIFx=0THENy=0ENDIFIFx<0THENy=-1ENDIFPRINTyEND點(diǎn)評:1.條件結(jié)構(gòu)的差異,造成程序執(zhí)行的不同。當(dāng)代入的數(shù)值時(shí),“程序一”先判斷外層的條件,依次執(zhí)行不同的分支,才有可能判斷內(nèi)層的條件;而“程序二”中執(zhí)行了對“條件1”的判斷,同時(shí)也對“條件2”進(jìn)行判斷,是按程序中條件語句的先后依次判斷所有的條件,滿足哪個(gè)條件就執(zhí)行哪個(gè)語句。2.條件語句的嵌套可多于兩層,可以表達(dá)算法步驟中的多重限制條件。題型4:循環(huán)語句例7.設(shè)計(jì)一個(gè)計(jì)算1X3X5X7X?X99的算法,編寫算法程序。解析:算法如下:第一步:s—1;第二步:i=3;第三步:s―sXi;第四步:i=i+2;第五步:如果iW99,那么轉(zhuǎn)到第三步;第六步:輸出s;程序如下:(“WHILE型”循環(huán)語句)s—1i—3WHILEiV=99s=s*ii=i+2WENDPRINTsEND點(diǎn)評:你能用“UNTIL”型循環(huán)語句表示“典例1”中的程序嗎?例8.編寫一個(gè)程序,求1!+2!+…+10!的值。解析:這個(gè)問題是求前10個(gè)正整數(shù)的階乘之和,可以用“WHILE+WHILE”循環(huán)嵌套語句格式來實(shí)現(xiàn)。程序結(jié)構(gòu)要做到如下步驟:①處理"”的值;(注:處理值的變量就是一個(gè)內(nèi)循環(huán)變量)②累加“”的值。(注:累加值的變量就是一個(gè)外循環(huán)變量)顯然,通過10次循環(huán)可分別求出1!、2!、…、10!的值,并同時(shí)累加起來,可求得S的值。而求T=N!,又可以用一個(gè)循環(huán)(內(nèi)循環(huán))來實(shí)現(xiàn)。程序?yàn)?s=0i=1WHILEi<=10j=1t=1WHILEj<=it=t*jj=j+1WENDs=s+ti=i+1WENDPRINTsEND上面程序中哪個(gè)變量是內(nèi)循環(huán)變量,哪個(gè)變量是外循環(huán)變量?(1)內(nèi)循環(huán)變量:j,t(2)外循環(huán)變量:s,i“典例2”程序是一個(gè)的“WHILE+WHILE”型循環(huán)嵌套語句格式。這是一個(gè)比較好想的方法,但實(shí)際上對于求n!,我們也可以根據(jù)求出的(n—1)!乘上n即可得到,而無需重新從1再累乘到n。程序可改為:s=0i=1j=1WHILEi<=10j=j*is=s+ji=i+1WENDPRINTsEND顯然第二個(gè)程序的效率要比第一個(gè)高得多。第一程序要進(jìn)行1+2+…+10=55次循環(huán),而第二程序進(jìn)行10次循環(huán)。如題目中求的是1!+2!+…+1000!,則兩個(gè)程序的效率區(qū)別更明顯。點(diǎn)評:解決具體的構(gòu)造循環(huán)語句的算法問題,要盡可能的少引入循環(huán)變量,否則較多的變量會使得設(shè)計(jì)程序比較麻煩,并且較多的變量會使得計(jì)算機(jī)占用大量的系統(tǒng)資源,致使系統(tǒng)緩慢。另外,也盡可能使得循環(huán)嵌套的層數(shù)少,否則也浪費(fèi)計(jì)算機(jī)的系統(tǒng)資源。題型5:實(shí)際應(yīng)用例9.中國網(wǎng)通規(guī)定:撥打市內(nèi)電話時(shí),如果不超過3分鐘,則收取話費(fèi)0.22元;如果通話時(shí)間超過3分鐘,則超出部分按每分鐘0.1元收取通話費(fèi),不足一分鐘按以一分鐘計(jì)算。設(shè)通話時(shí)間為t(分鐘),通話費(fèi)用y(元),如何設(shè)計(jì)一個(gè)程序,計(jì)算通話的費(fèi)用。解析:算法分析:數(shù)學(xué)模型實(shí)際上為:y關(guān)于的分段函數(shù)。關(guān)系是如下:022,(0<t<3)y=]。.22+0.1(t-3),(t>3,tgZ)0.22+0.1([t-3]+1),(t>3,t&Z)其中[t—3]表示取不大于t—3的整數(shù)部分。算法步驟如下:第一步:輸入通話時(shí)間t;第二步:如果tW3,那么y=0.22;否則判斷teZ是否成立,若成立執(zhí)行y=0.2+0.1X(t—3);否則執(zhí)行y=0.2+0.1X([t—3]+1)。第三步:輸出通話費(fèi)用c。算法程序如下:INPUT"請輸入通話時(shí)間:”;tIFt<=3THENy=0.22ELSEIFINT(t)=tTHENy=0.22+0.1*(t-3)ELSEy=0.22+0.1*(INT(t-3)+1)ENDIFENDIFPRINT“通話費(fèi)用為:”;yEND點(diǎn)評:實(shí)際應(yīng)用問題,在高考中是一個(gè)熱點(diǎn)。如何將實(shí)際問題轉(zhuǎn)化成數(shù)學(xué)問題是解題的關(guān)鍵,最后還要用算法步驟和程序進(jìn)行表達(dá)。如:中國網(wǎng)通通話費(fèi)的規(guī)定在數(shù)學(xué)中就是通話時(shí)間到通話費(fèi)用的分段函數(shù)。日常生活中的分段函數(shù)問題還有很多:出租車的計(jì)費(fèi)問題、個(gè)人所得稅問題、銀行利率問題等等。例10.編寫程序,計(jì)算數(shù)列{an}的前20項(xiàng)的和。(其中數(shù)列的前幾項(xiàng)分別為1,1,2,3,5,8,??)解析:這是“Fibonacci數(shù)列”的典型特征,從第三項(xiàng)起每一項(xiàng)都是它前兩項(xiàng)的和,即a=a+a。n n-1 n-2程序如下:a=1b=1s=0i=3WHILEi<=20s=s+a+bt=aa=bb=b+ti=i+1WENDPRINTsEND點(diǎn)評:.計(jì)數(shù)變量的作用一般是統(tǒng)計(jì)循環(huán)體執(zhí)行的次數(shù),改變循環(huán)條件的取值,為結(jié)束循環(huán)作準(zhǔn)備。譬如:計(jì)算等差、等比數(shù)列的前n項(xiàng)的和,n就是計(jì)數(shù)變量的臨界值,在當(dāng)型結(jié)構(gòu)中“小于等于n”維持循環(huán),而在直到型循環(huán)結(jié)構(gòu)中“大于n”跳出循環(huán)。.累加變量是最終的輸出結(jié)果。每進(jìn)入一次循環(huán)體隨著計(jì)數(shù)變量改變而改變。累加變量的初始值通常為0。五.思維總結(jié)在設(shè)計(jì)算法的過程中,解決問題的基本思想常常很簡單、很清楚,但表述參與運(yùn)算的數(shù)值的頻頻變換卻很麻煩。為了解決這個(gè)問題,需要在程序中引入變量。前面通過對函數(shù)概念的學(xué)習(xí),我們就已經(jīng)了解變量的含義:在研究問題的過程中可以取代不同數(shù)值的量稱為變量。程序中一些重要的函數(shù)也很有用處,如取平方根函數(shù)SQR(x)=lxl,取絕對值函數(shù)ABS[x,x>0(x)=5 。[—x,x<0變量與函數(shù)是中學(xué)數(shù)學(xué)里面最重要的和最基本的概念,在算法的設(shè)計(jì)里面仍然發(fā)揮著重要的和最基本的作用,它們會使得算法的表達(dá)變得非常整潔、清楚。1.賦值語句在程序運(yùn)行時(shí)給變量賦值;“=”的右側(cè)必須是表達(dá)式,左側(cè)必須是變量;一個(gè)語句只能給一個(gè)變量賦值;有計(jì)算功能;將一個(gè)變量的值賦給另一個(gè)變量時(shí),前一個(gè)變量的值保持不變;可先后給一個(gè)變量賦多個(gè)不同的值,但變量的取值只與最后一次賦值有關(guān)。2.條件語句的主要功能是來實(shí)現(xiàn)算法中的條件結(jié)構(gòu)。因?yàn)槿藗儗τ?jì)算機(jī)運(yùn)算的要求不僅僅是一些簡單的代數(shù)運(yùn)算,而是經(jīng)常需要計(jì)算機(jī)按照條件進(jìn)行分析、比較、判斷,并且按照判斷后的不同情況進(jìn)行不同的操作和處理。如果是要解決像“判斷一個(gè)數(shù)的正負(fù)”、“比較數(shù)之間的大小”,“對一組數(shù)進(jìn)行排序”、“求分段函數(shù)的函數(shù)值”等很多問題,計(jì)算機(jī)就需要用到條件語句。3.學(xué)習(xí)了循環(huán)語句的兩種格式,我們來挖掘一下應(yīng)用循環(huán)語句編寫程序的“條件三要素”。第一、循環(huán)語句中的變量一般需要進(jìn)行一定的初始化操作。請看我們用WHILE循環(huán)實(shí)現(xiàn)1到100累加為例,做一下說明:“1+2+??+100”部分程序如下:sum=0i=1WHILEi<=100sum=sum+ii=i+1WEND這段程序中,循環(huán)的條件是“i<=100"
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 個(gè)人電車租車合同范本
- 公司民間借款合同范本
- 辦公裝修協(xié)議合同范例
- 公路養(yǎng)護(hù)補(bǔ)充協(xié)議合同范本
- 二手車銷售中心合同范本
- 健身俱樂部就業(yè)合同范本
- 勞務(wù)薪酬合同范例
- 2025年度家庭寵物養(yǎng)護(hù)保姆服務(wù)合同
- 公司如資金合同范本
- 兼職勞務(wù)合同范本乙方
- 病例展示(皮膚科)
- GB/T 39750-2021光伏發(fā)電系統(tǒng)直流電弧保護(hù)技術(shù)要求
- 教科版五年級科學(xué)下冊【全冊全套】課件
- (更新版)HCIA安全H12-711筆試考試題庫導(dǎo)出版-下(判斷、填空、簡答題)
- 糖尿病運(yùn)動指導(dǎo)課件
- 完整版金屬學(xué)與熱處理課件
- T∕CSTM 00640-2022 烤爐用耐高溫粉末涂料
- 304不銹鋼管材質(zhì)證明書
- 民用機(jī)場不停航施工安全管理措施
- 港口集裝箱物流系統(tǒng)建模與仿真技術(shù)研究-教學(xué)平臺課件
- 新教科版2022年五年級科學(xué)下冊第2單元《船的研究》全部PPT課件(共7節(jié))
評論
0/150
提交評論