基本的算法語句_第1頁
基本的算法語句_第2頁
基本的算法語句_第3頁
基本的算法語句_第4頁
基本的算法語句_第5頁
已閱讀5頁,還剩16頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

§1.3基本的算法語句教學(xué)目標(biāo):教學(xué)重點(diǎn):教學(xué)難點(diǎn):教學(xué)過程:一、引入程序設(shè)計(jì)語言有很多種.如BASIC,Foxbase,pascal,C語言,C++,J++,VB,VC,JB為了實(shí)現(xiàn)算法中的三種基本的邏輯結(jié)構(gòu):順序結(jié)構(gòu)、條件結(jié)構(gòu)和循環(huán)結(jié)構(gòu),各種程序和循環(huán)語句.今天,我們一起用類BASIC語言學(xué)習(xí)輸入語句、輸出語句、賦值語句、條二、講授新課(一)輸入語句、輸出語句和賦值語句1.輸入語句格式:INPUT②“提示內(nèi)容”是提示用戶輸入什么樣的信息,“提示內(nèi)容”和它后面的“;”可以省略;③程序框圖中的輸入框轉(zhuǎn)化為算法語句就是輸入語句;④一個(gè)語句可以給多個(gè)變量賦值,中間用“,”分隔;⑤無計(jì)算功能;⑥用戶由鍵盤輸入的數(shù)據(jù)必須時(shí)常量,輸入多個(gè)數(shù)據(jù)時(shí),用“,”分隔,且個(gè)數(shù)要與變量的個(gè)數(shù)相同.輸出語句格式:PRINT②“提示內(nèi)容”是提示用戶想輸出什么樣的信息,“提示內(nèi)容”和它后面的“;”可以省略;③程序框圖中的輸出框轉(zhuǎn)化為算法語句就是輸出語句;④表達(dá)式可以是變量、計(jì)算公式或系統(tǒng)信息;⑤一個(gè)語句可以輸出多個(gè)表達(dá)式,不同的表達(dá)式之間用“,”分隔;⑥有計(jì)算功能,能直接輸出計(jì)算公式.賦值語句格式:LET③“LET”可以省略,“=”的右側(cè)必須是表達(dá)式,左側(cè)必須是變量;④一個(gè)語句只能給一個(gè)變量賦值;⑤有計(jì)算功能;⑥將一個(gè)變量賦值給另一個(gè)變量,前一個(gè)變量的值保持不變,可先后給一個(gè)變量賦多個(gè)不同的值,但變量的去職總是最后被賦予的值.用BASIC執(zhí)行程序中的語句,每個(gè)完整的程序最后一行是END語句(又稱結(jié)束語句)表示程序(二)條件語句1.1框圖格式

IF THEN語句體AENDIF

是條件P?A否IF THEN語句1ELSE語句2ENDIF功能:當(dāng)計(jì)算機(jī)執(zhí)行上述語句時(shí),首先對IFPIF THEN語句1ELSE語句2ENDIF格式2格式

條件是1

否語句2IFP,1,在執(zhí)行ENDIF滿足條件P2,再執(zhí)行ENDIF句.兩種格式的比較相同點(diǎn):首先對IFTHENIF—THEN—ELSE”語句,若不符合條件,則執(zhí)行ELSE后面的“語句體2”;對于“IF--THEN”語句,若不符合條件則直接結(jié)束該條件語句,轉(zhuǎn)而執(zhí)行其他后面的語句.循環(huán)體是循環(huán)體是滿足條件?WHILE 條件循環(huán)體WENDWHILE 條件循環(huán)體WEND格式否循環(huán)體滿足條件?是否功能:計(jì)算機(jī)執(zhí)行此程序時(shí),遇到WHILE執(zhí)行WHILEWENDWHILE是否成立,如果成立,再執(zhí)行循環(huán)體,這個(gè)過程反復(fù)執(zhí)行,直到一次返回到WHILEWEND語句后,執(zhí)行循環(huán)體滿足條件?是否DO循環(huán)體LOOP UNTIL 條件DO循環(huán)體LOOP UNTIL 條件格式功能:計(jì)算機(jī)執(zhí)行UNTIL語句時(shí),先執(zhí)行DO和LOOPUNTILLOOPUNTILDOLOOPUNTIL后面的條件成立LOOPUNTIL條件下面的語句.因此直到型循環(huán)又稱“后測試型”循環(huán),也就是我們經(jīng)常講的兩種格式的比較(四)編寫程序思維步驟式);三、典例剖析(一)輸入語句、輸出語句和賦值語句1(1)INPUTa;b;c(2)輸出語句A=4(3)賦值語句3=B(4)賦值語句A=B=2解:(1)錯(cuò),比例直接應(yīng)用“,”分隔;(2)錯(cuò),PRINT語句不能用賦值號“=”;(3點(diǎn)評:輸入語句、輸出語句和賦值語句基本上對應(yīng)于算法中的順序結(jié)構(gòu).輸入語句、輸出語句和賦值語句都不能包括“控制轉(zhuǎn)移”,由他們組成的程序段必然是順序結(jié)構(gòu).例2請寫出下面運(yùn)算輸出的結(jié)果.(1)a=5b=3c=(a+b)/2d=c*cPRINT“d=”;d(2)a=1b=2c=a+bb=a+c-bPRINT(3)a=10b=20c=30a=bb=cc=aPRINT“a=,b=,c=”;a,b,cc=(a+b)/2是將a,b和的一半賦值給變量cd=c*c是將c賦值給d,最后輸出d1,2,3c=a+ba,bcb=a+c-ba+c-bb;20,30,20a=ba,b,c20,20,30b=ca,b,c20,30,30.經(jīng)過語句c=aa,b,c20,30,20.點(diǎn)評:語句的識別問題是一個(gè)逆向性思維,一般我們認(rèn)為我們的學(xué)習(xí)是從算法步驟(3yx

3x

24x30xINPUT“x”;xy=x^3+3*x^2-24*x+30PRINTyEND4解:INPUT“Maths=,Chinese=,English=”;a,b,cPRINT“Theaverage=”;(a+b+c)/3END5變換兩個(gè)變量A和B解:INPUTA,BPRINTA,Bx=AA=BB=xPRINTEND6已知一個(gè)三角形的三邊長分別是abcabcp(pa)(p(pa)(pb)(pc)

.為計(jì)算機(jī)設(shè)計(jì)一個(gè)算法,輸2入三角形的三條邊長abc,輸出三角形的面積S.解:該算法用自然語言表述為Step1:輸入三角形三邊邊長abcabc

開始輸入a,b,cStep2:計(jì)算p ;2p(pa)(pp(pa)(pb)(pc)程序:INPUTa,b,cP=(a+b+c)/2s=SQR(s*(s-a)*(s-b)*(s-c))PRINT“area=”;sEND7寫出求三個(gè)數(shù)abc解:INPUTa,b,cd=(a+b+c)/3s=((a-d)^2+(b-d)^2+(c-d)^2)/3PRINTsEND

pabc; 2S p(pa)(pb)(pc)輸出S結(jié)束8編寫一個(gè)程序,要求輸入兩個(gè)正數(shù)a和b的值,輸出ab和ba解:1:INPUT“a,b:”;a,bA=a^bB=b^aPRINT“a^b=,b^a=”;A,BEND程序2:INPUT“a,b:”;a,bA=a^bPRINT“a^b=”;Ax=aa=bb=xA=a^bPRINT“b^a=”;AEND(二)條件語句例1分析下面的程,當(dāng)輸入x的值為3時(shí)程序的輸出結(jié)果.INPUTxIFx<-1THENy=x^2ELSEIFx<=1THENy=0ELSEy=(-2)^xENDIFENDIFPRINTEND8例2給出下列程如果輸入10,26,8,那么輸出的.INPUTa,b,cIFa>bTHENa=bENDIFIFa>cTHENa=cENDIFPRINTaEND答案:263x解:1:開始輸入開始輸入xx0成立YesNoyx2yx2輸出y結(jié)束IFx>=0THENPRINTxELSEPRINT–xENDIFEND程序1:INPUTxIF<0THENx=-xENDIFPRINTxEND類型題1:給計(jì)算機(jī)編寫一個(gè)算法,輸入一個(gè)自變量x的值,x2 x0求分段函數(shù)f(x)x2

x0

的函數(shù)值.解:該算法用自然語言表述為Step1:輸入x的值.Step2x0f(x)x2f(x)x2.Step3f(x的值.開始開始外層選擇結(jié)構(gòu)輸入xNoxYesy1Yesy0Noy1輸出y內(nèi)層選擇結(jié)構(gòu)結(jié)束程序框圖為程序:INPUTxIFx>=0THENy=x+2ELSEy=x^2ENDIFPRINT“f(x)=”;yENDx0類型題2:函數(shù)y0 x0,編寫一個(gè)算輸入x的值輸出y的.1x0解:該算法用自然語言表述為Step1:輸入x的值.Step2x0y1,結(jié)束;否則進(jìn)入Step3.Step3x0y0y1程序框圖為:程序1:INPUTxIFx>0THENy=1ELSEIFx=0THENy=0ELSEy=-1ENDIFENDIFPRINT“y=”;yEND程序1:INPUTxIFx>0THENy=1ENDIFIFx=0THENy=0ENDIFIFx<0THENy=-1ENDIFPRINT“y=”;yEND點(diǎn)評:(1)條件結(jié)構(gòu)的差異,造成程序執(zhí)行的不同.當(dāng)輸入x的數(shù)值時(shí),“程序1”先判斷外層條件,依次執(zhí)行不同的分支,隨后再判斷內(nèi)層條件;而“程序2”中執(zhí)行了對“條件1”的判斷,同時(shí)也對“條件2”進(jìn)行判斷,是按程序中條件語句的先后依次判斷所有的條件,滿足哪個(gè)條件就執(zhí)行哪個(gè)語句.(2)條件語句的嵌套可多于兩層,可以表達(dá)算法步驟中的多重限制條件.3法是:行李質(zhì)量不超過50kg時(shí)按0.25元/kg;超過50kg而不超過100kg時(shí),其超過部分按0.35元/kg;超過100kg時(shí),其超過部分按0.45元/kg.編寫程序,輸入行李的質(zhì)量,計(jì)算出托運(yùn)的費(fèi)用.解:算法分析:數(shù)學(xué)模型實(shí)際上為:y關(guān)于x的分段函數(shù).關(guān)系式0.25xy0.25500.35(x50)

0x5050x100,0.25500.35500.45(x100) x100算法步驟:第一步輸入行李質(zhì)量x.第二步當(dāng)x50時(shí),計(jì)算y0.25x,否則,執(zhí)行下一步.x100y0.35x5y0.45x15.y.程序框圖為:略INPUTxIFx<=50THENy=0.25*xELSEIFx<=100THENy=0.35*x-5ELSEy=0.45*x-15ENDIFENDIFPRINT“y=”;yEND例4判斷一元二次函數(shù)ax2

bxc分析: b2 4ac,當(dāng) 0時(shí),方程有實(shí);當(dāng) 0時(shí)方程無實(shí)解:該算法用自然語言表述為Step1:輸入三個(gè)系數(shù).Step2:計(jì)算 b2

4ac.Step3:判斷 0是否成.若,則輸出“方程有實(shí)根否則輸出“方程無實(shí)根結(jié)束算.開始程序框圖為:程序?yàn)?INPUT“a,b,c=”;a,b,cd=b^2-4*a*cIFd>=0THENPRINT“Haverealroot”ELSEPRINT“Norealroot”ENDIFEND

輸入a,b,cb24ac0? NoYes結(jié)束輸出方程有實(shí)根 輸出方程無實(shí)根結(jié)束1:設(shè)計(jì)一個(gè)求解一元二次方程ax2bxc0(a0解:算法:第一步:輸入三個(gè)系數(shù)abc第二步:計(jì)算b24ac.第三步:判斷0p否則,輸出“方程無實(shí)根”,結(jié)束算法.

b,q 2a 2a第四步:判斷0xx1 2

p;否則,計(jì)算x1程序框圖:略程序?yàn)?

pq,x2

pqxx.1 2INPUT“a,b,c=”;a,b,cd=b^2-4*a*cIFd>=0THENp=-b/(2*a)q=SQR(d)/(2*a)IFd=0THENPRINT“x1=x2=”;pELSEPRINT“x1=,x2=”;p+q,p-qENDIFELSEPRINT“Norealroot”ENDIFEND2:設(shè)計(jì)算法,求axb0第一步:判斷a0是否成立.若成立,輸出結(jié)果“解為a”.b第二步:判斷a0,b0是否成立.若成立,輸出結(jié)果“解集為R”.第三步:判斷a0,b0程序?yàn)?INPUT“a,b=”;a,bd=b^2-4*a*cIFa=0THENIFb=0THENPRINT“Allreal”ELSEPRINT“Noroot”ENDIFELSEPRINT“x=”;-b/aENDIFEND變式題3:設(shè)計(jì)算法,找出輸入的三個(gè)不等實(shí)數(shù)a,b,c的最大值,并畫出流程圖.解:算法:第一步:輸入a,b,c的值.第二步:判斷ab是否成立,若成立,則執(zhí)行第三步;否則執(zhí)行第四步.第三步:判斷ac是否成立.若成立,則輸出a,并結(jié)束;否則輸出c第四步:判斷bcb,并結(jié)束;否則輸出c程序?yàn)?INPUTa,b,cIFa<bTHENa=bENDIFIFa<cTHENa=cENDIFPRINTEND例5編寫一個(gè)程序,使任意輸入的3個(gè)整數(shù)按從大到小的順序輸出.解:算法分析:用a,b,c表示輸入的3個(gè)整數(shù).為了節(jié)約變量,把他們重新排列后,仍用a,b,c表示,并使abc.具體操作步驟如下:第一步,輸入3個(gè)整數(shù)abc.第二步,將a與b比較,并把小者賦給b,大者賦給a.第三步,將a與c比較,并把小者賦給c,大者賦給a(此時(shí)a第四步,將b與cc,大者賦給babc已按從大到小的順序排列好).第五步,按順序輸出abc程序:INPUT“a,b,c=”;a,b,cIFb>aTHENt=aa=bb=tENDIFc>aTHENt=aa=cc=tENDIFc>bTHENt=bb=cc=tENDPRINTa,b,cEND(二)循環(huán)語句例1下列程序執(zhí)行后輸出結(jié)果i=11S=1DOS=S*ii=i-1LOOPUNTILPRINTSEND9902下列程序輸出的結(jié)果是()i=1S=0WHILEi<=4S=S*2+1i=i+1WENDPRINTSENDA.3 B.7 C.15 D.19答案:C例3已知以下程序,則()x=-1DOx=x*xLOOPUNTILPRINTxENDA.輸出結(jié)果是1 B.能執(zhí)行一次C.能執(zhí)行10次是“死循環(huán)有語法錯(cuò)答案:D例7餓漢吃餅,下面是描述描述一個(gè)餓漢吃餅的情況,如果饑餓的話就吃一張餅,直到吃飽為分當(dāng)型和直到型兩種循環(huán)結(jié)構(gòu)進(jìn)行描. 開始當(dāng)型 直到型n0 n0餓嗎?No結(jié)束

nn1吃一張餅Yes

吃一張餅nn1不餓了? Yesn結(jié)束探究:找出當(dāng)型和直到型的區(qū)別(1)當(dāng)型:先判斷條,再執(zhí)行循環(huán);直到型(2)當(dāng)型和直到型的條.(3)當(dāng)型:滿足條件時(shí)執(zhí)行循環(huán);直到.點(diǎn)評:(1)當(dāng)型型循環(huán)結(jié)構(gòu)在執(zhí)行循環(huán)體之前,對循環(huán)條件進(jìn)行判斷,當(dāng)條件滿足時(shí)行循環(huán)體,不滿足則停止循環(huán),執(zhí)行循環(huán)結(jié)構(gòu)后面的步驟.(2)

開始i1S08設(shè)計(jì)一個(gè)計(jì)算123100第一步:輸入n(這里n100).sum0i1sumsumi.

ii1SSii100? Yesii1.第五步:如果i不大于nsum值就是123100的值.程序框圖為:點(diǎn)評:這里我們用的是當(dāng)型循環(huán)結(jié)構(gòu),那么本題如果用直到型循環(huán)結(jié)構(gòu),其算法又該如何?1 2 3 n1:

, , ,,2 3 4 n

,設(shè)計(jì)一個(gè)算法實(shí)現(xiàn)該列數(shù)的前20項(xiàng)和.解:算法如下:第一步:輸入n(這里n20).sum0i1.sumsum

i ,ii1.i1第四步:如果i不大于n,否則.最后得到的sum值就是該列數(shù)的前20程序框圖為:略2:設(shè)計(jì)一個(gè)算法計(jì)算246100解:算法如下:第一步:輸入n(這里n100).sum0i2.sumsumiii2.第四步:如果i不大于n最后得到的sum值就是246100的值.程序框圖為:略3:設(shè)計(jì)一個(gè)算法計(jì)算

22

1002.解:算法如下:第一步:輸入n(這里n100).sum0i1.sumsumi2ii1.第四步:如果i不大于n,否則.程序框圖為:略

最后得到的sum值就是12

22

1002的值.4:設(shè)計(jì)一個(gè)算法計(jì)算124263.解:算法如下:第一步:輸入n(這里n63).sum0i0.sumsum2iii1.第四步:如果i不大于n最后得到的sum值就是124263的值.程序框圖為:略5:設(shè)計(jì)一個(gè)算法計(jì)算123100解:算法如下:第一步:輸入n(這里n100).sum0i1.sumsumiii1.第四步:如果i不大于100最后得到的sum值就是123100程序框圖為:略9高中某班一共有4080和優(yōu)秀(分?jǐn)?shù)90用循環(huán)結(jié)構(gòu)實(shí)現(xiàn)40s,然后對sns90mm1s80nn1.設(shè)計(jì)數(shù)器i,用來控制40解:略10任意給定一個(gè)大于1的整數(shù)n,試設(shè)計(jì)一個(gè)算法對n分析:(1)質(zhì)數(shù)是只能被1和自身整除的大于1(21n是否為質(zhì)數(shù),只要根據(jù)質(zhì)數(shù)的定義,用比這個(gè)整數(shù)小的數(shù)去除n,如果它只能被1解:算法用自然語言表述為:第一步:判斷n是否等于2.若n2,則n是質(zhì)數(shù);若n2第二步:令i2.第三步:用i除n,得到余數(shù)r.r0是否成立.若是,則ni的值增加1,仍用i表示.第五步:判斷in1是否成立.若是,則n說明:本算法是用自然語言的形式描述的.設(shè)計(jì)算法一定要做到以下要求:(1)寫出的算法必須能解決一類問題,并且能夠重復(fù)使用.11x

20(x02分

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論