實驗專案:函式與巨集定義實驗報告
一、實驗目的與要求
1、利用復化梯形公式計算定積分
①掌握c語言中定義函式的方法
②掌握通過「值傳遞」呼叫函式的方法
2、計算ackerman函式
①掌握遞迴函式的設計方法
②進一步練習閱讀檢查與除錯修改c程式的方法
3、編寫計算x的y次冪的遞迴函式getpower(int x,int y),並在主程式中實現輸入輸出
①寫出解決該問題的遞迴演算法:
②在遞迴函式中,使用數字1作為回歸條件
③在遞迴函式中,使用if-else語句根據條件的真假來決定是遞推還是回歸
4、編寫計算學生年齡的遞迴函式
①寫出解決該問題的遞迴演算法
遞迴公式如下,根據公式容易寫出遞迴程式:
②在遞迴函式中,使用數字1作為回歸條件
③在遞迴函式中,使用if-else語句根據條件的真假來決定是遞迴還是回歸
5、編寫遞迴函式實現ackman函式
①根據遞迴公式編寫遞迴函式
②在遞迴函式中,使用if-else語句根據條件的真假來決定是遞迴還是回歸
二、實驗內容
1、實驗練習
①問題描述:(1)編制乙個函式sab(a,b,n),其功能為利用復化梯形公式計算定積分
其中n為對區間【a,b】的等分數。要求該函式在乙個獨立的檔案中。
(2)編制乙個主函式以及計算被積函式值得函式ƒ(x),在主函式中呼叫(1)中的函式sab(a,b,n)計算
要求主函式與函式ƒ(x)在同乙個檔案中。
(3)編制另乙個主函式以及計算被積函式值的函式ƒ(x),在主函式中呼叫(1)中的函式sab(a,b,n)計算並輸出下列積分值
同樣要求主函式與函式ƒ(x)在同一檔案中。
(4)要求畫出模組sab()的流程圖。
②流程圖:
③插入**:
#includedouble f(doublex);double sab(double a,double b,int
n)
return h*(x1+x2)/2+h*x3;
}
#include#include#include
"sab.h
"double f(double
x)main()
#include#include④執行結果:"sab.h
"double f(double
x)main()
⑤問題分析:這道題是這裡面我覺得最難的,一開始就卡了我好久,一開始不知道要分成三個檔案放,其次是檔案的命名也搞錯了,導致函式呼叫不了,一直卡在這道題,後面果斷放棄了,去做後面的題目了,最後在同學的幫助下解決了這個問題,這道題也懂了。
2、實驗練習
①問題描述:(1)根據方法說明,編制計算ackerman函式的遞迴函式ack(n,x,y)
(2)編制乙個主函式,由鍵盤輸入n,x,y,呼叫(1)中的函式ack(n,x,y),計算ackerman函式
(3)在主函式中輸入之前要有提示,並檢查輸入資料得合理性,若輸入的資料不合理,則輸出錯誤資訊。輸出要有文字說明。
(4)輸入(n,x,y)=(2,3,1)執行該程式。然後自定義幾組資料在執行該程式。
②流程圖:
③插入**:
#includeint ack(int n,int x,int④執行結果:y)main()
⑤問題分析:在這道題中我遇到的問題是在return a的上一句中把ack寫成了小寫,最後導致執行不出來。最後檢查**時發現了錯誤並解決了。
3、實驗練習
①問題描述:編寫程式,分別從鍵盤輸入資料x和y,計算x的y次冪並輸出。
②流程圖:
③插入**:
#includelong getpower(int x,int④執行結果:y)main()
⑤問題分析:這道題在執行時比較順利,根據流程圖以及提示一次性就能完成。
4、實驗練習
①問題描述:用遞迴方法計算學生的年齡。已知第一位學生年齡最小為10歲,其餘學生乙個比乙個大2歲,求第5位學生的年齡
②流程圖:
③插入**:
#includeint age(int④執行結果:n)main()
intmain()
⑤問題分析:在這道題中我遇到了一些問題,一直解決不了,比如在條件判斷中我已開始用的是if-else的語句來實現,最後發現我的if-else語句老是對不上,最後換成if語句來實現。還有就是比較粗心,再輸入**的過程中中文與英文的符號有時會搞錯了,導致執行不出來。
三、實驗小結
總結:總的來說c語言學到這裡已經學了一半了,大概也掌握了一些知識,比一開始敲**好了很多,這次實驗都比較典型,不知是因為剛開始的第一題就被難到了,還是怎麼的,後面敲**的時候就特別的煩躁。第一題卡了好久。不過後面在同學的幫助下還是解決了。還是挺開心的,每次上實驗課,都感覺挺不好意思的,每次都會遇到一些問題自己解決不了,就會麻煩同學。
第六章 實驗
實驗目的和要求 了解靜態聯編的動態聯編的概念。掌握動態聯編的條件。實驗內容 1.分析並除錯下列程式。include using namespace std class base 1 找出以上程式中使用了過載和覆蓋函式。2 寫出程式的輸出結果,並解釋輸出結果。程式的輸出結果如下 分析 在程式中pb是基...
第六章函式
第六章 函式 重要知識點 1 函式定義的語法形式 資料型別 函式名 形式參數列 關於函式的定義有如下說明。函式的資料型別是函式的返回值型別 若資料型別為void,則無返回值 函式名是識別符號,乙個程式中除了主函式名必須為main外,其餘函式的名字按照識別符號的取名規則可以任意選取。形式引數 簡稱形參...
第六章 函式
示例 使用函式列印菱形 include intprint star int main intprint star int i,j for i 0 i 4 i 定義無參函式 函式名後面的括號中是空的,沒有任何引數,定義無參函式的一般形式為 型別名 函式名 或 型別名 函式名 void 函式體包括宣告部...