計算機科學與技術第4次上機實驗教案資料_第1頁
計算機科學與技術第4次上機實驗教案資料_第2頁
計算機科學與技術第4次上機實驗教案資料_第3頁
計算機科學與技術第4次上機實驗教案資料_第4頁
計算機科學與技術第4次上機實驗教案資料_第5頁
已閱讀5頁,還剩22頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、雜品資料 雜品資料 雜品資料 雜品資料 雜品資料 雜品資料 雜品資料 雜品資料 哈爾濱工程大學程序設計基礎實驗報告基礎實踐一姓 名: 麥豆 班 級:學 號:實驗時間:2018 年 5 月 3 日成績哈爾濱工程大學計算機基礎課程教學中心實驗題目1:寫一個函數(shù),Sn=a+aa+aaa+aaa求多項式的前n項和,其中a是一個數(shù)字。n由鍵盤輸入。設計思想:聲明函數(shù)sum利用循環(huán)求得sum最終值并返回sum值實驗代碼及注釋:#include int sum(int a,int n);sum 函數(shù)聲明int main()精品資料count=count*10+a;/ count=count*10+a;/ 每

2、次乘 10 加 a精品資料精品資料count=count*10+a;/ count=count*10+a;/ 每次乘 10 加 a精品資料int n;int a;printf( 請輸入 a,n:n);scanf(%d%d,&a,&n);printf(前d 項和為 dn,n,sum(a,n);調(diào)用函數(shù) sum return 0;int sum(int a,int n)int sum=0;int i;int count;count=0;for(i=1;i=n;i+)雜品資料 雜品資料 雜品資料 雜品資料 sum=sum+count;return sum;驗證與結論:ID:C語言項目曾四次上機實臉謔

3、目1 :寫f 國數(shù)binDebug摩目1 :寫T區(qū)數(shù)總xe請輸入a,n:1 4前4J頁和為1234Process returned 0 (0 x0) execution time : 3. 672 s Press any key to continue.總結與心得體會:聲明函數(shù)時后面一定要有分號,但寫函數(shù)時不需要。實驗題目2:編程實現(xiàn)求10000以內(nèi)的回文數(shù)。其中,函數(shù)實現(xiàn)判斷 任一正整數(shù)是否為回文數(shù)。所謂回文數(shù)就是將一個數(shù)從左向右讀與從雜品資料 精品資料精品資料精品資料精品資料右向左讀是一樣的,例如121 和 1331 都是回文數(shù)。設計思想:聲明judje 函數(shù),判斷number 是否為回文

4、數(shù)。在函數(shù)內(nèi)部先判斷數(shù)字number 位數(shù),由于回文數(shù)為對稱結構,故通過位數(shù)來確定判斷次數(shù),每次判斷數(shù)字首位與個位然后去掉首位與個位再次判斷直至循環(huán)結束。另外需要對個位數(shù)另行判斷,個位數(shù)一定為回文數(shù)。如果為回文數(shù)返回1,否則返回0。實驗代碼及注釋:#include #include int judje(int number);/ 聲明 judje 函數(shù)int main()int i;for(i=0;i10000;i+)if(judje(i)=1)/judje 為 1 的數(shù)輸出printf(%dt,i);return 0;int judje(int number)/ 判斷 number 是否為回

5、文數(shù)int judje,i=0,middle_number,parity,j;/ 回文數(shù)判斷變量,數(shù)字位數(shù),數(shù)字位數(shù)中間變量,數(shù)字位數(shù)奇偶int middle_number2;/ 取掉首位個位剩余數(shù)int shouwei,gewei;/ 首位,個位middle_number2=number;/ 全部賦初值middle_number=number;do/ 判斷數(shù)字位數(shù)i+;middle_number=middle_number/10;/ 對數(shù)字除以10 直到為0while (middle_number!=0);parity=i/2;/ 運算次數(shù)for (j=1;j=parity;j+)shouw

6、ei=middle_number2/pow(10.0,(double)(i-2*j+1);/ 首位數(shù)字gewei=middle_number2%10;/ 個位數(shù)字middle_number2=(middle_number2-shouwei*pow(10.0,(double)(i-2*j+1)/10;/將首位與個位去除后剩余的數(shù)if(shouwei=gewei) & j=parity)/ 個位與首位相等且都已比較完成judje=1;/1 為真else if(shouwei!=gewei)雜品資料 雜品資料 雜品資料 雜品資料 雜品資料 雜品資料 雜品資料 雜品資料 (judje=0;break;

7、)if(parity=0)/如果為個位數(shù)一定為回文數(shù)judje=1;return judje;)驗證與結論雜品資料 雜品資料 雜品資料 D;C音言項目催四次上機實勒求10000以內(nèi)的回文豁bin枷bug住10000以內(nèi)的回文我”r - 71 Qy 1 3 4 6 7 9 6 1 6 16 1 1 6 1 6 1 6 1 6 1 6 Ji 6 1- 1134679134*6 71 913 4 6 7 91346 r - 71 Qy 1 3 4 6 7 9 6 1 6 16 1 1 6 1 6 1 6 1 6 1 6 Ji 6 1- 1134679134*6 71 913 4 6 7 91346

8、7 9 5050 50505 0 505050 5013467 9 134 6 79124578 1245703494949 4949494949495 7 81245782345688991011111212322422522622723833934044144245355455555655756866967077177278388488588688789899991001mi1221233224422552266227723883399340044114422453355445555556655775688669967007711772278338844835588668S77898899

9、9990 (OxO) execution time : 0. 984 s continue.7282 13IX43412 4 5 7 8 5 7 8383838 8 3 83838 3 8 5 7 81245782 3 5 6 S 9 u S 235689272727 tk 7 2 72 7 2 71272727 e 17 2 3 5 6 8 9 2 3 5 6 8 9 r Vsar sA- s2 3 5 689 c s 23 5 6 89161616 o A- su 1A 1- Gu IX 盧 o i-i Aro 1- IX Ru r r 06235 6 00 9235 6009PP總結與心

10、得體會:通過函數(shù)可以使代碼更加簡潔,流程更加清晰實驗題目3:假設你每月在儲蓄賬戶上存100元,年利率是5%,則每月的利率是0.0夕12=0.00417。第一個月后,賬戶上的值變成100*(1+0.00417) =100.417;第二個月后,賬戶上的值變成(100+100.417雜品資料 精品資料精品資料精品資料精品資料*( 1+0.00417) =201.252; 第三個月后,賬戶上的值變成( 100+201.252)*( 1+0.00417) =302.507,以此類推。寫一個函數(shù),根據(jù)用戶輸入的每月的存款數(shù)、年利率和月份數(shù),計算給定月份后賬戶上的錢數(shù)。設計思想:聲明final_money,

11、由題意可知每個月錢數(shù)為上個月錢數(shù)加每月存的錢數(shù)乘以每月利率,在函數(shù)內(nèi)部由循環(huán)得到錢數(shù),返回final_money。實驗代碼及注釋:#include double final_money(double money,double lilv,int n);/ 函數(shù)聲明int main()double money,lilv;/ 每月存款數(shù),年利率int n;/ 月份printf( 請輸入每月存款數(shù)、年利率和存款月份數(shù)(以空格隔開):n);scanf(%lf%lf%d,&money,&lilv,&n);printf( 賬戶上的剩余錢數(shù)為%.3lf,final_money(money,lilv,n);re

12、turn 0;double final_money(double money,double lilv,int n)/ 存款數(shù)、年利率和 月份數(shù)double final_money=0;/ 賦初值int i;/ 循環(huán)變量for(i=1;i=n;i+)final_money=(final_money+money)*(1+lilv/12);/ 表達式雜品資料 雜品資料 雜品資料 雜品資料 雜品資料 雜品資料 雜品資料 雜品資料 return final_money;/ 返回錢數(shù))驗證與結論:雜品資料 雜品資料 雜品資料 雜品資料 D:C語言項目逢四次機實野存款錢數(shù)binDebug存款錢數(shù).exe請輸

13、入每月存款數(shù)、年利率和存款月份數(shù)(以空格隔開): 100 0.05 3302. 507Process returned 0 (0 x0) execution time : 33.219 sPress any key to continue.總結與心得體會:函數(shù)參數(shù)可以是多個但返回值只有一個。實驗題目4:用遞歸法將一個整數(shù)n轉(zhuǎn)換成字符串。例如,輸入483,應輸出的字符串“ 483”,n的位數(shù)不確定,可以是任意位數(shù)的整數(shù)。設計思想:聲明函數(shù),在函數(shù)將數(shù)每次除以10反復遞歸調(diào)用直到為雜品資料 雜品資料 雜品資料 雜品資料 雜品資料 精品資料精品資料0,而余數(shù)加上0可以產(chǎn)生相應的字符。實驗代碼及注釋:

14、#include void change(int n);int main()int n; TOC o 1-5 h z printf( 請輸入整數(shù)n:);scanf(%d,&n);printf( 輸出相應字符串:);if (n0)putchar(-); /先輸出一個-號n=-n;轉(zhuǎn)化為正值change(n);printf(n);return 0; void change(int n)int i;i=n/10;if (i!=0)change(i);對n每次除以10反復遞歸調(diào)用直到為0putchar(n%10+0);余數(shù)加上0可以產(chǎn)生相應的字符驗證與結論:.D:C:吾言項目室四次上機實險恒出字符Mb

15、irADubug宙出字符育。?t青布人整翦笈緲3諭由相應學符串:483-rocess returned 0 (0 x0) execution time : 18. 200 s-*ress any key to continue.總結與心得體會:余數(shù)可以加上48 來得到相應的字符但加 0會更加簡單。函數(shù)遞歸必須要有限制條件,轉(zhuǎn)換字符串函數(shù)限制條件就是i 為 0。實驗題目5:用遞歸方法求n 階勒讓德多項式的值。設計思想:直接利用函數(shù)遞歸,當階數(shù)值為o 返回 1,階數(shù)值為1 返回輸入的數(shù)。另外階數(shù)值在遞歸時需要強制轉(zhuǎn)換為float 類型,否則式子計算為整型數(shù)。實驗代碼及注釋:#include flo

16、at number(float x,int n);/ 函數(shù)聲明int main()精品資料精品資料雜品資料 雜品資料 雜品資料 雜品資料 int n;/ 階數(shù)float x;/ 循環(huán)變量充當輸入的數(shù)printf(請輸入x值和階數(shù):n);scanf(%f%d,&x,&n);printf(%.2fn,number(x,n);return 0;float number(float x,int n)if(n=0)return 1;else if(n=1)return x;return(2*n-1)*x*number(x,n-1)/(float)n-(n-1)*number(x,n-2)/(float)

17、n; 遞歸求n階勒讓德多項式注意n為整數(shù)需要強制轉(zhuǎn)換驗證與結論25946. 65驗證與結論25946. 65rocess returned 0 (0 x0) execution time ress any key to continue.總結與心得體會:遞歸是c語言中最基礎也是極為重要的算法, 核心 是函數(shù)自身對自身的調(diào)用。注意整型除以整型仍為整型,故需要對階 數(shù)值強制轉(zhuǎn)換。實驗題目6:編程求20以內(nèi)正整數(shù)的階乘。要求:寫一函數(shù)求任一 整數(shù)的階乘,在函數(shù)內(nèi)部通過定義靜態(tài)局部變量求階乘。設計思想:聲明一個factorial函數(shù),在函數(shù)內(nèi)部定義靜態(tài)變量,利用循環(huán)求階乘值,由于局部靜態(tài)變量會保留上一

18、次運行的值,故求20以內(nèi)正整數(shù)的階乘只能調(diào)用一次factorial 函數(shù),求19 的階乘然后利用循環(huán)從19 往下輸出直到1 的階乘。實驗代碼及注釋:#include long long factorial(int number);/ 函數(shù)聲明int main()int i=19;long long x;數(shù)據(jù)極大必須用longlong數(shù)據(jù)類型x=factorial(i);/ 僅調(diào)用一次函數(shù)/printf(%ld,x);for(i=19;i0;i-)printf(%d! 是lldn,i,x);longlong 用11d 輸出雜品資料 雜品資料 雜品資料 雜品資料 精品資料精品資料x/=i;/ 除掉

19、之后多余的數(shù)的到當前i 的階乘return 0;long long factorial(int number)/ 求任意整數(shù)階乘函數(shù)static long long y=1;/靜態(tài)變量只賦一次初值以后函數(shù)調(diào)用會保 留上一次的值int i;for (i=1;i121645100408832000 18! 6402373705728000 17! 355687428096000 16!2092278988800015:! 130767436800014!#8717829120013!622702030012!崽479001600軸是 3991660010 虛 3628go0M113628803! 403207! 50406! 720process ret

溫馨提示

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

最新文檔

評論

0/150

提交評論