算法與程序框圖第二課時(shí),知識(shí)回憶1、程序框圖的概念2、程序框圖的圖示和意義3、順序結(jié)構(gòu)和條件結(jié)構(gòu)的特點(diǎn)4、作業(yè)分析,輸入x開(kāi)始x>3y=1.2x+1.4y=5輸出y結(jié)束否是P.21習(xí)題A組第3題程序框圖執(zhí)行框中是等式,不能是多項(xiàng)式;輸出框必須是“輸出‘變量’”,不能是“輸出多項(xiàng)式”所有框圖都必須有流出.,賦值語(yǔ)句變量的值可以由輸入的方式給定,也可以直接以賦值的方式給定。在算法中,我們可以根據(jù)需要改變變量的值,也就是說(shuō)可以給變量重新賦值,取代原來(lái)的值。形象的說(shuō),變量就像個(gè)盒子,可以裝不同的數(shù)值,但是每次只能裝一個(gè),當(dāng)放入新值,原來(lái)的值就會(huì)被取代。,賦值語(yǔ)句a=1b=2a+3輸出bi=1i=i+1輸出i變量=表達(dá)式顧名思義,賦值語(yǔ)句就是把表達(dá)式所代表的值賦給變量。語(yǔ)句中“=”叫賦值號(hào),它和數(shù)學(xué)中的等號(hào)不完全一樣。計(jì)算機(jī)執(zhí)行賦值語(yǔ)句時(shí),先計(jì)算“=”右邊的表達(dá)式的值,再把這個(gè)值賦給“=”左邊的變量,如:,例2交換兩個(gè)變量A和B的值算法第一步:輸入A,B,第二步:令x=A,第三步:令A(yù)=B,第四步:令B=x,第五步:輸出A,B.程序框圖:開(kāi)始B=x輸出A,B結(jié)束A=Bx=A輸入A,B,例3設(shè)計(jì)一算法,求和:1+2+3+…+100第一步:確定首數(shù)a,尾數(shù)b,項(xiàng)數(shù)n;第二步:利用公式“總和=(首數(shù)+尾數(shù))×項(xiàng)數(shù)/2”求和;第三步:輸出求和結(jié)果。算法1:開(kāi)始結(jié)束輸入a,b,nS=(a+b)*n/2輸出S,例3設(shè)計(jì)一算法,求和:1+2+3+…+100算法2:第一步:從1開(kāi)始將自然數(shù)1、2、3、…、100逐個(gè)相加;第二步:輸出累加結(jié)果。思考:1、上邊的式子有怎樣的規(guī)律呢?S=0S=S+1S=S+2S=S+3…S=S+1002、怎么用程序框圖表示呢?S=S+ii=i+14、如何使程序結(jié)束?3、i有什么作用?S呢?S=S+i,解決方法就是加上一個(gè)判斷,判斷是否已經(jīng)加到了100,如果加到了則退出,否則繼續(xù)加。試分析兩種流程的異同點(diǎn)直到型結(jié)構(gòu)當(dāng)型結(jié)構(gòu)S=S+ii=i+1是否S=S+ii=i+1否是i≤100?i>100?請(qǐng)?zhí)钌吓袛嗟臈l件。S=S+ii=i+1,最后的結(jié)果結(jié)束S=S+ii=i+1i≤100?輸出S否是i=1,S=0開(kāi)始結(jié)束輸出Si=1,S=0開(kāi)始S=S+ii=i+1i>100?否是,循環(huán)結(jié)構(gòu)的三個(gè)要素:循環(huán)變量、循環(huán)體、循環(huán)終止條件。仿照下圖你可以畫(huà)出當(dāng)型的流程圖嗎?循環(huán)變量=初值循環(huán)體循環(huán)變量=循環(huán)變量的后繼循環(huán)變量>終值?否是循環(huán)變量=初值循環(huán)體循環(huán)變量≤終值?否是循環(huán)變量=循環(huán)變量的后繼,步驟A步驟B思考:將步驟A和步驟B交換位置,結(jié)果會(huì)怎樣?能達(dá)到預(yù)期結(jié)果嗎?為什么?要達(dá)到預(yù)期結(jié)果,還需要做怎樣的修改?答:達(dá)不到預(yù)期結(jié)果;當(dāng)i=100時(shí),退出循環(huán),i的值未能加入到S中;修改的方法是將判斷條件改為i<101結(jié)束S=S+ii=i+1i≤100?輸出S否是i=1,S=0開(kāi)始,練習(xí)鞏固1、設(shè)計(jì)一算法,求積:1×2×3×…×100,畫(huà)出流程圖結(jié)束輸出Si=1,S=1開(kāi)始S=S*ii=i+1i>100?否是思考:該流程圖與前面的例3中求和的流程圖有何不同?,2、對(duì)任意正整數(shù)n,的值,并畫(huà)出程序框圖.開(kāi)始輸入正整數(shù)n輸出S結(jié)束S=0i=1S=S+1/ii=i+1i>n?否是設(shè)計(jì)一個(gè)算法求練習(xí)鞏固,2、設(shè)計(jì)一算法輸出1~1000以?xún)?nèi)能被3整除的整數(shù)結(jié)束i=i+1i<1000?輸出i否是i=0開(kāi)始3整除i?否是算法:S1:確定i的初始值為0;S2:判斷i是否等于1000,若是則程序結(jié)束,否則進(jìn)入S3;S3:使i增加1,判斷i是否能被3整除,若能輸出i,并返回S2;否則直接返回S2,小結(jié)1、循環(huán)結(jié)構(gòu)的特點(diǎn)2、循環(huán)結(jié)構(gòu)的框圖表示3、循環(huán)結(jié)構(gòu)有注意的問(wèn)題避免死循環(huán)的出現(xiàn),設(shè)置好進(jìn)入(結(jié)束)循環(huán)體的條件。當(dāng)型和直到型重復(fù)同一個(gè)處理過(guò)程,課外作業(yè)P21習(xí)題1.1A組第2題,開(kāi)始S=0I=I+1I=1S=S+I*II≤100輸出S結(jié)束NYP21A組T2作業(yè)答案