




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、第7課時基本算法語句(循環語句)【教法建議】1 循環語句的教學也應通過實例,結合循環結構的程序框圖進行。2 教材中介紹了DO語句和WHILE語句兩種循環語句,前者是在循環次數已知時使用的循環,后者是前測試的當型循環教學過程中要通過程序框圖將兩者區別講清。具體處理時,要通過實例的對比加以說明。【問題情境】用算法求36999時,可以按逐個相加的方式進行,但這樣的算法程序太長,操作不方便。按怎樣的算法結構可以簡單算法過程呢?如何表示這種算法程序?解借助循環語句。I3SUM0WHILEI5 A=SUM/5 PRINT A END例21990年我國人口為11億。如果每年的人口增長率為1.5%,多少年后人
2、口達到或超過15億?設計一個算法解決上面的問題。畫出程序框圖,寫出算法程序。解根據題意,n年后人口為11(11.5%)n,現在就是找使11(11.5%)n15的最小正整數n的值。為此可考慮用循環語句,從n1開始檢驗。 此算法的程序框圖是n111(1+1.5%)n15輸出nYnn+1N此算法程序為 M=11 N=1WHILE Mm I=I+1LOOP UNTIL InEND 其中A和B是兩個循環操作的步驟。【測試反饋】1下列程序運行次數是A、B、C、D中的哪一種? (D)I=7DOPRINTI I=I+5LOOP UNTIL I90ENDA14B15C16D17提示:I從7開始,每操作一次后加5
3、,接著再操作一次,直至I90為止,而751790,故操作了17次。2下面的程序運行后輸出的結果是 (C)I1WHILEI8 I=I+2 S=2*I+3 WEND PRINT S END A 17B19C21D23提示:對S來說,只有最后一次操作是有效的,而根據程序,I最后一次操作時的先取7,加2后取9,故S29321,應選C。3要使以下UNTIL循環執行20次,循環變量的初值應當是 (初始值是14)K= DOK=K-1LOOP UNTIL K (8) I=I+1LOOP UNTIL I4END(說明:其中的“TAB(n)”的功能是行前空n個字符)提示:每行打印8個,故應填8。5已知函數f(x)
4、= ,實數a1=f(1),a2=f(a1),an1f(an)。試寫出用循環語句表示的求a8的算法,畫出程序框圖,并寫出算法程序。A1Af(A)n1nn+1n=8N輸出AY解 程序框圖:程序A1n1WHILEn=8AA/(1+A) n=n+1 WEND PRINT A END6將1開始的奇數按順序累加,直到其和等于或大于100為止。要求輸出表示這些奇數相加并得到運算結果的算式。i1n0sum0sumsum+iSum100ii+2nn+1Y輸出“”;iN輸出“=”;sum輸出sum,n輸出i解 程序框圖此算法程序為: i=1 PRINT i n=1 sum=0 WHILE sumS THENSai
5、 ENDIF LOOPUNTILinPRINTSEND8有一個三位數,當把百位數作十位數,十位數作個位數,而個位數作百位數時,則得到一個新的三位數。原來的三位數是新三位數的2倍還多3。試編制適當的程序找出符合要求的三位數。解算法分析:一個三位數,百位數在19之間變化,十位數、個位數可在09之間變化,但由于個位數要變換到新三位數中的百位數上去,故只能在19之間變化。要求出這些三位數,可用“窮舉法”。采用三重循環,由外、中、內三層循環分別控制百位、十位和個位的變化。程序如下:I1DOJ0DOK1DOMI100J10KNK100I10JIFM2N3THENPRINTMKK1LOOPUNTILK9JJ
6、1LOOPUNTILJ9II1LOOPUNTILI9END第8課時習題課【雙基演練】1下面四個語句中不正確的打印語句是 (D)APRINTABCBPRINT“A”;BCCPRINT“ABC”DPRINTA;BC提示:A與BC之間不是字符與數值的連接,不應用“;”。2下面的程序運行的結果是 (C)N0I0WHILEI30I(I1)(I1)NN1WENDPRINTNENDA0B3C4D29提示:將初始值I0代入,求得新I1,N變成1,這是第1次循環;130,符合循環條件,第2次循環時,I變為4,N取值為2;4=0 THEN Y=6 ELSE Y=5 (END IF) PRINT Y END提示:條
7、件語句的終止需要說明。4.按下面的程序運行后輸出的S的值是。 (120)I=1DOS0 K=1 J=1 DO J=J*K K=K+1 LOOP UNTIL KI S=S+J I=I+1 LOOP UNTIL I5 PRINT S END提示:此程序分內、外兩層兩個循環,由于外循環每一次都使J1,S0,故只要考慮最后一次循環,即I5時,分別計算了J12345120,故S0J120。【范例解讀】1輸入三角形的三邊長,判斷能否構成一個三角形。試給出表示這個算法的程序。解程序框圖輸入a,b,ca+bcYN輸出“不能構成三角形”b+caNa+cbNYY輸出“能構成三角形” 程序:INPUTa,b,c I
8、F a+b=c THEN PRINT “不能構成三角形”ELSEIF b+c=a THEN PRINT “不能構成三角形”ELSEIFa+c2004成立的最小正整數n的算法過程。n1sum0Sum=2004N輸出nYnn+1sumsum+n解程序框圖 程序:n=1 sum=0 WHILE sum50NY輸出k解 程序框圖:程序:k=0 i=1 DO INPUT ai IF aiMOD 20 THEN k=k+1 END IF i=i+1 LOOP UNTIL i50 PRINT k END【測試反饋】1下列程序的運行結果是 (C)A5B4IFB=ATHENBABELSEBABPRINTBEND
9、A9B4C1D0提示:條件不成立,執行ELSE分支,B被賦值為AB1,選C。2下面的程序運行時輸出的結果是 (D) I=1S=0 While I5PRINTYEND提示:DO語句是先執行后判斷。每一次循環時Y與A均增加1,直到A5時為止,于是,共循環5次,Y輸出結果為6。4.下列程序的運行結果是。 (13i1i)A1B2C10DBB4ACIFD=0 THEN X1=(-B+SQR(D)/(2*A) X2=(-B-SQR(D)/(2*A) PRINT “X1=”; X1,“X2”;X2ELSEPRINT“X1”;B/(2A);“”;SQR(D)/(2A);“i”,PRINT“X2”;B/(2A)
10、;“”;SQR(D)/(2A);“i”ENDIFEND提示:這個程序是求方程x2+2x+10=0的根,由于判別式小于0,此方程無實數根,這里輸出的是這個方程的虛數根(感興趣的同學以后可以選修“復數”的有關內容)。注意:其中SQR(X)為取X的平方根。5按下列程序運行后的結果是。 (4)A0XY=10 IF XY100 THEN A=A+1 ELSE IF XY50 THEN A=A+2 ELSE A=A+4 END IF END IF PRINT A END提示:由于不符合循環的條件,應執行ELSE分支,而此分支中的條件也不滿足,又應執行它的ELSE分支,故A被賦值為4。6求出所有能被7整除的
11、兩位數。寫出這個算法程序。解 I=10 DO IF I MOD 7=0 THEN PRINT I END IF I=I+1 LOOP UNTIL I=100 END7火車站對乘客退票要收取一定的費用,收費辦法是:按票價每10元(不足10元按10元計算)核收2元,票價在2元以下的不退。試分步寫出將票價為x元的車票退掉后,返還的金額y元的算法,畫出程序框圖,并寫出這個算法程序(可用取整函數x表示,不超過x的最大整數在算法程序中可用ENT(x)表示)。輸入xx2Ny0Yyx-2x MOD 10=0YNyx-2(+1)輸出y解 程序框圖: 程序:INPUTxIFX2THENy=0 ELSE IF x
12、MOD 10=0THEN y= x-2*ENT(x/10) ELSE y= x-2*(ENT(x/10)+1) END IF END IF PRINT y END第9課時算法案例(輾轉相除法與更相減損)【教法建議】1 教學中重點在算法本身,對其理論依據可作為課后活動的材料。2 適當介紹本案例的背景,特別是對更相減損法必須加以介紹,體現教材的文化價值。3教學重心應放在算法過程的設計上,引導學生畫出程序框圖,并根據算法的結構特點選擇恰當的算法語句,對輾轉相除法進行描述。4在提出問題時,也可以先讓學生獨立設計求兩個正整數的最大公約數的算法(完全可以從較小數開始,逐次減1地對正整數進行檢驗)。5通過實
13、例讓學生了解到更相減損與輾轉相除法各有優點,如對于求不止兩個數的最大公約數,我國的更相減損法就更顯出其優越性例如,求623,1 424,801,1 513四個數的最大公約數,可以不拘次序地挑選最方便的,從較大數中減去較小數,求其等數即可:(623,1 424,801,1 513)=(623,1 424 - 801,801 - 623,1513 - 1424)=(623,623,178,89)=(623 - 89 6,623 - 89 6,178 - 89,89)=(89,89,89,89)= 89【問題情境】1小李問老師怎樣求兩個正整數的最大公約數,老師畫了一個程序框圖(如下):“你按這個框圖
14、進行吧”。寫下兩個數a,ba=b將較大的數換為兩數之差打印aYN(1)用12和15兩個數試一下;(2)用198與72兩個數試一下(3)你能由此發現一種求兩個正整數的最大公約數的方法嗎?解 (1)15123, 12399366333是12和15的最大公約數。 (2)198-72=126, 126-72=54, 72-54=18, 54-18=36, 36-18=18 18是198和72的最大公約數。 (3)這就是教材中所介紹的求兩個正整數的最大公約數的“更相減損術”。【范例解讀】例1分別用輾轉相除法、更相減損法求204與85的最大公約數。解方法1(輾轉相除法)第一步20485234;第二步 85
15、34217;第三步 341720 17是204與85的最大公約數。方法2(更相減損法):第一步20485119;第二步1198534;第三步 853451;第四步 513417;第五步 341717。17是204與85的最大公約數。例2根據輾轉相除法的思想,設計求兩個正整數a,b(ab)的最大公約數的算法過程,并畫出程序框圖,寫出算法程序。輸入a,br=a MOD br=0輸出aa=bb=rNY解 程序INPUTa,bDOr=a MOD b a=b b=r LOOP UNTIL r=0 PRINT a END【歸納點拔】1運用輾轉相除法找出兩個正整數a,b的最大公約數的步驟是S1輸入兩個正整數
16、a,b(ab); S2rab的余數; S3如果r不等于零,那么ab,br,轉S2 S4輸出最大公約數a。【測試反饋】1396和480的最大公約數是 (C)A4B6C12D242如果a,b是整數,且ab0,ra mod b,則a與b的最大公約數是 (D)Ar BbCb-r Db與r的最大公約數3已知a=333,b=24,則使得a=bq+r,(q,r均為自然數,且0rb)成立的q和r的值分別為。 (q=13,r=21)4用輾轉相除法與更相減損法求333與24的最大公約數時的循環次數分別為。提示:輾轉相除法需要3次循環,更相減損法需要21次循環。5設計一個算法,計算兩個正整數a,b的最小公倍數。解算
17、法設計思想:對正整數逐一進行檢驗。可用程序框圖表示輸入a,bn MOD a=0n=1n=n+1NYNn MOD b=0Y輸出n6根據更相減損法的思想,設計求兩個正整數a,b的最大公約數的算法過程,并畫出程序框圖。解不妨設ab.輸入a,br=a-br=0輸出bYNa=Max(b,r)b=Min(b,r)7設計求出前100個正整數中的所有素數的一個算法,并用程序框圖表示。解算法設計思想:因為1和100都不是素數,故可從2開始,對299這98個自然數逐一進行檢驗。在對某個正整數k進行檢驗時,可對從2到k1逐一檢驗其是否為的約數。程序框圖k=3i=2k MOD i=0Yk=k+1+=1k=100NNi
18、=100Nk=k+1Y結束輸出2Y 8編程輸出十位數字與個位數字的和能被7整除,百位數字與十位數字的和能被3整除的所有3位數。解程序: I=1 Do J=0 DO K=0 DO IF (J+K) MOD 7=0,(I+J)MOD 3=0 THEN PRINT I*100+J*10+K END IFKK1 LOOP UNTIL K9JJ1 LOOP UNTIL J9II1 LOOP UNTIL I9 END第10課時算法案例(秦九韶法)【教法建議】1先通過具體實例介紹并說明,計算機中實施乘法運算比實施加減運算復雜,因此,“好”算法的一個標準是“盡量減少使用乘法運算次數”。2通過實例(求一元多項式
19、的值),讓學生自主設計算法,以使用乘法次數最少為“好”的標準。最好在學生探索的基礎上發現“秦九韶算法”。3在運用秦九韶算法求多項式的值時,可采取從特殊到一般方式,既使學生能夠具體問題具體分析,又可降低學習難度,并且特殊情形的算法設計以一般情況下問題的處理有一定的啟發。4算法程序的設計根據學生狀況安排,不一定介紹。程序框圖必須建立。【問題情境】設計算法計算下列各式的值,使只使用加法、乘法進行計算的過程中使用乘法的次數最少(1)x2+2x+3;(2)x4+x3+x2+x+1。解(1)x2+2x+3=x(x+2)+3,按此式的運算步驟計算時,只要使用1次乘法運算。(2)x4+x3+x2+x+1=x(
20、x(x(x+1)+1)+1)+1,按此式的運算步驟計算時,只要使用3次乘法運算。【范例解讀】例1設計求x=2時,x8+x7+x2+x+1的值的算法,并給出描述這個算法的程序。解根據秦九韶算法,可以運用循環語句描述算法過程。x2 S1I1DOS=x*S+1 I=I+1 LOOP UNTIL I8 PRINT S END例2用秦九韶算法設計求多項式 f(x)=x3+2x2-3x+8輸入xS=1I=1I3輸出SYN輸入aIS=xS+aI的值的算法,畫出程序框圖。解:f(x)=x(x(x+2)-3)+8 設a1=2,a2=-3,a3=8,則求f(x)值的程序框圖為【歸納點拔】1根據教材P28中對秦九韶
21、算法求多項式的值的方法,可得其算法設計思想:構造遞推關系式,并重復運用這種一次的遞推關系式進行操作,故可用循環語句表示這個算法。2注意:在操作過程中,遞推關系式中的系數一般是變化的,故在循環體中應包含不斷輸入系數的操作過程。【測試反饋】1計算多項式x22x+9的值時,最少需要進行乘法運算的次數是 (A)A1B2C3D4提示:x2-2x+9=x(x-2)+9.2當x=5時,求(x2+x+1)(x2-x+1)的值,如果以使用乘法次數少為好的算法的標準,那么,對于下列算法(1)分別直接計算x2+x+1和x2x+1的值,再求所得結果的積(2)將原式化為x4+x2+1,再分別求出x4,x2的值,最后求它
22、們與1的代數和(3)分別對x2+x+1和x2x+1用秦九韶算法求出它們的值,再求所得結果的積(4)對化簡的結果x4+x2+1用秦九韶算法最好的算法是 (C)A(1)(3)B(2)(3)C(1)(3)(4)D(3)(4)提示:用秦九韶算法計算乘法次數。3下面的程序是計算多項式f(x)= 在x=-3時的值。(f(x)=x3+x2+2x+3)i=1F=1DOFF(3)+i i=i+1 LOOP UNTIL i3PRINT“F”;FEND提示:第一次循環:F1(-3)+1;第二次循環:F(3)1(3)2(3)2(3)2;第三次循環:F(3)3(3)22(3)3。4補全下面的程序,以計算當x=2時,多項
23、式f(x)=x3+x2+x+1的值。i=1S1DOS (答案:(2*S+1)ii+1LOOP UNTIL i3PRINTSEND提示:f(x)=x(x(x+1)+1)+1,x=2時,f(2)=2(2(2+1)+1)+1。5用程序框圖表示用秦九韶算法求x=3時,2x3-x2+x+5的值的算法過程。解f(x)=2x3-x2+x+5=2(x(x(x-)+)+),設a1=-,a2=,a3=.程序框圖為x=3S=1I=1I3輸出SYN輸入aIS=xS+aIS=2S 6將第4題中的偽代碼改寫成用“WHILE”語句表示的形式。解I1S1WHILEI15S1200*S PRINT S END8設計算法,求當x
24、=2時,f(x)= 的值。解可以分別求分子H=x3+x2+x+1和G=x3-x2+x-1的值,再求它們的商F。在求H和G值時,用秦九韶算法。x2 H1I1DOH=x*H+1 I=I+1 LOOP UNTIL I3 G1L1DOG=x*G+(1)L L=L+1 LOOP UNTIL L3FH/G PRINT F END第11課時算法案例(排序)【教法建議】1應通過實例說明排序在生活中的必要性(高考錄取按分數排序、一些會議、作者排名按姓氏筆畫排序、單位工資發放表按工資的高低排序等等)。2對簡單的排序問題學生容易憑直覺直接寫出,教學中要求學生將思維過程具體化、步驟化,從而形成方法。3要從多種角度探索
25、排序的方法,要充分發揮學生生活經驗的作用,讓學生經歷排序的全過程。4由學生自主建立各種排序方法的算法的程序框圖,不一定介紹算法程序,可視學生狀況而定。【問題情境】1將數據9,6,7,12,3按從小到大的順序排列起來。解可以用逐一比較的方法找出5個數中的最小值3,將它排在第1個;再在剩下的4個數是找出最小值6,將它排在第2個;依此類推,可將其排成3,6,7,9,12。【范例解讀】例1分別用直接排序法和冒泡排序法對數據32,46,23,78,12,17進行排序。解(1)直接排序法第一步將第1、2兩個數比較,排列成32,46;第二步將第3個數23插到合適的位置:23,32,46;第三步將第4個數78
26、插到合適的位置:23,32,46,78;第四步將第5個數12插到合適的位置:12,23,32,46,78;第五步將第6個數17插到合適的位置:12,17,23,32,46,78。(2)冒泡排序法第一步比較第1、2兩個數32,46,前者小于后者,則位置不變:32,46,23,78,12,17;第二步比較46與23,23小于46,則23與46互換:32,23,46,78,12,17;第三步比較46與78,前者小于后者,則位置不變:32,23,46,78,12,17;第四步比較78與12,12較小,則兩者位置互換:32,23,46,12,78,17;第五步同上,將78與17的位置互換:32,23,4
27、6,12,17,78;第六步按第一步到第五步的順序繼續操作,直至沒有可互換時為止。例2將例1中的兩種排序方法用程序框圖表示成算法。將第1、2兩個數排序將第3個數插到適當位置將第4個數插到適當位置將第5個數插到適當位置將第6個數插到適當位置結束開始解(1)直接排序法將第1、2兩個數排序后得到一列數將新的一列數中第2、3兩個數排序后得到一列數將新得到的一列數中第3、4兩個數排序后得到一列數將新的一列數中第4、5兩個數排序后得到一列數將新的一列數中第5、6兩個數排序后得到一列數上述過程未發生次序變化Y輸出這列數N(2)【歸納點拔】1直接排序法的特點是:從第2個數開始排起,每次都是將這個數在它前面已排
28、好的數組中找到它的“位置”,這種排法中第n次操作后,前n個數據的順序已經排好。2冒泡排序法的特點是逐步調整,每“一趟”操作完畢后,較小的數都向上浮了一位,只要操作次數足夠多,就一定能將小的浮到前面,大的沉到后面。【測試反饋】1下面的算法的功能是 (A)開始輸入一個數據aa=32Y輸出aN將a用下一數據賦值是否還有數據N結束A查找出一組數據中是否有32B將一組數據中的第32個數打印出來B判斷32是一組數據中第幾個數D找出一組數據中從小到大排列時第32個數提示:根據判斷框中的條件,a32時即輸出可知應選A。2按下面的程序進行的操作是 (D)INPUTaINPUTbxa ab bx PRINT a,
29、b ENDA將x賦值給a和b后輸出B將a賦值給x,再將x賦值給b后輸出C使a,b都等于x后輸出 D將兩個變量a與b互換后輸出3若a=3,b5,則按下面的程序輸出的是. (5)INPUTa,b S=a IF bS THEN S=b PRINT S END4完成下面的程序,將三個數a,b,c按從大到小的順序輸出INPUT“a,b,c=”;a,b,cIFbaTHEN t=a a=b b=t END IF IF ca THEN t = ( a) a = ( c ) c = ( t ) END IF IF cb THEN t = (b) b = (c) c = (t) END IF PRINT a,b,
30、c END將第1、2兩個數排序將第3個數插到適當位置結束開始5用直接排序法將3個互不相等的實數a,b,c按從大到小的順序排列起來。試畫出程序框圖。解6寫出一個在三個數a,b和c中找出第2個小數的算法(假設a,b,c互不相同),寫出表示這個算法的程序。解實際上就是將a,b和c排序后,取中間一個數。故可用第4題中的方法先排序,再將中間一個數輸出。程序:INPUTa,b,cIFbaTHEN t=a a=b b=t END IF IF ca THEN t = a a = c c = t END IF IF cb THEN t = b b = c c = t END IF PRINT b END7還可以
31、用逐步求最小(大)值的方法進行“選擇法”排序,其設計思想是:首先在數組中找最小(大)的元素,并將其第一個位置上的元素對調;再找次小(大)的元素,并與第二個位置上元素對調,依此類推,直到數組全部有序。試根據上述思想,用程序框圖表示這個算法。解輸入這組數確定最小數輸出最小數由剔除最小數后的所有數構成新的一組數數組中只有一個數NY結束輸出這個數8設計一個算法,將一組數a1,a2,a10中所有比相鄰兩個數都大的數找出來。請用程序框圖表示這個算法。解輸入a1,a2,a10n=2anan-1且 anan+1Y輸出ann9Y結束n=n+1NN第12課時算法案例(進位制)【教法建議】1通過學生已有的知識引入,如最常使用的十進制、角度制中的六十進位制,以及其它一些計量單位中進位制,讓學生感到進位制的選擇是根據需要而定的,以破除十進制的定勢。2介紹二進制時要結合計算機電路的特點進行,說明二進制的重要性,并由此了解二進制的加、乘運算法則,特別是加法運算法則。3通過具體實例介紹十進制與二進制的互化方式,進而對一般情形加以了解。4在對化十進制的算法,盡量結合秦九韶算法進行。5通過簡單問題
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 《2025年版商業店鋪租賃合同》
- 學校安全穩定隱患排查專項整治工作方案范文
- 2025煤礦企業承包的合作合同
- 2025翻譯服務合同
- 精神疾病的康復醫學進展考核試卷
- 網絡安全防護在智能安防的入侵報警系統評估考核試卷
- 2025大連市商品混凝土銷售合同協議書樣本
- 娃娃玩具的安全生產事故案例分析考核試卷
- 2025文具用品購銷合同
- 2025安撫巾采購合同
- 2024-2025學年江蘇省南京市竹山中學七年級下學期3月月考英語試題及答案
- (省統測)貴州省2025年4月高三年級適應性考試語文試卷(含答案解析)
- 系統本地部署協議合同
- 2024-2025學年人教版四年級數學下冊期中測試卷1-4單元(含答案)
- 2024年國家糧食和物資儲備局垂直管理系統事業單位招聘筆試真題
- 寶鋼熱鍍鋅鋼板產品手冊
- 路基排水工程首件施工方案
- 2025屆廣西壯族自治區南寧市中考道德與法治模擬試題(一模)附答案
- 成語故事-半途而廢-課件
- 龍門吊操作規程專項培訓
- 物業撤場方案
評論
0/150
提交評論