實(shí)驗(yàn)三循環(huán)結(jié)構(gòu)程序設(shè)計(jì)_第1頁(yè)
實(shí)驗(yàn)三循環(huán)結(jié)構(gòu)程序設(shè)計(jì)_第2頁(yè)
實(shí)驗(yàn)三循環(huán)結(jié)構(gòu)程序設(shè)計(jì)_第3頁(yè)
實(shí)驗(yàn)三循環(huán)結(jié)構(gòu)程序設(shè)計(jì)_第4頁(yè)
實(shí)驗(yàn)三循環(huán)結(jié)構(gòu)程序設(shè)計(jì)_第5頁(yè)
全文預(yù)覽已結(jié)束

下載本文檔

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

文檔簡(jiǎn)介

1、實(shí)驗(yàn)三循環(huán)結(jié)構(gòu)程序設(shè)計(jì)一、實(shí)驗(yàn)學(xué)時(shí)4學(xué)時(shí)。二、實(shí)驗(yàn)?zāi)康?.熟練掌握用while、do-while以及for語句實(shí)現(xiàn)循環(huán)程序設(shè)計(jì)的方法。2.理解 循環(huán)條件和循環(huán)體的含義。理解循環(huán)結(jié)構(gòu)中語句的執(zhí)行過程。3.熟練掌握break和 continue語句的功能及應(yīng)用。4.掌握應(yīng)用嵌套循環(huán)結(jié)構(gòu)進(jìn)行程序設(shè)計(jì)的方法。5.掌握 應(yīng)用循環(huán)結(jié)構(gòu)及窮舉算法解決有關(guān)問題。6.掌握運(yùn)行到光標(biāo)位置、使用斷點(diǎn)等程序調(diào)試方法。三、實(shí)驗(yàn)內(nèi)容1.程序調(diào)試【例1】改正下列程序中的錯(cuò)誤,求第1!+2!+3!+?+11!的值,11的值通過鍵盤輸入 (nW 10) o輸入樣例:請(qǐng)通過健盤輸入具體數(shù)據(jù)給變量n賦值:5OL輸出樣例: 1!+2

2、!+3!+?+5!=153 程序:#includevoid mainO int n, i;long int s, sum;printf(請(qǐng)通過鍵盤輸入具體數(shù)據(jù)給變量n賦值: scanf( for (i=l; i=n; i+) s=s*i sum+=s; printf()(1)按照前面章節(jié)實(shí)驗(yàn)中介紹的步驟,保存源程序代碼。(2)單擊編譯按鈕(Compile),出現(xiàn)第一條編譯錯(cuò)誤信息是:missing beforeidentifier sum,改正后,重新編譯和連接,都正確。(3)開始調(diào)試程序,鼠標(biāo)單擊第11行,光標(biāo)在第11行閃爍,這就是當(dāng)前光標(biāo)的位 置,單擊,程序運(yùn)行到光標(biāo)位置。在變量窗口中,第

3、一次循環(huán)時(shí)i的值為1 , n的值為5 ,正確;而S的值為-858993460,不正確。請(qǐng)分析錯(cuò)誤原因:s示未賦初值,long int s, sum;改為long int s=l, sum;,改正后,重新編譯和連接,繼續(xù)進(jìn)行上述操作,這時(shí)s 的值為1正確。(4)鼠標(biāo)單擊第12行,光標(biāo)在第12行閃爍,這就是當(dāng)前光標(biāo)的位置,單擊,程序運(yùn)行到光標(biāo)位置。在變量窗口中,第一次循環(huán)時(shí)i的值為1 , s的值為1 ,正確; 而sum的值為-858993460,不正確。請(qǐng)分析錯(cuò)誤原因:sum示未賦初值,long int s, sum; 改為long int s=l, sum=0;,改正后,重新編譯和連接,繼續(xù)進(jìn)行

4、上述操作,這時(shí)sum的 值為0正確。(5)把光標(biāo)定位到倒數(shù)第3行,單擊(Run to Cursor)按鈕,程序運(yùn)行到光標(biāo)位置。在變量窗口中,s的值為1 , sum的值為1 ,顯示信息正確。(6)單擊(Stop Debugging)按鈕,程序調(diào)試結(jié)束。按鈕,在程序調(diào)試的過程中,應(yīng)用了 “運(yùn)行到光標(biāo)位置”的程序調(diào)試方法:即單擊程序運(yùn)行到光標(biāo)位置,觀察變量窗口中所顯示的變量信息內(nèi)容,分析此時(shí)變量的值是 否正確。同時(shí),結(jié)合斷點(diǎn)的使用,斷點(diǎn)的使用就是讓程序運(yùn)行到斷點(diǎn)處暫停,讓用戶可以 觀察當(dāng)前變量或表達(dá)式的值。設(shè)置斷點(diǎn)時(shí),先將光標(biāo)定位到要設(shè)置斷點(diǎn)的位置,然后單擊 編譯微型工具條的按鈕,斷點(diǎn)設(shè)置完畢。如果

5、要取消已經(jīng)設(shè)置的斷點(diǎn),只需要將光標(biāo)移到要取消的斷,該斷點(diǎn)取消。點(diǎn)處,再次單擊按鈕在循環(huán)結(jié)構(gòu)的程序設(shè)計(jì)中,這種程序調(diào)試的方法經(jīng)常使用,在具體進(jìn)行程序調(diào)試時(shí), 設(shè)置程序運(yùn)行斷點(diǎn)處位置,注意變量窗口中顯示變量的具體值信息(如果變量較多時(shí),可 以輸入變量名查看),這些變量的值是否與循環(huán)第一次運(yùn)行時(shí)一致。2.編程練習(xí)(1)讀入一個(gè)正整數(shù)n,計(jì)算并輸出前n項(xiàng)之和s的值(保留6位小數(shù))。 S=l+l/4+l/7+l/10+l/13+l/16+?程序運(yùn)行結(jié)果輸入/輸出示例:輸入樣例:請(qǐng)輸入n的值:30L輸出樣例: S=l. 392857參考程序如下: #include void mainO int i, k,

6、 n; double sum;printf (、請(qǐng)輸入 n 的值: scanf ( sum = 0; k = 1;ford = 1; i n)sum += t /(double)k;k += 3; t *= 一1;printf()思考題2:讀入一個(gè)正整數(shù)n,計(jì)算并輸出前n項(xiàng)之和s的值(保留6位小數(shù))。 S=l-l/2+3/7-2/5+5/13-3/8+?輸入樣例:請(qǐng)輸入 n 的值:18,L 輸出樣例:S=0. 551 分析1:對(duì)于S,可以對(duì)n進(jìn)行分析,當(dāng)n為偶數(shù)時(shí),正項(xiàng)個(gè)數(shù)與負(fù)項(xiàng)的個(gè)數(shù)相等;當(dāng)n 為偶數(shù),正項(xiàng)個(gè)數(shù)比負(fù)項(xiàng)的個(gè)數(shù)多一項(xiàng),可以將正項(xiàng)與負(fù)項(xiàng)分別進(jìn)行計(jì)算。參考程序:#include vo

7、id mainO int i, k, n;double sum;printf (、請(qǐng)輸入 n 的值: scanf ( sum = 0; k = 1;for(i = 1; i = (n+l)/2; +i) 計(jì)算正數(shù)項(xiàng)的和:1+3/7+5/13+? sum +二(2*i-l)/(double)k; k += 6;正數(shù)項(xiàng)和分別與各個(gè)負(fù)數(shù)項(xiàng)求和(1+3/7+5/13+?-1/2-2/5-3/8-? if(n%2=0) 區(qū)分n為偶數(shù)時(shí),負(fù)數(shù)項(xiàng)的個(gè)數(shù)為n的一半k=2;for(i = 1; i = n/2; +i)sum _= i/(double)k; k += 3; else區(qū)分n為奇數(shù)時(shí),負(fù)數(shù)項(xiàng)的個(gè)數(shù)為

8、n-1的一半,比正數(shù)項(xiàng)少一個(gè)k=2; for(i = 1; i = (n-l)/2; +i)sum = i/(double)k; k += 3; printf( 分析2:?1?L?L275138147101316即對(duì)S中負(fù)數(shù)項(xiàng)的分子與分母分別乘以2,會(huì)發(fā)現(xiàn)相鄰的兩項(xiàng)的分 子部分為相鄰的整數(shù),而相鄰兩項(xiàng)的分母間為前項(xiàng)的分母+3二后項(xiàng)的分母。參考程序: include void mainO int n, i, k, sign; float s=0; signal; k=l; scanf( for(i=l;i=n;i+)k=k+3;s=s+sign*(float)i/k;s

9、ign=sign*(T) ; printf()(2)輸入一個(gè)正整數(shù)data,請(qǐng)編寫程序,實(shí)現(xiàn)下列功能:求它的位數(shù);求各位 數(shù)字之和;從高位開始逐位分割并輸出它的各位數(shù)字。輸入樣例:請(qǐng)輸入一個(gè)整數(shù): 123450L輸出樣例:12345是一個(gè)5位整數(shù),各位數(shù)字之和為15各位數(shù)字分別為:1 2345 參考程序如下:include #include void main( ) int count, in, sum, temp, t;printf (請(qǐng)輸入一個(gè)正整數(shù):、scanf (temp=in;count=sum=0;while (temp !=0) 求正整數(shù)的位數(shù),及各位數(shù)之和sum=sumtemp; count+;temp=temp/10; pri

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論