題FOR循環(huán)習題課及上機_第1頁
題FOR循環(huán)習題課及上機_第2頁
題FOR循環(huán)習題課及上機_第3頁
題FOR循環(huán)習題課及上機_第4頁
題FOR循環(huán)習題課及上機_第5頁
已閱讀5頁,還剩2頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、【課 題】FOR循環(huán)習題課及上機【教學目標】知識目標:掌握FOR循環(huán)語句的基本格式;理解FOR循環(huán)語句的執(zhí)行過程;根據(jù)實際問題確定循環(huán)變量、循環(huán)條件和循環(huán)體;編寫簡單循環(huán)程序。2、能力目標:培養(yǎng)學生分析問題,解決問題的能力。3、情感目標:發(fā)揮的學生主動性,激發(fā)用算法描述實際問題的興趣;體味解決問題的成就感。【教學重點】掌握FOR循環(huán)程序;理解循環(huán)語句的執(zhí)行過程; 【教學難點】循環(huán)變量、循環(huán)條件、循環(huán)體和循環(huán)次數(shù)的正確應(yīng)用【教學方法】解析法,實踐法,半成品教學法【課程類型】理論研討與上機【教學反思】【教學過程】一、 任務(wù):按正序和反序輸出26個英文字母。楊輝三角。 復習for循環(huán)for <

2、控制變量>:=<表達式1> to <表達式2> do <語句>for <控制變量>:=<表達式1> downto <表達式2> do <語句>其中for、to、downto和do是Pascal保留字。表達式1 與表達式2的值分別稱為初值和終值。二、實例【例1】 . 按正序和反序輸出26個英文字母。討論:為了方便起見,將循環(huán)變量CH定義為字符類型。正序和反序輸出可以分別用FOR語句的兩種形式來實現(xiàn)。Program char26(input , output);Var ch:char;BeginFor ch:

3、=a to z do Write(ch);Writeln;For ch:=z downto a do Write(ch);Writeln;End.【例2】打印楊輝三角。P80 11 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 1 6 15 20 15 6 1 1 7 21 35 35 21 7 11 8 28 56 70 56 28 8 1 1 9 36 64 126 126 64 36 9 11 10 45 100 120 210 210 120 45 10 1 討論:楊輝三角形中,每位數(shù)據(jù)可以由組合來計算。 那么是什么意思呢?是從M個事物里取出N個體的組

4、合數(shù)。計算公式為: 組合:C(N:M)=M*(M-1)*(M-2)*.*(M-N+1)/(1*2*.*N) M=1,2,3,10 N=1,2,,mC(N:M)=M!/(n-m)!n!可以由遞推公式計算C(N:M)=1 m=0,1,2,10 n=1,2, ,m且取其中一行分析一下 =1 因此在程序中,只需令C=1,然后用循環(huán),反復使用C=C*(m-n+1)DIV n 求出每一位楊輝三角的值,用外循環(huán)來控制M的值。program yanghui(input,output);var m,n,c:integer;beginfor m:=0 to 10 dobegin c:=1; write(c:40-

5、3*m);每行左留空 for n:=1 to m do 每行其余的值 begin c:=c*(m-n+1) div n; write(c:6); end; end end.例3.求方程的根2X3+4X2+3X-6=0的根,要求誤差小于1E-5.方法一、用二分法求方程的根。例4求2100之間的素數(shù)五、歸納總結(jié) 窮舉算法:對于結(jié)果有窮的求解問題,利用計算機高速運算的特點,將所有可能情況進行逐一驗證,從而獲得所有解答。 雙重循環(huán),外層循環(huán)變量每變化一個值,內(nèi)層循環(huán)變量的值從循環(huán)起始值變化到循環(huán)終止值一遍。六、拓展知識:排列組合簡介排列:從m個事物中取個事物,按照一定的順序排成一列,有全排列:= m!

6、 = m*(m-1)(m-2).3*2*1排列:= m(m-1)(m-2)* (m-n+1) = m!/(m-n)!組合:設(shè)有m個事物,從中取n個事物作為一組而不考慮它們的順序= /n! = = m!/(n-m)!n!七、擴展練習:九九表分析: 輸出圖形的格式為二維圖形, 即九九乘法口訣表,第1行, 共1個式子, 前一個乘數(shù)為1,后一個乘數(shù)為1;第2行, 共2個式子, 前一個乘數(shù)為2,后一個乘數(shù)分別為1,2;第i行, 共i個式子, 前一個乘數(shù)為i,后一個乘數(shù)分別為1,2,i;PROGRAM T99(input,outout);Var i , j : integer ; BEGIN FOR i

7、: = 1 to 9 do beginFor j : =1 to i do Write(i , * , j, =, i*j:2 ) ; WritelnEndEND.program yh3(input,output);var m,n,c,i,j,k:integer; a,b,d:longint;begin writeln; for m:=0 to 10 do begin for i:=1 to 40-3*m do write(' '); write(1:6) ; for n:=1 to m do begin a:=1; for j:=m downto m-n+1 do a:= a

8、*j; d:=1; for j:=1 to n do d:=d*j; a:=a div d; write(a:6); end; writeln end end.ABCDEFG.var p,q,ch:char; k,j:integer;begin for p:='a' to 'z' do begin for k:=ord('z')-ord(p) downto 0 do write(' '); for q:='a'to p do write(q:2); writeln; end; end.4、百雞問題。雞翁一,值錢五;

9、雞母一,值錢三;雞雛三,值錢一。用百錢買百雞,問雞翁、母、雛各幾何?師生共同分析: X+Y+Z=100 (只) 5X+3Y+z/3=100(錢) 不定方程求整數(shù)解,用窮舉法FOR I:=1 to 100 do FOR j:= 1 to 100 doFor Z:=1 to 100 do Begin IF X+Y+Z=100 AND 5*X+3*Y+z/3=100 Then writeln(x:10, y:10, z:10) ; 并進一步討論優(yōu)化。5、換幣。用一張一元幣,換成1分,2分和5分的硬幣至少各一枚,問共有哪幾種換法(每種硬幣各幾枚)?算法:設(shè)5元票i張、1元票j張, 0.5元票k張, I

10、+j+k=100 5i+j+0.5k=100 (或 10i+2j+k=200)三個變量只能列出兩個方程,不能解,必須一個一個組合地去試,看是否能滿足條件。Program OneHundred (OutPut) ;Var I,j,k:integer; SUM, RMBsum:REAL;BEGIN writeln(I j k);FOR I:=1 to 100 do FOR j:= 1 to 100 doFor k:=1 to 100 do Begin Sum=I+j+k ; RMBsum=5*I+j+0.5*k ; If (I+j+k=100) and (5*I+j+0.5*k=100) then

11、 Writeln(I:10, j:10, k:10) End END.程序優(yōu)化:BEGIN For FOR i:=1 to 11 do FOR j:= 1 to 100 do if (5*i + j + 0.5* ( 100-i-j ) = 100 ) then Writeln( i:10, j:10, k:10)End.二、 上機練習1 讀入10個數(shù),計算他們的和、積、平方和及和的平方。2 輸入20個數(shù),統(tǒng)計其中正、負和零的個數(shù)。三、 驗收程序四、 參考程序program p1(input,output) ;var i:integer; a,x,y,z,k:real;begin write(

12、'input ten numbers:'); x:=0; y:=1; z:=0; for i:=1 to 10 do begin read(a); x:= x+a; y:=y*a; z:=z+a*a; end; k:=x*x; write('-',x:6:2,'-',y:6:2,'-',z:6:2,'-',k:6:2)end.如果輸入數(shù)據(jù)為:1 2 3 4 5 6 7 8 9 10則運行結(jié)果為:-55.00-3628800.00-385.00-3025.00*program p2(input,output) ; var i,k,a,b,c:integer; begin write('input 20 numbers:'); a:=0; b:=0; c:=0; for i:=1 to 20 do begin read(k); if k=0 then a:=a+1 else if k<0 then b:=b+1 else c:=c+1 end; write('-',a,'-',b,'-',c)

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論