日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

c语言复化求积公式程序,第六章 函数与宏定义实验2

發(fā)布時(shí)間:2024/4/18 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 c语言复化求积公式程序,第六章 函数与宏定义实验2 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

C程序設(shè)計(jì)實(shí)驗(yàn)報(bào)告

實(shí)驗(yàn)項(xiàng)目:

一.模塊化程序設(shè)計(jì)

1.利用復(fù)化梯形公式計(jì)算定積分。

2.計(jì)算Ackerman函數(shù)。

二. 函數(shù)的遞歸調(diào)用

1.編程計(jì)算x的y次冪的遞歸函數(shù)getpower(int x,int y),并在主程序中實(shí)現(xiàn)輸入輸出

2.編寫計(jì)算學(xué)生年齡的遞歸函數(shù)

3.編寫遞歸函數(shù)實(shí)現(xiàn)Ackman函數(shù)

姓名:李小玲 實(shí)驗(yàn)地點(diǎn): 514實(shí)驗(yàn)室 實(shí)驗(yàn)時(shí)間:2019年5月16日

一、實(shí)驗(yàn)?zāi)康呐c要求

6.4.2、模塊化程序設(shè)計(jì)

實(shí)驗(yàn)1.利用復(fù)化梯形公式計(jì)算定積分

1.掌握C語(yǔ)言中定義函數(shù)的方法

2.掌握通過(guò)“值傳遞”調(diào)用函數(shù)的方法

實(shí)驗(yàn)2. 計(jì)算Ackerman函數(shù)

1.掌握遞歸函數(shù)的設(shè)計(jì)方法

2.進(jìn)一步練習(xí)閱讀檢查與的調(diào)試修改C程序的方法

6.4.3 函數(shù)的遞歸調(diào)用

實(shí)驗(yàn)3. 編程計(jì)算x的y次冪的遞歸函數(shù)getpower(int x,int y),并在主程序中實(shí)現(xiàn)輸入輸出

1.寫出解決該問(wèn)題的遞歸算法:

2.在遞歸函數(shù)中,使用數(shù)字1作為回歸條件

3.在遞歸函數(shù)中,使用if-else語(yǔ)句根據(jù)條件的真假來(lái)決定是遞推還是回歸

實(shí)驗(yàn)4. 編寫計(jì)算學(xué)生年齡的遞歸函數(shù)

1.寫出解決該問(wèn)題的遞歸算法:

遞歸公式如下,根據(jù)公式容易寫出遞歸程序。

2.在遞歸函數(shù)中,使用數(shù)字1作為回歸條件

3.在遞歸函數(shù)中,使用if-else語(yǔ)句根據(jù)條件的真假來(lái)決定是遞推還是回歸

實(shí)驗(yàn)5.?編寫遞歸函數(shù)實(shí)現(xiàn)Ackman函數(shù)

1.根據(jù)遞歸公式編寫遞歸函數(shù)

2.在遞歸函數(shù)中,使用if-else語(yǔ)句根據(jù)條件的真假來(lái)決定是遞推還是回歸

二、實(shí)驗(yàn)內(nèi)容

6.4.2:模塊化程序設(shè)計(jì)

實(shí)驗(yàn)練習(xí)1:利用復(fù)化梯形公式計(jì)算定積分

1.問(wèn)題的簡(jiǎn)單描述:(1)編寫一個(gè)函數(shù)sab(a,b,n),其功能為利用復(fù)化梯形公式計(jì)算定積分

其中n為對(duì)區(qū)間[a,b]的等分?jǐn)?shù)。要求改函數(shù)在一個(gè)獨(dú)立的文件中。(2)編制一個(gè)主函數(shù)以及計(jì)算被積函數(shù)值的函數(shù)f(x),在主函數(shù)中調(diào)用(1)中的函數(shù)sab(a,b,n)計(jì)算并輸出下列積分值

要求主函數(shù)與函數(shù)f(x)在同一文件中。(3)編制另一個(gè)主函數(shù)以及計(jì)算被積函數(shù)值的函數(shù)f(x),在主函數(shù)中調(diào)用(1)中的函數(shù)sab(a,b,n)計(jì)算并輸出下列積分值

同樣要求主函數(shù)與函數(shù)f(x)在同一文件中。(4)要求畫出模板sab()的流程圖。方法說(shuō)明:設(shè)定積分為

則復(fù)化梯形求積公式為

其中

2.實(shí)驗(yàn)代碼,流程圖,效果圖:

#include

double f(doublex);double sab(double a,double b,intn)

{double h,result,x1,x2,x3=0,t;intk;

h=(b-a)/n;

x1=f(a);

x2=f(b);for(k=1;k<=n-1;k++)

{

t=a+k*h;

x3=x3+f(t);

}

result=h*(x1+x2)/2+h*x3;returnresult;

}

#include#include#include"sab.h"

double f(doublex)

{doubleresult;

result=x*x*exp(x);returnresult;

}

main()

{doublea,b,result;intn;

printf("please input double a,b and integer n:");

scanf("%lf%lf%d",&a,&b,&n);

result=sab(a,b,n);

printf("sab(%lf,%lf,%d)=%lf",a,b,n,result);return 0;

}

#include#include"sab.h"

double f(doublex)

{doubleresult;

result=1/(25+x*x);returnresult ;

}

main()

{doublea,b,result;intn;

printf("please input double a,b and integer n:");

scanf("%lf%lf%d",&a,&b,&n);

result=sab(a,b,n);

printf("sab(%lf,%lf,%d)=%lf",a,b,n,result);return 0;

}

3.分析:剛開(kāi)始的時(shí)候沒(méi)怎么思考,沒(méi)錯(cuò),我就是那個(gè)剛開(kāi)始把三個(gè)文件橋在一起的傻子。后面看了下書上要把sab.h和其他兩個(gè)函數(shù)要分三個(gè)文件來(lái),在運(yùn)用函數(shù)的時(shí)候調(diào)用sab.h頭文件就可以出結(jié)果;最最理不理解不了的就是為什么scanf("%f%f%d",&a,&b,&n)運(yùn)行不出來(lái)結(jié)果,但是換成 lf 就可以,歡迎大神來(lái)為我解答。

(這個(gè)是出不來(lái)答案的程序)

實(shí)驗(yàn)練習(xí)2:計(jì)算Ackerman函數(shù)

1.問(wèn)題的簡(jiǎn)單描述:

具體要求如下:(1)根據(jù)方法說(shuō)明,編制計(jì)算Ackerman函數(shù)的遞歸函數(shù)ack(n,x,y)。(2)編制一個(gè)主函數(shù),由鍵盤輸入n,x,y,調(diào)用(1)中的函數(shù)ack(n,x,y),計(jì)算Ackerman函數(shù)(3)在主函數(shù)中,輸入之前要有提示,并檢查輸入數(shù)據(jù)的合理性。若輸入的數(shù)據(jù)不合理,則輸出出錯(cuò)信息。輸出要有文字說(shuō)明。(4)輸入(n,x,y)=(2,3,1)運(yùn)行該程序。然后自定義幾組數(shù)據(jù)在運(yùn)行該程序。方法說(shuō)明:Ackerman函數(shù)的定義如下:n,x,y為非負(fù)整數(shù),且

2.實(shí)驗(yàn)代碼,流程圖,效果圖:

if(n==0)

a=x+1;if(n==1&&y==0)

a=x;if(n==2&&y==0)

a=0;if(n==3&&y==0)

a=1;if(n>=4&&y==0)

a=2;if(n!=0&&y!=0)return Ack(n-1,Ack(n,x,y-1),x);returna;

}

main()

{intn,x,y,result;

printf("please input n,x,y,:");if(n<0||x<0||y<0)

printf("error!請(qǐng)?jiān)俅屋斎?\n");

scanf("%d%d%d",&n,&x,&y);

result=Ack(n,x,y);

printf("Ack(%d,%d,%d)=%d\n",n,x,y,result);

}

3.分析:這個(gè)程序還好,就是寫出五個(gè)回歸條件;我的話,就在最后那個(gè)進(jìn)一步遞推的時(shí)候有點(diǎn)懵它是要return到那個(gè)去,后面發(fā)現(xiàn)題目的問(wèn)題描述中有說(shuō),說(shuō)明看題目不是很仔細(xì);大部分的話還是看流程圖能看懂的。

6.4.3:函數(shù)的遞歸調(diào)用

實(shí)驗(yàn)練習(xí)3:編程計(jì)算x的y次冪的遞歸函數(shù)getpower(int x,int y),并在主程序中實(shí)現(xiàn)輸入輸出

1.問(wèn)題的簡(jiǎn)單描述:編寫程序,分別從鍵盤輸入數(shù)據(jù)x和y,計(jì)算x和y次冪并輸出。

2.實(shí)驗(yàn)代碼,流程圖,效果圖:

#include"stdio.h"

long getpower(int x ,inty)

{if(y==1)returnx;else

return (x*getpower(x,y-1));

}

main()

{intnum,power;longanswer;

printf("輸入一個(gè)數(shù):");

scanf("%d",&num);

printf("輸入冪次方:");

scanf("%d",&power);

answer=getpower(num,power);

printf("結(jié)果是:%ld\n",answer);

}

3.分析:這題我在函數(shù)調(diào)用方面出了問(wèn)題,就是沒(méi)搞清楚answer要調(diào)用的是哪個(gè)式子,然后的話就是定義里面的getpower()是計(jì)算冪函數(shù)的一種形式,不足的話就是我沒(méi)有去考慮輸入的數(shù)不是整數(shù)時(shí)候或者不是數(shù)字時(shí)候的情況,沒(méi)有嚴(yán)格設(shè)置它要輸入的格式問(wèn)題。

實(shí)驗(yàn)練習(xí)4:編寫計(jì)算學(xué)生年齡的的遞歸函數(shù)

1.問(wèn)題的簡(jiǎn)單描述:用遞歸方法計(jì)算學(xué)生的年齡。已知第一位學(xué)生的年齡最小為10歲,其余學(xué)生一個(gè)比一個(gè)大2歲,求第5位學(xué)生的年齡。

2.實(shí)驗(yàn)代碼,流程圖,效果圖:

#include

int age (intn)

{intc;if(n==1)

c=10;else

return age(n-1)+2;returnc;

}

main()

{int n=5;

printf("%d",age(n));

}

3.分析:這題其實(shí)還好,就是我剛開(kāi)始做的時(shí)候把n初始值設(shè)置從0開(kāi)始 了,后面自己算了下是錯(cuò)的,再仔細(xì)看了下題目發(fā)現(xiàn)是從第一個(gè)人開(kāi)始,應(yīng)該是從n=1開(kāi)始的。

實(shí)驗(yàn)練習(xí)5:編寫遞歸函數(shù)實(shí)現(xiàn)Ackman函數(shù)

1.問(wèn)題的簡(jiǎn)單描述:定義遞歸函數(shù)實(shí)現(xiàn)下列Ackman函數(shù):

其中m、n為正整數(shù)。設(shè)計(jì)創(chuàng)新求Acm(2,1),Acm(3,2)。

2.實(shí)驗(yàn)代碼,流程圖,效果圖:

#includeAcm(int m,intn)

{intc;if(m==0)

c=n+1;if(n==0)return Acm(m-1,1);if(n>0,m>0)return Acm(m-1,Acm(m,n-1));

}intmain()

{intx,y;

x=Acm(2,1);

y=Acm(3,2);

printf("Acm(2,1)=%d\n",x);

printf("Acm(3,2)=%d\n",y);return 0;

}

3.分析:這題的話只要看的懂Ackman函數(shù)就能寫函數(shù)定義,再就是輸出的時(shí)候注意格式,這題我是設(shè)置了就是只求

Acm(2,1),Acm(3,2);如果要輸入其他數(shù)值的話,直接改一下main函數(shù)里面的就好了。

三.實(shí)驗(yàn)小結(jié)

通過(guò)第一個(gè)實(shí)驗(yàn),我知道了怎么調(diào)用另一個(gè)文件中的函數(shù),然后要根據(jù)函數(shù)中存放數(shù)的大小來(lái)選擇其定義的類型;我對(duì)于遞推函數(shù)的運(yùn)用也不是很熟練,大部分是看著流程圖來(lái)做的,不然就容易出錯(cuò),最最重要的是,我對(duì)于遞推和回歸這兩個(gè)概念整的有點(diǎn)懵了,

百度了一下也沒(méi)整明白;其他的都還好,按照步驟來(lái)都還是可以解出來(lái)的,就是概念可能不是那么熟悉。

總結(jié)

以上是生活随笔為你收集整理的c语言复化求积公式程序,第六章 函数与宏定义实验2的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。