資源描述:
《使用函數(shù)編寫程序》由會員上傳分享,免費在線閱讀,更多相關內(nèi)容在學術論文-天天文庫。
1、實驗五使用函數(shù)編寫程序【實驗目的】1.熟練掌握函數(shù)的定義和調(diào)用。2.理解函數(shù)的實參、形參和返回值的概念。3.熟練掌握VC程序調(diào)試方法,包括斷點的設置和取消,以及單步執(zhí)行跟蹤進入函數(shù)和跳出函數(shù)的方法?!緦嶒瀮?nèi)容】5-1調(diào)試示例,從鍵盤輸入一個正整數(shù)m計算n!的值,要求定義和調(diào)用函數(shù)fact(n),計算n!。源程序(有錯誤的程序)includevoidmain(){intn;longintf;printf("lnputn:");scant("%d",&n);f=fact(n);printf(,,%d!=%
2、ld",n,f);}longfact(intm){inti;longintproduct;for(i=1;i<=m;i++)product=product*i;returnproduct;}運行結果(改正后程序的運行結果)Inputn:10101=3628800實驗四中我們使用了程序運行到光標位置調(diào)試程序,本次實驗需要掌握設置斷點,以及單步調(diào)試進入函數(shù)和跳出函數(shù)的方法。(1)打開源程序error5_1.cpp,編譯程序,出現(xiàn)的錯誤信息:'fact1:undeclaredidentifier'fact*:redefi
3、nition;differenttypemodifiers雙擊該錯誤信息,箭頭指向“f=fact(n);”這一行,錯誤信息指出函數(shù)“fact”沒有定義,這是因為數(shù)據(jù)在調(diào)用前,必須先定義或聲明。在主調(diào)函數(shù)的變量定義前面加上函數(shù)聲明“l(fā)ongfact(intm);”后,重新編譯,連接,都正確。(1)調(diào)試開始,設置2個斷點(斷點的作用:程序執(zhí)行到斷點處暫停,使用戶可以觀察當前的變量或其它表達式的值,然后繼續(xù)運行),先把光標定位到要設置斷點的位置,然后單擊編譯工具條上的也(Inert/RemoveBreakpoint(F9))
4、,斷點就設置好了(如圖5.1所示)。如果耍取消斷點,只要把光標放到耍取消的斷點處,單擊也,這個斷點就取消了。圖5」設置斷點(2)單擊編譯工具條凰I(go(F5)),運行程序,用戶輸入n的值10后,程序運行到第一個斷點位置暫停(如圖5.2所示)。圖5.2程序運行到斷點位置(1)單擊內(nèi)(StepInto(F11))進入函數(shù)fact()調(diào)試,箭頭表示程序已經(jīng)執(zhí)行到函數(shù)怡ct()內(nèi)(如圖5.3所示)。(2)使用舸,在函數(shù)fact()中設置程序的第3個斷點(如圖5.3所示)。(3)單擊凰I(go(F5)),程序直接運行到斷點處,
5、暫停(如圖5.4所示),在變量窗口觀察到product的值是-2903040,不止確,因為變量product未賦初值,加上語句product=1后,按以上的步驟,重新編譯、連接,運行到第3個斷點處,變量窗口中product的值正確。(4)現(xiàn)在需要從被調(diào)函數(shù)返回到主調(diào)函數(shù),單擊調(diào)試工具條屮的{*?(StepOut(ShaftF11)),程序返回主調(diào)函數(shù)繼續(xù)執(zhí)行(如圖5.5所示)。(5)繼續(xù)單擊凰I(go(F5)),程序執(zhí)行到最后(如圖5.6所示),在運行窗口輸出101=3628800,與題目要求的結果一致。(6)單擊終止
6、調(diào)試圖標劭(StopDebugging(Shaft+F5)),程序調(diào)試結束。圖5?3進入函數(shù)fact()調(diào)試,并在運行時設置斷點圖5.4程序從函數(shù)fact()開始直接運行到第3個斷點的位置(wtum前面)test創(chuàng)夭中文VC—[break][test,eppj圖5.5程序回到了主調(diào)函數(shù)圖5.6程序執(zhí)行到最后5-2編程,輸入兩個正整數(shù)m和n,計算(m+n)!/(m!+n!)o要求定義和調(diào)用函數(shù)fact(n)計算n!,函數(shù)類型是double。5—3編程,輸入任意實數(shù)x和正整數(shù)n,計算x的n次幕。要求定義和調(diào)用函數(shù)power
7、(x,n)計算x的n次幕,其中x和n的類型分別是double和int,函數(shù)類型是double。輸入輸出示例:輸入x和n:2102的10次方是1024⑦如何求x1+x2+x3+—+xn5—4編程,輸入x,計算并輸出下列分段函數(shù)f(x)的值。要求定義和調(diào)用函數(shù)sign(x)實現(xiàn)該分段函數(shù)。1x>0f(x)=0x=0-1x<05-5編程,輸入2個整數(shù)begin和end,分別代表攝氏溫度的起止值,輸出該范圍內(nèi)攝氏溫度C和華氏溫度F的轉換表,攝氏溫度每次增加5°Co要求定義和調(diào)用函數(shù)ctof(celsius),將攝氏溫度C轉換為
8、華氏溫度F,計算公式:F=32+C*9/5o5-6編程,給定平面任意二點坐標(x1,y1)W(x2,y2),求這兩點之間的距離(保留2位小數(shù))。要求定義和調(diào)用函數(shù)dist(x1,x2,y1,y2)計算兩點間的距離。輸入輸出示例:input(x1,y1),(x2,y2):1010200100Distance=210.24提示:模仿5