999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

對C語言組織循環(huán)的方法探討

2012-04-29 02:27:03王叢林
成才之路 2012年25期

王叢林

摘 要:C語言是一門理想的結(jié)構(gòu)化程序設(shè)計語言,是學生學習程序設(shè)計的基礎(chǔ)課程。可通過對比手工計算,分析C語言組織循環(huán)的方法,著重討論累加、累乘問題的計算,以及組織循環(huán)應(yīng)注意的問題,讓學生更好地掌握這一知識。

關(guān)鍵詞: C語言;組織循環(huán);計算方法

C語言是一門理想的結(jié)構(gòu)化程序設(shè)計語言,開設(shè)C語言程序設(shè)計課程的目的是要求學生利用C語言進行程序設(shè)計,重點在掌握程序設(shè)計的方法。程序設(shè)計通常包括以下幾項:針對提出的問題,研究確定求解的計算方法(算法)、根據(jù)計算方法繪制流程圖、根據(jù)計算流程圖編寫程序。其中,計算方法是程序設(shè)計靈魂,是編程的關(guān)鍵。

一、計算方法的比較

關(guān)于計算方法的選擇,必須注意到手算和計算機算有很大的差別的。手算更偏重于用人的經(jīng)驗去選擇恰當?shù)耐緩絹肀M量減少工作量,縮短計算時間,提高計算精度;但是使用計算機時,多采用具有相同算法結(jié)構(gòu),簡單重復的計算,這樣能充分發(fā)揮計算機的長處,(運算速度快,最適合于重復操作,它有自動判斷的功能,因此,能控制重復執(zhí)行的次數(shù))。循環(huán)的計算結(jié)構(gòu)便于編寫程序,減少運算次數(shù)、提高計算速度,因此,程序設(shè)計語言中的循環(huán)語句成為具有廣泛應(yīng)用的基本語句之一,程序借助循環(huán)語句可以比較簡單地實現(xiàn)計算問題中包含的多次重復的計算(有規(guī)律的重復問題)。

例如:以下問題求解,用手工操作是這樣的:

①試求 1+2+3+4+……+100 的值

[分析與解] 利用等差數(shù)列求公式。(首項+末項)×項數(shù)÷2=(1+100)×100÷2=5050.

②試求 1×2+2×3+3×4+……+99×100的值

[分析與解] 用整數(shù)列項。原式=(1×2×3+2×3×3+3×4×3+4×5×3+……+99×100×3)÷3 = [1×2×3+2×3×(4-1)+3×4×(5-2)+4×5×(6-3)+……+99×100×(101-98) ]÷3=[99×100×101]÷3=333300.

③試求1×1+2×2+3×3+……99×99+100×100的值

[分析與解]利用平方差公式。1×1+2×2+3×3+……+n×n=n(n+1)(2n+1)÷6,原式=100×101×(2×100+1)÷6=338350.

上述問題,用計算機求解是這樣的:用“迭代”的方法進行運算。設(shè)一個變量s,用它來存放被加數(shù),x作為加數(shù),使s+x?圯s,x值變化,用循環(huán)來控制x的增值和使s加x。s的值不斷變化,用上一次計算出的s值來求下一次新的s值,然后再以這個新的s值去求下一個s值。每次以新值代替原值。S稱為“迭代變量”。具體求和的過程可寫成所謂的“括號套”的結(jié)構(gòu)形式:(…(((0+x1)+x2)+x3)+…+x99)+x100

①求 1+2+3+4+……+100 的值中,x1=1、x2=2、x3=3……x100=100. ②求 1×2+2×3+3×4+……+99×100的值中,x1=1×2、x2=2×3、x3=3×4……x100=99×100. ③求1×1+2×2+3×3+……99×99+100×100的值中,x1=1×1、x2=2×2、x3=3×3……x100=100×100. 若用變量s表示部分和,那么上述算式可改寫為:

0?圯ss中為0

s+x1?圯s s中為x1

s+x2?圯s s中為x1+x2

s+x3?圯s s中為x1+x2+x3

…… ……

s+x100?圯s s中為x1+x2+x3+……x100

用循環(huán)表示此求和過程,C語言實現(xiàn)循環(huán)常用三種語句:while、do-while和for語句。循環(huán)次數(shù)能估計出來時,一般采用for語句。

①試求 1+2+3+4+……+100 的值。源程序為:

# include "stdio.h"

void main()

{

int i,s=0;/ *賦初值 0?圯s * /

for(i=1;i<=100;i++)

s+=i; / * 累加和s+i?圯s * /

printf("%d \n",s);

}

②試求 1×2+2×3+3×4+……+99×100的值。

# include "stdio.h"

void main()

{

int i;

longs=0;\*初值為0*\

for(i=1;i<=99;i++)

s+=i*(i+1);

printf("%ld \n",s) ;

}

以上是求累加數(shù)(若干項之和)。同樣,若求累乘數(shù) 1×2×3×4×……×100 的值,求積過程可寫成 (…(((1×x1)×x2)×x3)×…×x99)×x100結(jié)構(gòu)形式。用循環(huán)表示這個求積過程,源程序為:

# include "stdio.h"

void main()

{

int i,s=1;

for(i=1;i<=100;i++)

s×=i;

printf("%d \n",s);

}

比較上例可知:此時s的初值是s=1而不是s=0 ,即初始值的確定問題。下面對循環(huán)語句使用作進一步說明。

二、關(guān)于循環(huán)語句,需要弄清楚的幾個問題

(1)循環(huán)內(nèi)變量往往需要賦初值。如上例中迭代變量 s賦初值。關(guān)于賦初值需考慮兩個問題。

其一,選初值的語句應(yīng)放在程序的什么位置,從上面的實例中可以看到這樣的規(guī)律:對變量選初值的語句應(yīng)設(shè)在循環(huán)體之外,即在for、while語句之前。如s=0、s=1。如果是雙循環(huán),則內(nèi)循環(huán)體的變量取初值外循環(huán)體外,即在內(nèi)循環(huán)的for、while之前。外循環(huán)體中的變量取初值的語句應(yīng)在外循環(huán)外,即在外循環(huán)的for、while語句前。

例如:求階乘之和s=m!的程序嵌套循環(huán)中變量的置位問題

# include"stdio.h"

void main()

{

inti,m,p,s;

s=0, m=1;/*累加結(jié)果變量s清零*/

while (m<=100)

{ p=1,i=1; /*共用變量p復位*/

while ( i<=m)

{ p*=i;i++;}

s+=p;m++;}

printf ("s=%d\n",s);

}

說明:程序由組成的二重循環(huán)構(gòu)成。內(nèi)層循環(huán)負責求某數(shù)的階乘,外層循環(huán)負責累加各數(shù)階乘的結(jié)果。存放累加結(jié)果的變量應(yīng)在二重循環(huán)之外清零,存放每個數(shù)結(jié)果的共用變量p應(yīng)在完成存放前一個數(shù)階乘結(jié)果之后,開始存放新數(shù)階乘結(jié)果之前,對共用變量復位,即在外層循環(huán)之內(nèi)、內(nèi)層循環(huán)變量之外對變量p復位。

其二,怎樣選擇初值,如上例中s=0 , s=1等,循環(huán)中的某些語句往往是與計算中題目的相應(yīng)項一一對應(yīng)的。若開始初值不知如何確定,一般可以先寫出循環(huán)體中的語句,然后再選初始值。從例中看出,求累加和運算,一般值為0,求累乘積一般值為1,但要看具體情況。

(2)循環(huán)體語句順序和循環(huán)條件有關(guān)系。

例如: 求階乘之和s=m!的程序

#include"stdio.h"

void main()

{

inti=0,s=0;

while (i<=100)

{s+=i ;

i++;}

printf("s=%d\n",s) ;

}

上例輸出結(jié)果為5050,若改變循環(huán)體內(nèi)語句的順序為 i++,s+=i輸出結(jié)果5150,這是因為循環(huán)被多執(zhí)行一次,需要把循環(huán)條件i<=100改為i<100或i<=99才能得到正確的結(jié)果。因此,對依靠循環(huán)條件來控制循環(huán)次數(shù)的循環(huán),應(yīng)注意對邊界條件進行檢驗,防止循環(huán)體多執(zhí)行一次。一般檢驗,可用從特殊到一般的方法。

參考文獻:

[1]譚浩強.C語言程序設(shè)計[M].北京:清華大學出版社,1999.

[2]汪大菊.C語言[M].天津:天津大學出版社,1996.

(新鄉(xiāng)職業(yè)技術(shù)學院)

主站蜘蛛池模板: 人妻丰满熟妇av五码区| 激情午夜婷婷| 亚洲国产系列| 日韩经典精品无码一区二区| 极品私人尤物在线精品首页 | 青青国产视频| 国产人成在线观看| 中文字幕 91| 华人在线亚洲欧美精品| 亚洲无码高清一区二区| 18禁不卡免费网站| 国产欧美视频综合二区| 91午夜福利在线观看| 伊人色天堂| 国产成人综合日韩精品无码不卡| 国产成人免费高清AⅤ| 91综合色区亚洲熟妇p| 日韩 欧美 小说 综合网 另类| 国产极品美女在线播放| 成人一区在线| 中文字幕第4页| 一区二区三区四区在线| 操国产美女| 手机在线看片不卡中文字幕| 操美女免费网站| 五月六月伊人狠狠丁香网| 伊人大杳蕉中文无码| 日韩一区二区三免费高清| 亚洲人成高清| 99热这里只有精品5| 97视频在线精品国自产拍| 日本久久免费| 国产欧美中文字幕| 亚洲性网站| 理论片一区| 色妺妺在线视频喷水| 国产免费a级片| 亚洲国模精品一区| 日本在线视频免费| 国产精品深爱在线| 国产福利免费在线观看| 在线亚洲精品自拍| 日韩二区三区无| 亚洲男人的天堂视频| 欧美性精品| 亚洲三级a| 国产在线自揄拍揄视频网站| 成人看片欧美一区二区| 色播五月婷婷| 伊人久久婷婷五月综合97色| 国产欧美视频综合二区| 久久精品视频一| 久久精品国产免费观看频道| 久久狠狠色噜噜狠狠狠狠97视色| 国产精品成人一区二区| 久久综合亚洲色一区二区三区| 国产丝袜无码精品| 东京热一区二区三区无码视频| 91精品国产91久无码网站| 精品人妻一区二区三区蜜桃AⅤ| 久久久精品无码一二三区| 人与鲁专区| 香蕉网久久| 欧美不卡在线视频| 免费午夜无码18禁无码影院| 日韩一区精品视频一区二区| 婷婷色一二三区波多野衣| 在线不卡免费视频| 久久婷婷国产综合尤物精品| 亚洲无码不卡网| 亚洲中文无码h在线观看 | 欧美激情首页| 国产精品免费入口视频| 国产精品区视频中文字幕| 国产麻豆aⅴ精品无码| 国产va欧美va在线观看| 日韩大片免费观看视频播放| 亚洲成网站| 波多野结衣亚洲一区| 99视频在线看| 欧美一级片在线| 99热国产在线精品99|