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