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

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

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

IF THEN語句體AENDIF

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

條件是1

否語句2IFP,1,在執(zhí)行ENDIF滿足條件P2,再執(zhí)行ENDIF句.兩種格式的比較相同點:首先對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)體滿足條件?是否功能:計算機執(zhí)行此程序時,遇到WHILE執(zhí)行WHILEWENDWHILE是否成立,如果成立,再執(zhí)行循環(huán)體,這個過程反復執(zhí)行,直到一次返回到WHILEWEND語句后,執(zhí)行循環(huán)體滿足條件?是否DO循環(huán)體LOOP UNTIL 條件DO循環(huán)體LOOP UNTIL 條件格式功能:計算機執(zhí)行UNTIL語句時,先執(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)錯,比例直接應用“,”分隔;(2)錯,PRINT語句不能用賦值號“=”;(3點評:輸入語句、輸出語句和賦值語句基本上對應于算法中的順序結(jié)構(gòu).輸入語句、輸出語句和賦值語句都不能包括“控制轉(zhuǎn)移”,由他們組成的程序段必然是順序結(jié)構(gòu).例2請寫出下面運算輸出的結(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.點評:語句的識別問題是一個逆向性思維,一般我們認為我們的學習是從算法步驟(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變換兩個變量A和B解:INPUTA,BPRINTA,Bx=AA=BB=xPRINTEND6已知一個三角形的三邊長分別是abcabcp(pa)(p(pa)(pb)(pc)

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

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

0x5050x100,0.25500.35500.45(x100) x100算法步驟:第一步輸入行李質(zhì)量x.第二步當x50時,計算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,當 0時,方程有實;當 0時方程無實解:該算法用自然語言表述為Step1:輸入三個系數(shù).Step2:計算 b2

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

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

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

p;否則,計算x1程序框圖:略程序為:

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:設計算法,求axb0第一步:判斷a0是否成立.若成立,輸出結(jié)果“解為a”.b第二步:判斷a0,b0是否成立.若成立,輸出結(jié)果“解集為R”.第三步:判斷a0,b0程序為:INPUT“a,b=”;a,bd=b^2-4*a*cIFa=0THENIFb=0THENPRINT“Allreal”ELSEPRINT“Noroot”ENDIFELSEPRINT“x=”;-b/aENDIFEND變式題3:設計算法,找出輸入的三個不等實數(shù)a,b,c的最大值,并畫出流程圖.解:算法:第一步:輸入a,b,c的值.第二步:判斷ab是否成立,若成立,則執(zhí)行第三步;否則執(zhí)行第四步.第三步:判斷ac是否成立.若成立,則輸出a,并結(jié)束;否則輸出c第四步:判斷bcb,并結(jié)束;否則輸出c程序為:INPUTa,b,cIFa<bTHENa=bENDIFIFa<cTHENa=cENDIFPRINTEND例5編寫一個程序,使任意輸入的3個整數(shù)按從大到小的順序輸出.解:算法分析:用a,b,c表示輸入的3個整數(shù).為了節(jié)約變量,把他們重新排列后,仍用a,b,c表示,并使abc.具體操作步驟如下:第一步,輸入3個整數(shù)abc.第二步,將a與b比較,并把小者賦給b,大者賦給a.第三步,將a與c比較,并把小者賦給c,大者賦給a(此時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)有語法錯答案:D例7餓漢吃餅,下面是描述描述一個餓漢吃餅的情況,如果饑餓的話就吃一張餅,直到吃飽為分當型和直到型兩種循環(huán)結(jié)構(gòu)進行描. 開始當型 直到型n0 n0餓嗎?No結(jié)束

nn1吃一張餅Yes

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

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

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

, , ,,2 3 4 n

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

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

22

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

最后得到的sum值就是12

22

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

20(x02分

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論