【正文】
各項(xiàng)。 Program ex4_5。 for i : =3 to 12 do begin x : =lastx+prevx。 writeln(x)。 var a,b,x,y:integer。 if yx=36 then writeln(x)。求所有符合這樣條件的四位數(shù)。 【 分析 】 此題是上例的一個(gè)變例,關(guān)鍵在于求出右邊的累加和,變量 n由鍵盤輸入, n越大,圓周率的 pai值就越精確。 //應(yīng)該為 longint(長整型 ) pai,s : real。 writeln(pai : 8 : 6)。 按字母表的順序,從字母 A到 Z順序打印輸出。 while語句的執(zhí)行過程為: ① 判斷布爾表達(dá)式的值 ,如果其值為真 ,執(zhí)行步驟 2,否則執(zhí)行步驟 4。 說明: 這里 while和 do為保留字。 【 分析 】 恰好使 s的值大于 10意思是當(dāng)表達(dá)式 s的前 n1項(xiàng)的和小于或等于 10,而加上了第 n項(xiàng)后 s的值大于 10。 程序如下 : Program ex4_10; Var s : real。 while s=10 do //當(dāng) s的值還未超過 10時(shí) begin n : =n+1。n=39。以下是輾轉(zhuǎn)的算法: 分別用 m,n,r表示被除數(shù)、除數(shù)、余數(shù)。 begin write(39。 a:=m。b:=r。The greatest mon divide is:39。 【 分析 】 解本題的關(guān)鍵就是求右邊數(shù)值序列的和,序列有明顯的特點(diǎn):分母是從 1開始的奇數(shù),加、減號(hào)輪流出現(xiàn),因此,我們可以用 n=n+2表示序列數(shù)值的變化,用 f=f來設(shè)置它們知項(xiàng)的符號(hào)位。 begin pai : =0。 while abs(t)=1e6 do begin pai : =pai+t。 end。 while循環(huán)不需要用順序型數(shù)據(jù)來控制循環(huán)的次數(shù),改程序的說明部分中的 n為實(shí)型數(shù)或說明為長整型即可, 請(qǐng)同學(xué)們自己修正 ,以后要對(duì)變量的取值范圍引起重視。求第 20次著地時(shí) , 小球共通過多少路程 ? Faibonacci數(shù)列前幾項(xiàng)為 : 0,1,1,2,3,5,8,…, 其規(guī) 律是從第三項(xiàng)起 , 每項(xiàng)均等于前兩項(xiàng)之和。 直到循環(huán)語句的一般形式 : Repeat 語句 1。 說明: ① repeat語句的特點(diǎn)是:先執(zhí)行循環(huán),后判斷結(jié)束條件,因而至少要執(zhí)行一次循環(huán)體。 例 求兩個(gè)正整數(shù) m和 n的最大公約數(shù)。 begin readln(m,n)。 until r=0。分別按每行排 4,5,6人 ,都多出 1人 。 var x: integer。 inc(x,7)。 if x mod 5 1 then yes:=false。All =39。 π/4=11/3+1/51/7+… ,直到最后一項(xiàng)的值小于 106為止 . 【 分析 】 解本題的關(guān)鍵就是求右邊數(shù)值序列的和,序列有明顯的特點(diǎn):分母是從 1開始的奇數(shù),加、減號(hào)輪流出現(xiàn),因此,我們可以用 n=n+2表示序列數(shù)值的變化,用 f=f來設(shè)置它們知項(xiàng)的符號(hào)位。 begin pai : =0。 repeat pai : =pai+t。 until abs(t)1e6。一般說來,用 for 循環(huán)比較簡明,只要能用 for循環(huán),就盡量作用 for循環(huán)。 【 上機(jī)練習(xí) 】 用 REPEAT循環(huán)完成如下 3題: ①求 s=1+2+3+4+…+10 ② 求 s=1+1/2+1/3+…+1/100 ③ 計(jì)算 n!,其中 n由鍵盤輸入。 將一根長為 369cm的鋼管截成長為 69cm和 39cm 兩種規(guī)格的短料。 例 求 1!+2!+…+10! 的值。 var t,s:longint。 for j:=1 to n do //求 n! t:=t*j。 end. 以上的程序是一個(gè)二重的 for循環(huán)嵌套。 i,j,n:integer。 //t為上一個(gè)數(shù)的 n1的階乘值,再乘以 n即為 n! s:=s+t。第一程序要進(jìn)行1+2+…+10=55 次循環(huán),而第二程序進(jìn)行 10次循環(huán)。必須組合出所有可能的 i,j值,看是否滿足條件。 begin for i:=0 to 33 do //枚舉母雞的數(shù)量 for j:=0 to 50 do //枚舉公雞的數(shù)量 begin k:=90ij。(若三位數(shù) ABC,ABC=A3+B3+C3,則稱 ABC為水仙花數(shù)。 程序如下: Program ex4_19_1。 程序如下: Program ex4_19_2。 //m的十位 c : =m mod 10。 例 求 100- 200之間的所有素?cái)?shù)。用 for和 while語句結(jié)合來編寫。 while (x=trunc(sqrt(i)))and(i mod x0)do //枚舉 2到之間的每個(gè)數(shù) begin x:=x+1。 end. 例 試編寫能夠打印輸出如下圖形的程序: 程序如下: Program ex4_21。)。 for k : =2*i1 downto 1 do write(39。 end。 ( 3)外環(huán)內(nèi)第二個(gè)并列循環(huán)為控制三角形每行中 號(hào)的個(gè)數(shù)。在這方面我國數(shù)學(xué)家陳景潤的研究成果處于世界領(lǐng)先地位。若 P、 Q均為素?cái)?shù),則輸出結(jié)果,否則以 P+1再試。 begin readln(n)。 //n=p+q flagp : =true。 until flagp and flagq。 end else writeln(39。 如: n=6時(shí),因?yàn)?1, 2, 3, 6這四個(gè)數(shù)均是 6的因數(shù),故輸出為 total=4。問可買公雞、母雞、小雞各幾只? 某人想將手中的一張面值 100元的人民幣換成 10元、 5元、 2元和 1元面值的票子。請(qǐng)你編一個(gè)程序計(jì)算出這堆零件至少是多少個(gè)? 編寫一程序,驗(yàn)證角谷猜想。 1求 1100之間的所有素?cái)?shù)(素?cái)?shù)是大于 1,且除 1和它本身外,不能被任何其它整數(shù)所整除的整數(shù))